說實話,我一開始是拒絕的。
作為一個在Firaxis Games混過的敘事設計師,我參與過《漫威暗夜之子》《文明7》這種大項目,見過真正的工業級管線長什么樣——幾百號人、幾十層文件夾、開個引擎要等泡完一杯咖啡。所以當同事跟我說"你去試試Godot吧,30天能做個游戲"的時候,我的第一反應是:這開源小引擎,能行嗎?
![]()
但2023年Unity那個按安裝量收費的風波之后,Godot確實火了一把。《殺戮尖塔2》《黃金偶像案》《磁帶妖怪》這些口碑作都選了它,連EA都用魔改版Godot給《戰地6》做了傳送門地圖編輯器。100MB的體積,秒開,不要錢,沒有大公司管著——聽著像是獨立開發者的夢中情引擎。
問題是,它對我這種只寫過劇本、沒正經敲過代碼的敘事型選手友好嗎?
我決定賭一把。30天,從零開始,做個能玩的游戲。哭還是笑,月底見分曉。
Day 1:游戲?什么游戲?
下載Godot花了不到兩分鐘。打開之后我愣了一下——界面干凈得不像話,沒有滿屏的浮動窗口,沒有八層嵌套的菜單。但干凈也意味著:我得自己決定從哪開始。
我盯著空白項目看了十分鐘。做敘事的人有個毛病,總想先寫世界觀、角色小傳、三幕結構。但Godot不在乎我的三幕結構。它問我:你的第一個場景是什么?你的玩家能按哪個鍵動?
于是我做了個決定:這30天,我不寫文檔。想到什么做什么,爛就爛,先讓東西跑起來。
第一個晚上,我搞出了一個能左右走的小方塊。沒有美術,沒有動畫,就是一個色塊在灰背景上平移。但我按鍵盤它真的動了——這種反饋比寫十頁設定稿都爽。
Day 3:GDScript,我的新朋友/敵人
Godot用的是自家語言GDScript,語法跟Python很像。我學過一點Python,所以理論上應該無縫銜接。實際上?
第一個bug花了我四小時。我想讓小方塊碰到墻停下來,結果它穿墻了,然后飛出了屏幕邊界,然后游戲崩潰了。查文檔、翻論壇、看教程視頻——Godot的社區確實活躍,但答案散落在Reddit帖子、Discord記錄和某個2019年的YouTube視頻里。
最后發現是我把碰撞體的位置放錯了,偏移了一個像素。
一個像素。
這種時刻你會懷疑人生。但換個角度,如果我在Unity里遇到同樣的問題,解決流程可能更長。Godot的節點系統很直觀,每個對象是什么、父子關系如何,一眼能看懂。它不會幫你避免低級錯誤,但至少讓你能快速定位到錯在哪。
Day 7:終于有個像樣的畫面了
第一周結束,我決定認真做個美術風格。不是找外包,是自己畫——像素風,16x16的精靈,配色直接抄我桌上的臺燈。
Godot的2D工具集意外地順手。動畫系統不用寫狀態機代碼,直接在編輯器里拖幀、設過渡、調速度。粒子效果?加節點,調幾個參數,火星子就飄起來了。這些功能在大引擎里當然也有,但往往藏在第三層菜單后面,或者需要導入插件。
我做了個核心機制:玩家控制一盞提燈,在黑暗中探索,燃料會隨時間消耗,找到火源才能續命。很簡單,但循環成立——走太遠會死,太保守又找不到出口。
那天晚上我玩到凌晨兩點。自己的游戲。
Day 14:聲音,被低估的魔鬼
第二周我開始加音頻。Godot內置了簡單的混音器,但找免費音效比寫代碼還折磨。我試了五個不同的"腳步聲"素材,最后選了一個像踩爆漿蛋糕的——因為其他四個要么太脆像高跟鞋,要么太悶像潛水。
背景音樂更頭疼。我不會作曲,于是用了開源的生成工具,輸入幾個參數,導出一段循環。結果聽起來像微波爐故障。
最后妥協:環境音為主,風聲、火噼啪、遠處不明生物的咕嚕聲。沒有旋律,但氛圍對了。敘事設計師的本能救了我——有時候留白比填滿更有張力。
Day 21:那個差點讓我棄坑的晚上
第三周發生了兩件事。一是我終于做出了第一個完整關卡,從起點到終點能打通,有謎題有緊張感。二是我嘗試加存檔功能,然后整個項目崩了。
Godot的存檔系統理論上很簡單:把游戲狀態寫成字典,存成文件,讀取時還原。但我沒搞懂資源路徑的寫法,存檔文件寫到了系統臨時文件夾,下次啟動找不到了。玩家進度全丟。
我花了六小時排查,最后在一篇俄語論壇帖子里找到答案。那一刻我真的想關電腦去睡覺,明天再說,后天再說,永遠不說。
但30天的賭約在腦子里響。我喝了杯咖啡,重寫了一遍存檔邏輯,測試了十次,確認進度真的能被留住。
那個晚上我學會一件事:獨立開發沒有"明天再說"的選項。要么現在解決,要么項目死掉。
Day 28:打磨,或者假裝在打磨
最后兩天,我在做"拋光"——這個詞聽起來高級,其實就是調數值、修錯別字、確保按鈕不會點穿到地圖外面。提燈的燃料消耗速度調了十七版,太快玩家焦慮,太慢又沒壓力。最終選了中間偏快的那個,讓每次探索都有賭的成分。
我還加了一個隱藏結局。不是多復雜的分支,就是如果玩家全程不點燃任何額外火源,直接沖向終點,會看到不同的畫面。敘事設計師的執念——哪怕是個小游戲,也要有"選擇"的幻覺。
Day 30:它活了
最后一天下午,我把游戲打包上傳到Itch.io。文件不到50MB,加載比大多數網頁游戲還快。我發給三個朋友測試,兩個通關了,一個卡在第二關找不到路——這正是我想要的效果,有點難,但不至于勸退。
游戲叫《The Last Lamplighter》。沒有劇情動畫,沒有配音,沒有成就系統。但你能走路,能點燈,能死,能贏。30天前這玩意兒不存在,現在它存在了。
這30天教會我什么
先說Godot本身。它確實能競爭——不是全方位吊打Unity/Unreal,而是在特定場景下更合理。2D游戲、小型團隊、快速迭代、預算為零,這些條件下Godot的效率驚人。節點系統讓非程序員也能理解項目結構,輕量體積意味著隨時隨地能打開改兩筆。
但它也有邊界。3D功能比不過Unreal,資產商店的生態比不過Unity,某些高級功能需要自己動手寫插件。如果你是做次世代畫面的團隊,Godot不是答案。但如果你是 solo dev,或者三五個人想驗證一個玩法原型,它可能是目前最友好的選擇。
再說我自己。在大團隊待久了,會忘記"從零到一"是什么感覺。文明7的某個文明特性可能要經過二十輪會議、三個月迭代、五十個人的簽字,才能在玩家面前出現。而《The Last Lamplighter》里那個提燈火焰的閃爍頻率,是我凌晨兩點憑直覺調的,沒問過任何人。
兩種模式沒有高下。但30天的 sprint 讓我重新摸到創作的原始沖動——不是因為KPI,不是因為玩家調研數據,就是因為"我想看看這個能不能行"。
最后給想試試的人
如果你也是寫故事的、畫畫的、做設計的,想自己做游戲但一直被"要學編程"嚇退,我的建議是:下Godot,給自己設個死線,先做坨屎出來。
真的。第一版一定會很爛。我的第一版連屎都不如,是個穿墻的色塊。但色塊能動的那一刻,你會上癮。之后每一周,你都會驚訝于上周的自己有多菜——這就是進步。
30天不夠做3A,但夠證明一件事:你能做完一個東西。從開頭到結尾,閉環。這個經驗比任何教程都值錢。
至于《The Last Lamplighter》?它現在躺在Itch.io上,免費,能玩,有bug但我懶得修了。畢竟新的30天已經開始,我在想下一個游戲該做什么。
也許是個關于時間循環的敘事解謎?或者多人合作的提燈探險?
先讓我把GDScript的文檔再翻一遍。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.