123456833 发表于 2021-1-5 10:01

专业开发者眼中的 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 甚至做得更好。我会推荐独立工作室将它用到小到中型游戏项目中。但如果需要考虑对投资人的资金负责,用于更大型的项目,在使用它前,我会更谨慎地考虑利弊。
页: [1]
查看完整版本: 专业开发者眼中的 GameMaker