專業開發者眼中的 GameMaker
引言
本文是一名經驗豐富的 GameMaker 引擎使用者,MoaCube 工作室的 TEEGEE,於 2012 年寫的一篇系統介紹 GameMaker 優劣勢的文章,原文見此。到今天,遊戲引擎的市場格局發生了許多重大變化,文中不少內容已經過時:目前 GM 基本停止了更新維護,這款引擎背後的公司 YoYo Games 已經將重心放在了 GM Studio 上,並且陸續推出了多平台的導出功能。文中提到的 GM 和 GMS 曾誕生過許多頗有影響力的獨立遊戲名作,例如今年引起過一段時間熱度的 Hyper light drifter 就是 GMS 出品 。隨著 Unity, Unreal 等引擎支持免費商用,加上 Unity 官方對 2D 遊戲的支持也越來越完善,許多用戶開始流失,GMS 的地位似乎變得略微有些尷尬,那麼它是否仍然有學習和使用的價值呢?儘管本文討論的重點是 GMS 推出之前的 GM8 版本,但本文的某些觀點對 GMS 依然適用。值得一提的是,國內依然存在許多使用 GM8 版本的用戶,由於許多人使用的是漢化與破解版本,加上過去積累下來的大量插件和教程,所以很難做出挪步到新的 GMS 版本的決定。相信本文給出的意見也能有一些參考價值。
正文
MoaCube 多數作品使用 GameMaker 開發,這並非什麼秘密。截止 2012 年,我使用這款引擎已經有七年歷史了。有時候只是用來探索某些創意,但多數時候是用於商業項目,當年在 Codeminion 工作的時候,也用它開發過一些快速原型。
Gamemaker 呀,我對她愛恨交加。我們有一段美好的過去,但分手的念頭也不時會冒出來,我有時會想轉頭去追求更年輕性感的 Unity 小姐。後來呢,我們又複合了。但你懂,還在一起只是因為孩子。
GameMaker
GameMaker 在業餘與自由開發者中相當流行,但你會留意到,它的確很少用於商業品質的遊戲項目,因此也很少看到有文章提到 GM 遊戲專業開發運營的問題。
隨著 YoYo Games 發布 GM HTML5 模塊並推出全新的 GM Studio, 我們能看出他們希望吸引一批更專業的開發者使用它們的引擎。在這個時機,我覺得以商用角度來評價一下這款引擎的利弊應該能對大家裨益良多:
優勢
快速開發
這基本上是 GameMaker 以及類似的工具對我來說的主要優勢。你可以用它快如閃電地完成項目。DBC game jams 上我只用了幾個小時就完成了一款作品:完全能玩,機制完整,還有不少閃光點。在 Codeminion 工作期間,我發現利用 GameMaker 製作的原型來向程序員表達我的設計思路效率更高,比提交一份需求文檔,歷經若干個來回反饋要強得多。
如果你必須為資金與死線的問題煩惱,那快速開發的優勢就顯得更加重要了。當然,一個強大的 C++ 程序員使用優秀的框架差不多也能達到同樣高的效率。但是……嗯……首先你得僱傭這名程序員,讓他花費數月時間先開發好這套框架。GM 在這些方面節約了大量的時間與金錢。
此外,它的適用面十分廣泛:你能構想到的任何種類的 2D 遊戲基本上都可以使用 GameMaker 來實現。這一點上它勝過那些專註於某個類型的遊戲開發工具,比如用於製作文字冒險遊戲的 Ren"Py 或者用於 Rpg 遊戲開發的 RPG Maker。甚至也勝過許多自研引擎,它們也經常只滿足某些特定類型遊戲的開發需求。
而 GameMaker 則能夠做各種各樣類型的遊戲,街機風的射擊遊戲,複雜的 RTS,平台跳躍遊戲,視覺小說,甚至一些你自己構想出來的實驗類型遊戲。無需為每個新開項目重新學習工具的使用,能夠省下不少時間。
性能靠譜
我經常聽說 GM 的性能是它最主要的問題。其實並沒有這回事:其實它比多數 2D 引擎表現都好。當然,如果你想要應用一些非常先進的技術實現,那最好還是編寫自己的引擎。但老實說,大部分商業 2D 遊戲並不需要那麼超前的技術支持。總的來說你會希望它能夠完美運行在比較老舊的機器上,有很多獨立遊戲愛好者用的是這樣配置的機器。就吸引力而言,養眼的美術風格比純粹的超前技術來得更加重要。
我認為 ArcMagi 和 Cinders 都已經是非常漂亮的遊戲,使用了大量特效,粒子效果,酷炫的過渡動畫等等。這兩款遊戲即便跑在上網本和比較老的硬體上也能很輕鬆得將幀率維持在 60 fps 以上。我從來沒有為了防止掉幀來砍除遊戲中酷炫的效果。
我反而會覺得 GM 的使用方式過於傻瓜是個問題,會害人變得太懶。一不小心你就會把所有的美術資源丟進項目里,一股腦兒將成噸的粒子效果轟到屏幕上,接著用掉太多內存你開始抱怨性能問題。
只需要更謹慎負責地使用內存,進行一些簡單的優化措施,就能解決到 GM 大部分性能問題。而其實無論使用哪一款引擎,只要是商業項目,這些都是必須考慮到的問題。我可以確定地告訴你,以我目前使用性能更好的自研引擎開發的 Phantasmat 這款遊戲為例,在屏幕上渲染任何東西我都不可能不顧及低端硬體上的性能表現。
價格低廉
嗯,正如字面意思。它比很多商業引擎都便宜。如果你資金充沛,這不算什麼特別大的優點,但對於小型的獨立開發團隊或者個人開發者來說,與其花費大量資金去購買 Unity 和它的插件,不如考慮下使用這款引擎,也許更加划算。
易於學習
GM 最初的設計目標是一款教學工具,這我們也依稀能感覺出來。它很容易掌握,提供的腳本語言語法規則非常自由,文檔沒有用玄奧的克林貢語來寫,教程資源也十分豐富。即便是缺乏編程經驗的藝術家經過一段時間學習後也能掌控和使用它。它很容易能讓團隊中的非技術成員更多地參與到遊戲製作的流程中來,這對小型團隊來說是非常大的優勢。我們可別忘記一點:學習新工具所耗費的時間也會算入開發成本當中。
方便預測
除了我後文會提到的一些問題外,對 GameMaker 引擎遊戲的效果做出預判並不困難。它已經發布了很久,也沒有使用太時髦的技術。如果在你的開發機上它看上去是那個樣子,那你的玩家也差不多會看到一個模樣。如果並非如此,基本上也不太可能是引擎的問題。視項目複雜度不同,GM 能夠幫助你節約數周乃至數月的 QA 時間。
良好的多平台支持
GM8 已經開始支持 HTML5。iOS,安卓等其他模塊也將陸續推出。許多遊戲已經被 YoYo Games 移植到了 iOS 平台。儘管目前看來還存在一些問題,但這款引擎肯定會變得越來越具有通用性。
缺乏競爭
GameMaker 並沒有太多同等級的替代品。自研引擎很有優勢,但會花掉太多太多的前期開發時間。 像 Ren"py 或者 RPG Maker 這樣的引擎只專註於某些類型的遊戲。Construct,Stencyl 和 MMF2 這類使用所謂可視化編程的引擎非常難以調試,項目一旦變大,代碼的可讀性也會變得非常差。而目前階段的 Unity,如果用它來做 2D 遊戲,就好比拿著電鋸來砍盆栽。
GameMaker 難說完美(嗯,我確實沒法這麼說),但我覺得它應該是目前最好的2D遊戲快速開發工具。
劣勢
註:此處提到的多數問題在目前版本的 GMS 中都已經得到解決或改善,而 GM8 版本對此類問題的解決則依賴於第三方社區支持。
糟糕的第一印象
YoYo Games 官網非常浮誇,下載頁面也很糟糕,滿滿的 windows 95 范兒。
這完全不應該,會嚇跑許多開發者,並且讓他們以為 GM 只是給小孩用的工具。當然並非如此,但第一印象太重要了。
幾乎無法使用的 Mac 版
Mac 版也很渣,給人的感覺好像使用 Atom 處理器的 Dyson 操作系統,這形容真的一點也不誇張。很糟糕。Windows 下的 GM 版本是 v8.1,而 Mac 版卻基於 GM7.0 開發。這意味著存在兼容問題。如果你的項目是基於 8.0 以上版本,那就還是先別考慮移植到 Mac 上的念頭吧。這還並非最嚴重的問題。
Mac 版基本上就沒法用。我的意思是:壓根沒法用它做遊戲。每個函數調用都可能導致崩潰。連載入帶透明度的精靈都做不到,繪製超過三行文字就會讓遊戲卡得不行。為了讓 Cinders 和 Magi 這兩款遊戲的 Mac 版能玩,我們不得不為 YoYo Games 做了大量的 QA 工作:我們和引擎開發者取得聯繫,提交了大量的 bug 報告,為其他用戶提交的 bug 報告補充重現過程和實際案例,等等。
成品勉強過得去,但瑕疵依然不少。界面崩潰後,編輯器卻根本不報告正確的錯誤原因,只會停止響應或者產生一堆bug信息。如果你非常清楚 GM 的工作流程,但如果你是第一次在 Mac 上使用這款工具,唔,朋友我同情你。
值得關注的是,即將推出的 GM Studio 支持導出到 Mac 版本,想必能解決這些問題。但最好還是專註 Windows 平台。遊戲的移植目標無法運行在開發機上會導致許多問題,如果你有過類似經驗應該對此感同身受。
據說所謂的 GM9 會支持真正的多平台開發支持,待它真正發布的時候再說吧。
Win7 下的全屏問題
出於某些原因,GameMaker 似乎對 Windows7 不太上心,看起來,它並未使用插值法來縮放圖片,而是使用了基本的最近像素演算法。
為什麼我會強調這一點呢?因為如果想要全屏運行遊戲,畫面就會被放大來適應屏幕(你不可能預先支持所有的屏幕尺寸)。多數引擎會得到略微模糊,但基本上還成的畫面。而 GameMaker 呢,不妨試試它在 Window7 下的效果?
想像一下,你做了一款休閒遊戲,打算放 BigFish 遊戲網出售。看起來是 GM 很擅長的項目啊。遊戲完成後初步通過,你收到了官方的技術文檔,其中一點明確寫著:「遊戲開啟後必須能夠正常運行在全屏模式下。」嗯。這下子有趣了。
GM8.1 中的精靈載入bug
嗯,終於說到這個罄竹難書的問題了!到現在還會把我用 spine 做的骨骼動畫變得支離破碎。有些預購了 Cinders 的玩家可能會有印象。預覽版發布不久,就有不少玩家告訴我們遊戲經常在場景載入的時候崩潰。研究後發現,這個問題主要出現在比較舊的機器上,以及一些使用集成顯卡的低端筆記本電腦和上網本上。嗯, 大約佔我們用戶技術的 20% 到 30%。簡直可怕。
我們花了兩天兩夜試圖重現問題。我從來沒有那麼久不睡覺過。畢竟,有人買了遊戲卻玩不成。謝天謝地,這是 beta 版本期間出的問題,而非正式發售……那可真會把我們害得聲名狼藉。Marius 最後總算找到一個能復現 bug 的舊電腦。又經過幾天的測試,我們終於確定了遊戲崩潰的原因。出於某種預感,我重新使用 GM8.0 而不是 GM8.1 編譯了遊戲,問題果然解決了。
結果證明是 GM8.1 會導致低配電腦下載入較大的貼圖材質時發生崩潰。此外,還有些在原型階段不會暴露的問題,會發生在比較大的項目之中。Russell Kay,GameMaker 程序員,順便一提,是個非常酷非常靠譜的夥計,他花了好幾個禮拜來修復隱藏bug。遊戲可算不會崩潰了,但某些配置的機器上卻出現了圖形錯誤和性能下降的問題。
最後,我們不得不選擇 GM8.0 來編譯我們的 PC 發布版本(好在我們還保留了舊版本的代碼),即便我已經買了 GM8.1。而 GM8.1 修復了 GM8.0 中有關反鋸齒字體效果的問題。
詭異的開發進度
你會覺得上述問題過於明顯,應該很快就能得到修復。畢竟,材質載入和像素插值處理都屬於核心功能。
嗯,然而事實是,GM8.1 已經有好幾個月不更新了,大家開始轉向 GMS 和 HTML5 模塊。不幸的是,它們都基於殘破的 GM8.0 版本的代碼。全屏問題被拖延到 GM9 中修復。
不得不說,負責開發 GameMaker 引擎的程序員是一群非常聰明有能力的人。但很難不去懷疑他們是不是存在管理方面的問題。不停地發布新版本,而核心產品卻讓然存在嚴重問題,這不像是能吸引到專業開發者的策略。
糟糕的內置編輯工具
GameMaker 內部集成了用於美術資源和關卡設計的編輯工具。它們都不算非常實用。這倒沒有怎麼令我們困擾,我們都使用專業的圖形處理軟體,也會為關卡設計實現自己的解決方案,但我覺得有必要提醒新人不要指望這些內置工具。用內置的功能做一些簡單的小遊戲估計還成,但對體量較大的商業項目……唔,別考慮它們。
缺乏移植性
據說 Mac, iOS 以及安卓模塊陸續會發布,但目前它們都還不可用。
除非你和 YoYo Games 達成一些不是那麼愉快的協議,條件很苛刻,50%的分成,獨佔權,經過一堆磋商你會被他們列為開發者,這樣你的遊戲大概就能獲得移植了。而所謂的多平台支持的 GM Studio 據說是基於 GM8.1 的代碼二次開發的,這可不是靠譜的兆頭啊。
總而言之,如果你的主要面向目標是手游市場,那使用 GM 有點過於冒險了。至少當下是這樣。
很難進行團隊合作
GameMaker 的整個項目是一個單一的文件。這意味著,如果和數個團隊成員合作進行開發,版本控制會成為一件很麻煩的事情。未來的 HTML5 模塊和 GMS 都會將項目保存為一個文件夾結構(類似 Unity),因此這個問題應該只是暫時的。
不確定的未來
老實說,GM 越來越顯得有點過時,尤其是像 Unity 和 Stencyl 這樣的工具功能越來越完善。GM 最近版本的更新也不是那麼讓人安心,尤其是 Mac 版,出現了許多問題。YoYo Games 也在盈利和專註於遊戲發行的業務方向間舉棋不定。這款引擎未來數年的前景不是很明確。它的確擁有巨大潛力,但我依然選擇持審慎悲觀態度。
總結
那麼,GameMaker 到底值得不值得學習呢?如果只是業務興趣,或者以輕量級的獨立製作為目標,那選它沒有什麼大問題。快捷,簡單,而且它的問題對小型項目影響也不那麼顯著。
至於商業項目。我的確並不非常推薦你選擇它,除非你已經是一名老手,確認能從可能踩到的任何坑裡自己爬出來。它高效、靈活、強大,但它的一些缺陷很可能會在項目收尾階段令你承擔一些不必要的風險。而且看官方目前的效率,你很難指望 bug 很快就能修復好。
以我們自身為例,我們很榮幸選擇 GM 來開發 Magi,ArcMagi 和 Cinders 這三款遊戲。它們都絲毫不打折扣地按我們設想的那樣完成了,視覺效果很棒,開發過程十分迅速,後期擴展和調整也很容易。以 GM 為基礎開發的 Cinder 尤其令我們滿意:一個非常靈活的視覺小說引擎,類似 Ren"py,但圖像表現卻更好,也很容易拓展其他的遊戲要素。而我們從頭實現它只用了三個月。
我們今後的一些遊戲項目,也還會選擇使用 GM,尤其是視覺小說遊戲或者一些探索性質的項目。我們近期的一款較大的製作,投入至少 10 萬美元,曾強烈希望使用 GameMaker 來做,但最後還是認為風險過大,選擇了其他引擎。
請容我重申一遍:需要對外部投資負責的時候,我們會考慮使用風險更小的全新引擎來代替使用了七年的 GameMaker。這會讓我反思很多事。也許你也會有一些感想。
GameMaker 是一個令人報以厚望的工具,而且它最終也應該會成為一個確實可行的選擇,但它確實需要更多時間來完善,也需要 YoYo Games 更好地掌控它的發展。他們也會採納許多有建設性的反饋意見,因此如果你是專業的獨立開發者,可以試著聯繫他們,向他們反應你在使用過程中遇到的主要問題,這樣做帶來的改善對你是否繼續使用它十分關鍵。GameMaker 的維護和開發者真的很棒,值得你這樣信任。
如果你覺得本文還算有幫助,可以考慮在推特上粉我。多謝啦!
補充內容
我留意到不少 GMS 的用戶也讀到了這篇文章。鑒於本文寫於 GMS 正式發布前,因此我再加一些內容作為補充。
GMS 修復了我前面提到的許多問題。例如糟糕的全屏問題已經完全解決了,也在一定程度上支持團隊合作,多平台支持也靠譜多了。它給人的第一印象還是很一般,內置的編輯器好用了一些,但和 Unity 或其他引擎相比,仍然差得遠。
對我來說,GMS 主要的問題是沒有 Mac 版(你可以將項目導出到 Mac 運行,但你不能使用 Mac 來進行開發),並且總體上來說,它還有許多 bug。GMS 尚且處於早期開發階段,還在不斷進行修復 bug 的更新,也不時會引入新的問題,其中有些問題甚至相當可怕:這是一篇 2012 年由於 drm 錯誤導致嚴重問題的報道。此外,內置的腳本語言也會經常變動,這可能會對跨時較長的中型項目造成災難性的影響。當然,它在越變越好用。也許幾個月後,它就不會有這麼多問題了。
總而言之,我依然堅持之前的觀點。GM 是相當不錯的工具。新的 GMS 甚至做得更好。我會推薦獨立工作室將它用到小到中型遊戲項目中。但如果需要考慮對投資人的資金負責,用於更大型的項目,在使用它前,我會更謹慎地考慮利弊。
推薦閱讀:
※霧霾、人文與絕望——從獨立遊戲《Hazy Days》說起
※《汐》評測 這款遊戲可能會讓你怒砸鍵盤
※我喜歡《沒有人知道的大冒險》
※聊聊 BattleBlock Theater 的設計
※通往優質內容時代的偉大航路,CiGA全國巡迴沙龍北京站報名開放