獨立游戲開發指南 學游戲開發


學游戲開發(獨立游戲開發入門指南)
注:文章來自會員日志,題圖來自 twenty20 訂閱 。
從開始開發游戲到現在大概有五年,有時候在想如果現在給過去的自己一點建議也許能有一點幫助 。
所以這篇日志主要是分享一下自己對于獨立游戲開發入門的一些想法 。
這篇文章由愛發電支持寫作!如果你喜歡我做的事情,可以考慮在愛發電支持我 。
引擎選擇在選擇引擎時候主要考慮的大方向是:為了日后找份相關工作還是單純做個游戲 。
找份相關工作
如果是目標是學習之后可以進入游戲行業找份相關工作,那么目前國內推薦的只有幾個:Unity、虛幻4和國內一些 H5引擎 。關于這些引擎除了 Unity 以外我了解不多而且也很多人也都介紹過了 。
實際上目前用得最多的人群就是 Unity 和虛幻,而個人上手來看這倆引擎都比較重,不夠輕便也不是很容易上手 。
單純做個游戲
如果是單純做個游戲,可供選擇的引擎就有很多 。
像 Baba is you 就是 Click Fusion 引擎,Celeste、FEZ 和 星露谷物語 是 MonoGame 引擎,UnderTale 和 Downwell 是 GameMaker,Total Party Kill 則是使用 Stencyl 。
這里只討論 2D 游戲,我對 3D 沒什么興趣 。
從我摸過的一些引擎我主要分成三種人群:不寫代碼要崩潰、寫代碼要崩潰的開發者和中立的開發者
不寫代碼要崩潰的開發者
很多人就喜歡寫代碼也喜歡做游戲,所以這種人不喜歡拖來拖去的可視化編程界面,或者說他們更喜歡自己寫一個,他們也不喜歡有各種編輯器的引擎 。面對這類開發者和學習者更多推薦的是:pico-8、Phaser 和 MonoGame 。
這幾個都是比較考驗編程能力,而且這幾個引擎對配置要求不高,寫程序久了一般都比較喜歡輕便的東西 。實際上在我剛入門時候玩得是 C++ 的 Cocos2d-x,電腦實在垃圾每次編譯運行都很煩,之后用 Unity 修改一下編譯也是很慢,做游戲就是為了開心,結果這樣很影響開發心情 。
pico-8 限制比較大,語言使用的類似 Lua 的語法,比較小巧,內置了地圖編輯器和音樂音效編輯器,而且 8 位復古風對從 8 位機過來的玩家很沒有抵抗力 。
Phaser 是使用 javascript 的網頁游戲引擎,甚至這個引擎你是不用下載直接在代碼引用一下就可以愉快開發游戲了,而且同樣不用編譯,運行起來很快 。
MonoGame 更多是一個 C# 的跨平臺框架,很多專業開發者也使用這個引擎制作商業游戲,雖然需要編譯,但是還是很輕很快!
像是 pico-8 和 phaser 引擎這種不用編譯而且可以輸出網頁的引擎適合很快速開發游戲原型和分享游戲,而 MonoGame 這種則比較適合制作要發布到商店的商業游戲 。
寫代碼要崩潰的開發者
很多人就不喜歡寫代碼但也喜歡做游戲,面對這類開發者更多推薦的是:Construct 和 Stencyl 。
這兩個都是可視化編程引擎,而且使用這些引擎不乏很多很好的游戲 ??赡軙行┤擞X得這種引擎做出來的游戲不是很厲害,但實際上作為愛好者和初學者,遠遠不到能碰到引擎天花板的地步 。
中立
而對于都不排斥的開發者更多是推薦 GameMaker 和 Unity 。
GameMaker 屬于開箱即用,非常適合初學者,你不需要重新配置環境,其內置的代碼編輯器也意味著你不需要選擇代碼編輯器,GML 語言也屬于最容易入門的語言,編譯速度也屬于很快,玩起來很流暢 。
Unity 最大優勢是可拓展的編輯器、運行時查看屬性和豐富的插件,這也是我在制作商業游戲時候選擇它的原因,豐富插件意味著一些問題不用自己處理比如各種手柄適配,多語言適配,手機的第三方邏輯,而且我可以購買一個 Platformer 引擎然后對其進行定制化開發,比自己沒有經驗從頭開始做好很多 。
所以個人推薦是如果剛學制作游戲可以從這幾個引擎選擇一個入手:GameMaker,Construct,pico-8 或者 MonoGame
如何學習一個引擎學習一個引擎或者自己寫點邏輯我會考慮幾個簡單的問題:

  • 如何顯示一個精靈(圖片)
  • 如何控制精靈移動
  • 精靈如何播放幀動畫
  • 如何碰到另外一個精靈銷毀對方
  • 銷毀對方時候生成一個特效動畫并且播放音效
  • 播放音樂
這幾個問題之后基本就可以簡單的做一個小游戲了 。之后的各個系統就需要時間慢慢學習了 。
一般來說游戲引擎都比較復雜,所以帶著問題去思考要做什么再去學習會目標性比較強也比較有效率 。一來就全部引擎功能過一遍沒什么意思,因為很多功能你可能不會遇到,就像我到現在也不了解 Unity 的 NavMesh 。

推薦閱讀