十個月從立項到遊戲上線,一個新人的遊戲製作經驗總結
過年的時候,家裡親戚問我做什麼工作,我有點不好意思跟他們說我在做遊戲。因為遊戲還沒做出來,心裡有點虛。
現在我可以正兒八經地告訴他們,我就是個做遊戲的!
因為我的第一款遊戲《壞小孩》已經上線了!
Steam:https://store.steampowered.com/app/1626890/_/
開發這款遊戲花了將近十個月,不是很長。開發過程中瞭解到很多朋友有自己做遊戲的想法,所以我簡單地寫了點東西,總結了一個非遊戲行業人士開發遊戲的經驗教訓,希望對想做遊戲的朋友們有些幫助。
按慣例先介紹全職做遊戲的理由。其實很簡單,主要是之前的工作太無聊了,想做點好玩的事情。
和很多遊戲開發者不一樣,我玩過的遊戲很少。我沒玩過 Dota、王者榮耀、吃雞這些熱門網路遊戲,單機遊戲也只玩過早期比較經典的系列,比如刺客信條,生化危機。魔獸世界算是玩得多的,也只是跑跑劇情任務而已,淺嘗輒止。雖然玩得少,但我一直覺得遊戲是一個表現形式多樣,核心很豐富的載體,用它來講述一個故事,表達某種想法,肯定是件很有意思的事情。
恰好去年滿三十,在企業裡摸爬滾打多年,有點老油條,內心的稜角又沒完全抹平,不甘心一直過著和老闆、甲方、同事鬥智鬥勇的生活。去年疫情肆虐,人憋得難受,心裡的糾結突然爆發,於是我辭了工作,打算做些好玩的遊戲。
從簡單的開始做
立項之前,我很清楚自己沒有遊戲行業的從業經驗,技術和美術水平也有限,所以,第一款遊戲最好能以最簡單的方式開始做。以我對自己的瞭解,開發的時間不能拖得太長,最好能六七個月做完(實際從製作到測試到上線共花了十個月),不然我最後一定會因為疲憊厭煩而放棄。
我大學讀的是工科,有簡單的 C 語言基礎,但沒從事相關的開發工作,荒廢了程式設計技能。我不得不花時間在 B 站上覆習 C/C#基礎語法,然後臨時抱佛腳學習 Unity 基本操作。我現有的程式設計水平無法編寫複雜的系統,不過簡單的解謎機制和基礎功能還能勉強實現,並且做了幾個小 demo 證實了基本方案的可行性。於是我決定,先做個解謎遊戲試試。
當然,想要設計好的解謎遊戲不是件容易的事,我喜歡的鏽湖系列遊戲和胖布丁公司的解謎遊戲有豐富的核心,需要大量的積累和思考。但選擇解謎遊戲至少減輕了不少技術負擔。
技術方面很好搞定,Unity 很方便,網上也有很多開原始碼,對我來講麻煩的是美術。
我的美術基礎完全為零,要儘快上手做遊戲只能找個相對容易學習的美術風格,於是我選擇了畫素風。當時認為,幾粒畫素點而已,畫得差一點大家應該看不出來。不過後續的學習和開發經歷告訴我,就算是幾個畫素,想畫好也不件容易。
我在 B 站上找了幾個畫素畫教學視訊,通過視訊瞭解常用的畫素畫工具和基礎的畫素畫技巧。練習畫素畫的同時,我儘可能補充基礎的美術知識,比如陰影、配色等。然後臨摹一些優秀的畫素風遊戲,學習他們場景的畫法,人物動畫的畫法,畫面的配色等等。就這樣一點一點練習,直到畫素畫水平能夠基本滿足我的遊戲需求。
將想法變成可執行的策劃方案
最初,我計劃在這款解謎遊戲裡講一個恐怖故事,靈感來自於小時候聽到的鬼故事。想做恐怖遊戲的原因,是因為當時看到一份 Steam 遊戲開發者調研報告,報告上說恐怖的、黑暗的遊戲比較吸引 Steam 玩家,所以我一個從來不看恐怖片的人就這樣抱著投機心理著手製作恐怖遊戲。
隨著開發進度的推進,需要思考的細節越來越多,才發現早期的點子很難在實際的遊戲中起到想要的效果,非但不恐怖,甚至還有些滑稽。我開始明白,有想法是一回事,把想法轉變成可執行的方案又是另外一回事。恐怖遊戲的路走不下去,決定重新規劃遊戲方向。
我通過小時候聽過的鬼故事,聯想到小時候的人和發生過的事,忽然發現,講一個 90 年代下崗潮時期的故事,應該能吸引人,而且相關主題的遊戲好像也不多。由於自己親身經歷過那個年代,遊戲故事框架搭建起來十分順暢。我把小時候的一段經歷加進遊戲裡,混入那時大人們之間傳的八卦軼事,很快,《壞小孩》的雛形就有了。
故事有了,接下來就要在故事裡加入玩法機制。
為了不讓機制和故事太違和,我給主角配上了彈弓。彈弓是那個年代小男生都有的玩具,整個遊戲的謎題基本上圍繞彈弓展開,比如射擊特定物品吸引 NPC,用彈弓和敵人戰鬥等等。除此之外,遊戲中加入了輕微的跳躍元素,比如翻牆、爬樹、爬櫃子等。我認為這種“上房揭瓦”的行為比較符合 13 歲少年的性格。
既然以九十年代為背景,相關懷舊元素自然不會少,甚至懷舊是吸引玩家非常重要的部分。在開發過程中,我儘可能還原那個年代的物件、場景甚至廣告,放在遊戲裡的各個角落。有的物件或者場景可能只是普通的彩蛋,有些則是推進劇情發展的重要線索,希望這些物件和場景能成功營造出上世紀 90 年代的氛圍,增強玩家遊玩體驗。
早期 demo 裡,為了增加可玩性,我強行加入了密碼鎖之類的謎題,但多玩幾次後,發現強行新增的謎題對敘事和氛圍渲染沒有太多幫助,太過雞肋。為了順暢的遊戲節奏,後續版本里陸續刪掉了不合適的謎題,只留下了以彈弓為核心的謎題和幾個推進劇情的小遊戲,以此換取更簡潔的敘事體驗。
錢和人的問題
錢是大家都關心的問題,我坦誠地說,開發遊戲的錢全是自己攢的。
全職開發遊戲之前,我已經在網際網路企業當了七年社畜,早幾年沒少 996,工資不高,沒做出什麼成就,但好歹存了一點點積蓄。我一個人開發,制定消費計劃,不大手大腳花錢,沒有家庭負擔,一人吃飽全家不餓,所以手頭的這點積蓄夠我花好一陣子。
為什麼要一個人開發呢?其實我找過合作伙伴,但是別人不會因簡簡單單的一個策劃案就放棄原有的穩定工作,和一個毫無經驗的新人一起打拼。我也沒多餘的錢找一個全職人員,而且我不太喜歡別人“用愛發電”,人家不拿錢還給你幹活,我反而不踏實。可能我也有些任性,想完全靠個人能力做一款遊戲,看看自己到底能做到什麼程度。
多說兩句,如果有剛畢業的朋友想做遊戲,我的建議先進入遊戲公司鍛鍊鍛鍊,越大越正規的遊戲公司越好。也許有人會說,在遊戲公司工作只是混個飯吃而已,學不到什麼真的本事,全都是生意。但至少能在遊戲公司裡學習遊戲團隊的合作和管理方式,更加方便地獲取業內資源,這些在遊戲開發過程中非常重要。再不濟,先幹幾年存點錢然後再全職做遊戲,也比畢業就創業穩妥。
最後的一些話
我是一個三分鐘熱度的人,在決定全職做遊戲時,便不斷暗示自己,不要被前期的激情衝昏頭腦,要做好長期作戰的準備。同時也不要在細節的問題上鑽牛角尖,先保證做一個“完整”的遊戲,而不是“完美”的遊戲。儘管開發過程中有過糾結,也想過放棄,但遊戲最終還是“熬”了出來。
第一次做遊戲,技能有限,沒有什麼方法論,設計全靠直覺。遊戲剛剛上線,還不知道玩家們的反饋如何,所以只能談談淺薄的經驗。對於業界大牛來講,這些經驗可能不算什麼,但如果你是想做遊戲的外行人或者遊戲行業的新人,希望我的經驗能有些參考價值。
很早的時候我看到一句話,意思大概是“當你停止創造,你的才能就不再重要,剩下的只有品位,品位會排斥其他人,讓你變得狹隘,所以,要創造”。自己做了遊戲之後才體會到“創造”二字帶來的快感,這是我之前的打工生涯完全沒有體驗過的感覺。
現在我已經迷上了“創造”的感覺,我也會一直創造下去。
希望大家多多支援《壞小孩》。
如果您有任何想法和問題,可以來我的微博討論@野猴子游戲工作室。
來源:indienova
原文:https://mp.weixin.qq.com/s/BvgjE3x5dAM6d12HWEwIAg
相關文章
- 從創意CTR測試到立項研發製作 休閒遊戲研發全流程經驗分享遊戲
- Eric Caoili:獨立開發者分享製作16位動作遊戲的經驗遊戲
- 從遊戲立項到順利上線,中小團隊如何避免踩坑?遊戲
- 18個月的18個創業經驗總結創業
- 從立項到起量,“複製”Voodoo的超休閒遊戲之路Odoo遊戲
- 從無經驗到拿獎,一個“草臺班子”團隊的遊戲路遊戲
- 從遊戲立項到順利上線,中小團隊如何在競爭中生存遊戲
- 一個從業5年的遊戲商務妹子的經驗遊戲
- 一個專案經理的經驗總結
- unity入門—五分鐘製作一個理論上的遊戲Unity遊戲
- 《五行》從0到1設計遊戲——專案管理經驗總結遊戲專案管理
- 我從程式設計總結的 22 個經驗程式設計
- 一個專案經理的經驗總結(轉)
- 兩個月備戰PMP經驗總結(轉)
- 作為專案經理的7個經驗教訓總結
- 國產文字冒險遊戲《葬花》立項、製作全流程分享遊戲
- 新站4個月 新手做網站經驗總結網站
- Playdom:社交遊戲10大經驗總結遊戲
- 立項定生死?這些有經驗的遊戲開發團隊如何做立項?遊戲開發
- [ARKit]1-如何製作一個AR版Stack的遊戲遊戲
- 從0到1上線一個微信小程式微信小程式
- 作為老司機使用 React 總結的 11 個經驗教訓React
- 製作html5微信頁面的經驗總結。HTML
- 從經典遊戲中學到的7個伏筆設計技巧遊戲
- Code Review 從失敗中總結出來的幾個經驗View
- [SceneKit專題]26-如何製作一個像Stack的遊戲遊戲
- 七年IT經驗的七個總結
- 一個bug造就的經典遊戲....遊戲
- 一個超休閒遊戲從業者的2020年總結遊戲
- 魔獸爭霸RPG遊戲-軍團戰爭-遊戲經驗總結遊戲
- 製作遊戲人物頭部的21個小技巧遊戲
- 從文化到遊戲的轉身 《龍族幻想》系統拆分體驗總結遊戲
- 遊戲雜談:大製作遊戲和小製作遊戲,在開發思路方式上的差別遊戲
- 給一場遊戲畫上一個完美句號——遊戲中的結算模式解析遊戲模式
- 遊戲開發效能優化經驗總結遊戲開發優化
- iphone 遊戲開發 失敗經驗 總結iPhone遊戲開發
- 【職場總結】由「 遊戲正式上線」產生的思考遊戲
- 兩個月刷完Leetcode前400題經驗總結LeetCode