快速開發遊戲的十個關鍵

2019-01-31 23:28:00

十月初,由 Opensource.com 贊助的首屆 Open Jam 吸引了來自世界各地的團隊的 45 個參賽專案。這些隊伍只用了三天時間就用開源軟體製作出一個遊戲來參與角逐,有三支隊伍取得了勝利

我們在我們的大學為每一位願意參與的人舉辦了我們自己的 Open Jam 活動。我們預留了周末的計算機實驗室,並教大家使用開源軟體來建立遊戲和遊戲素材:遊戲引擎:Godot、音樂:LMMS、2D 素材:GIMP、3D 素材:Blender。我們的活動產出了三個遊戲:LoathsomeLost ArtistPaint Rider(我做的)。

根據我在遊戲開發和遊戲開發方面的經驗,這裡有 10 條關於遊戲引擎、編碼和快速遊戲開發的經驗教訓。

1、限定規模

很容易想要去做一個規模宏大的冒險遊戲或者可以比擬你最喜歡的遊戲的東西。如果你有一些經驗,追求超乎遊戲 Jam 活動的東西可能很酷,但不要高估自己擁有的時間。我欣賞遊戲 Jam 活動的一點是它強制你快速將一個遊戲從概念階段變成最終產品,因為你的時間非常有限。這也就是限定規模如此重要的原因。

這個 Open Jam 的主題是“留下痕跡”,題目一出來,我和朋友就開始討論什麼樣的遊戲適合該主題。一個想法就是做玩家能在敵人身上留下傷痕的 3D 拳擊遊戲。我幾乎沒有做 3D 遊戲的經驗,我想做好的話,在我甚至還沒發掘出可玩性之前,就得花太多時間在學習如何讓痕跡合理和打擊有效。

2、儘早可玩

這是我對遊戲 Jam 活動最中肯的建議。試著做出核心機制,快速寫出程式碼,這樣你就可以測試並決定它是否值得做成一個完整的遊戲。不應該只剩幾個小時截止了,你的遊戲才可玩。像 Open Jam 這樣的三天的活動,不應該花費幾個小時以上來做一個可以執行的演示。

3、保持簡單

你想加入的每個特性都會延長整個開發時間。因為你不能迅速使之執行,所以無從得知提交一個新特性是否會消耗大量時間。街機風格的高分作品往往會在遊戲 Jam 活動中表現良好,它們天生就很簡單。一旦核心部分完成,你可以開始加入特性並潤色,無需擔心最後遊戲是否功能正常。

4、從其他遊戲獲取靈感

可能你想做出完全原創的作品,但有個可以基於它開發的原型極其有用。這將節省重複勞動的時間,因為你已經知道什麼有趣。告訴自己實踐的經驗越多,越容易做出包含自己想法的大型遊戲,所以你也能從再創作其他人的作品中得到很好地練習。

考慮到 Open Jam 的“留下痕跡”主題,我覺得創作一個玩的時候可以留下顏料痕跡的遊戲會很有趣,這樣也可以看到你留下的標記。我記得有款老式動畫遊戲 Line Rider 2 Beta (後來叫 Paint Rider),而且知道玩的時候按住 Control 鍵可以畫出痕跡的彩蛋。我簡化了這個概念,甚至只需要一個按鍵來垂直移動。(更像老式飛機遊戲)。進入到 Jam 活動大概一兩個小時後,我就有了基本模型,可以用一個按鈕上下移動和留下小黑圈的痕跡。

5、不要忽視可得性

確保盡可能多的人能玩你的遊戲。某個提交到 Open Jam 的遊戲是虛擬現實遊戲。儘管那很酷,但幾乎沒有人可以玩,因為擁有 VR 裝置的人不多。所幸它的開發者並不期望取得好名次,只是想練手。但如果你想和人們分享你的遊戲(或者贏得遊戲 Jam 活動),注意可得性是很重要的。

Godot (和其他大多數遊戲引擎)允許你在所有主流平台發布遊戲。提交遊戲時,特別是在 Itch.io,有個瀏覽器版本就可以支援大多數人玩。但盡你所能去發布在更多的平台和作業系統上。我甚至試著在行動端發布 Paint Rider,但技術有限。

6、不要做得太難

如果遊戲需要花費過多精力去學或者玩,你將失去一部分玩家。要保持簡單和限定規模,這在遊戲計劃階段非常重要。再次重申,想出一個需要花上十天半個月開發的宏大的遊戲創意很容易;難的是做出好玩、簡單的遊戲。

給我的媽媽介紹了 Paint Rider 之後,她很快開始玩起來,我認為不需要跟她說明更多。

7、不用太整潔

如果你習慣於花時間在設計模式上和確保程式碼可複用、可適應,試著放鬆一點。如果你花太多時間考慮設計,當你最後到了可以玩遊戲的時候,你可能發現遊戲不是很有趣,那時候就來不及修改了。

這過程也適用於簡化更嚴格的遊戲:快速碼出驗證概念性展示模型,直到找出值得做成完整遊戲的,然後你可以潛心建立完美的程式碼來支援它。為遊戲 Jame 活動創作的遊戲就像是個快速開發一個可驗證的模型一樣。

8、但也不要太隨意

另一方面, 意大利麵式程式碼 容易失控,即使遊戲開發沒有大量程式碼。還好大多是遊戲引擎都考慮到了設計模式。就拿 Godot 的信號 功能來說,節點可以傳送資料資訊給它們“連上了”的節點 —— 這是你的設計自動成型的觀察者模式。只要你知道如何利用這種遊戲引擎的特性的優勢,就可以快速寫程式碼,你的程式碼也不會特別難讀。

9、取得反饋

向人們展示你正在做的。讓他們試一試並看看他們說些啥。看看他們如何玩你的遊戲,找找他們有沒有發現你預料之外的事。如果遊戲 Jam 活動有 Discord 頻道或者類似的,把你的遊戲放上去,人們會反饋給你想法。Paint Rider 的一個確定的功能是畫布迴圈,所以你可以看到之前留下來的畫。在有人問我為什麼這個遊戲沒有之前,我甚至沒有考慮那個機制。

團隊共同作業的話,確保有可以傳遞周圍反饋的人參與這個開發。

而且不要忘了用相同的方式幫助其他人;如果你在玩其他人遊戲的時候發現了有助於你遊戲的東西,這就是雙贏。

10、哪裡找資源

做出所有你自己的資源真的會拖你後腿。Open Jam 期間,當我忙於組裝新特性和修漏洞時,我注意到 Loathsome 的開發者花了大量時間在繪製主要角色上。你可以簡化遊戲的藝術風格創作並且用一些視聽效果尚可的東西,但這裡還有其他選擇。試著尋找 Creative Commons 許可的或免費音樂站點(比如 Anttis Instrumentals)的資源。或者,可行的話,組建一個有專門藝術家、作家或者音樂家的團隊。

其他你可能覺得有用的軟體有 Krita,這是一款適合數位繪畫的開源 2D 影象生成軟體,特別是如果你有一塊繪圖板的話;還有 sfxr,這是一款遊戲音效生成軟體,很多引數可以調,但正如它的開發者所說:“它的基本用法包括了按下隨機按鈕。”(Paint Rider 的所有音效都是用 Sfxr 做的。)你也可以試試 Calinou 的眾多但有序的開源遊戲開發軟體列表。

你參加 Open Jam 或者其他遊戲 Jam 並有別的建議嗎?對我未提及的有問題嗎?有的話,請在評論中分享。