从唤境引擎迁移到其他游戏引擎
背景
此前我几乎所有的游戏开发经验都建立在唤境引擎之上,这是一款国产的图形化无代码2D游戏引擎,虽然是主打大众化、易上手,但实际上引擎提供的自由度非常高,可以完成任何类型的2D游戏开发。
引擎和游戏基于类似electron技术,将游戏打包在浏览器中,也可以直接在线运行,提供了较好的灵活性和跨平台兼容性,不过由于几乎不存在多核优化,性能上比较差。
然而,唤境自从我2020年关注开始就逐渐下滑,一开始还有不少更新、激励计划和热度,但是2021之后引擎就几乎没有过任何功能更新,官方也逐渐开始淡出视野,直到2023年7月最后发过一条动态就再也没有声响了。当然引擎更新方面我认为唤境已经很完善了,后续增加的多人联机、视频功能、云存档等都是非常有用的功能,也填补了之前存在的功能缺口;但引擎开发停滞、官网域名一再更换,直到最终完全下架引擎和app下载链接、关闭手机app服务,无不表明着唤境已经在濒临关闭的边缘了。
为什么要更换引擎?
2024/9/14更新:唤境已推出单机版引擎,不再依赖在线服务,因此如果你的项目已经有很大程度的开发进度那么可以不更换引擎;但考虑到唤境未来可能不会再提供功能更新,我仍然推荐选择其他正在积极开发和维护的引擎。
- 唤境虽然是相对轻量化的引擎,但严重依赖在线服务;hub必须联网才能启动引擎,且游戏打包导出也必须通过唤境官方服务器进行,无法手动本地完成。
- 多人联机完全依赖官方服务器,无法自建、无法局域网联机
- 官方支持客服人员几乎完全无法联系,无法结算收益、获得推广
- 手机app停止服务,无法通过app查找和推广游戏
可以看出,如果唤境真的关停服务器,那么所有现有项目将完全被迫废弃,引擎都无法打开,遑论打包输出游戏和游玩(但对于单机已打包的游戏没有影响,显然)。
可以更换哪些引擎?
tip:前置内容很长,下面有个人推荐总结。
2024年了,游戏引擎的数量非常之多,允许开发者个人免费使用、商用的引擎也越来越多,许多还都是开源引擎。我简单整理了一下开发者们大多可能选择的选项,并给出我自己的选择。
虚幻和unity
显然,每个接触过游戏开发的,乃至于大多数普通游戏玩家都知道这两个世界级的大型引擎。二者都同时为小型独立开发者和大型游戏公司提供良好的灵活性,且商用授权费用计价相对合理(unity前段时间有过这方面的作死行为,但个人认为总比那些一开始就要花很高价格买使用授权的还是要好)。
虚幻引擎整体而言规模更庞大,完全针对3D进行优化和设计,由于内置的蓝图系统可以一定程度上减少代码编写工作量而被认为适合轻量化开发,但实际上由于引擎较为现代化,支持的各种功能繁多,无论是开发游戏还是运行游戏都有较大的资源开销,入门难度仍然不低,且其游戏的性能通常更低;但虚幻引擎自带的工具很多都非常有用,例如物理、动画和光照等,同时还有非常强大的渲染系统,使其游戏的视觉效果能快速达到较好水平(也就是制作一个“宣传骗”非常容易)。
unity则是提供更多的灵活性,但也意味着开发者需要自己写很多代码,甚至有时候还需要完全更改渲染管线来实现更好的画面表现。不过总体而言,unity相对更轻量化,总体游戏性能更好,对2D的支持也比较完善,同样是适合独立开发者的选择。
就这二者而言,由于唤境是2D游戏引擎,我认为要转到虚幻引擎可能会出现一些困难;尽管如此,虚幻引擎的蓝图系统允许开发者不写代码完成编程,这方面的优势会更大。然而,unity本身上手学习难度相对低,因此如果能学会C#的话我更推荐unity。
Godot
这是一个免费、开源、功能强大的引擎,同时支持2D和3D,也是许多唤境开发者首选的迁移目标(甚至许多从unity迁出的开发者)。Godot虽然目前没有太多非常出名的大型游戏作品,但在独立游戏开发者、个人和小型工作室以及许多正在学习游戏开发的人群中非常流行。这不仅有利于引擎维持其更新和热度,更创建了一个活跃的社区环境,对于开发者而言总是有利的。
Godot支持多种不同的代码语言,有其自有的GDscript,也可通过插件支持来使用C#、C++、.NET或者python等多种语言。Godot实现了较好的平衡性,独特的节点系统同时保持了功能多样和规整有序。
虽然优点很多,但Godot的学习曲线确实更长,尤其是对于从未真正将一门编程语言用于生产的开发者而言;对于使用唤境的许多开发者而言,这是一个较大的挑战。
Game Maker Studio(GMS)
完全面向2D游戏开发,支持一种类似虚幻蓝图系统的GML Visual可视化工具以及GML Code脚本语言进行编程。
我个人并没有尝试过这个引擎,很大一部分原因是它的定价:允许个人免费非商业使用,但要商用则必须购买专业级许可证(100美元终身!),或者以每月80美元的价格订阅企业版(年付800美元)。这个价格于我而言是不可接受的水平。
此外,就我在官网和文档中看到的资料来说,GMS本身似乎并没有什么非常值得我使用的理由,各种特色也并未成为杀手级应用,所以就个人而言,我并不推荐唤境开发者转向GMS,除非完全只是出于兴趣和学习目的开发游戏,或者自己资金充裕。
RPG maker(RPGM)
RPGM本身并非免费引擎,可以在steam上购买引擎并获得商业使用权;这也是一个比较有名的游戏引擎,正如其名所示,这是一个专注于制作RPG类游戏的引擎。
与其他所有引擎都不同,RPGM的一大特点就是预制内容多,包括自带的各类素材库和生成器等,使得“真正完全没有开发基础的人”也能做出自己的游戏。但也正因如此,其灵活性相对要差一些(如果不是非常差的话),近年来热度也并不高,在我看来它就像是一轮湖中月,大多数开发者都无法真正用它做出一个完整的游戏,更不用说一个好玩的游戏了。
Construct 3(C3)
Construct也是一个非常轻量化的、面向2D的游戏引擎,同样吸引了很多唤境用户;至于原因?因为它们长得像,非常像。同样的事件表系统、无代码编程,同样简单的开发流程,非常相似的编辑器布局,C3是如此吸引唤境用户,以至于几个群友天天在群里宣传C3:
虽然我个人确实挺喜欢这个界面的,但是在定价方面我可以说非常不喜欢C3的做法:
- 官网许可证页面:https://www.construct.net/en/make-games/buy-construct
- 游戏事件限制:免费版50条,付费版无限制
- 图层限制:免费版2个,付费版无限制
- 特效支持:免费版2个,付费版无限制
- 多人游戏、自定义加载屏、广告、导出到Windows/安卓/iOS以及非常多其他功能:仅付费版可用
- 商用限制:免费版不允许商用
至于价格本身其实不算贵,个人许可证一年99CNY,官方支持中文,但一没有永久许可证,二免费版的功能限制太严重,三仍然不能完全离线运行(免费版可以,付费版每周必须联网检查一次许可证有效),因此C3并不是我会选择的引擎。但对于很多唤境用户而言,C3仍然是值得考虑的选项。
GDevelop(GDE)
某种程度上来说,GDE和C3具备可观的相似度,也因此与唤境具备一定相似度。相比C3而言,GDE自身就提供网页版编辑器,用GDE开发的游戏也是原生运行在浏览器中,因此引擎的使用体验与唤境相似度非常高,还提供了更多的灵活性。GDE同时支持2D和3D,使用一套与唤境相似但自由度更高、更复杂的事件系统,同样具有一个非常活跃的社区以及大量的社区贡献内容。
定价方面,GDE引擎是开源的,但也具有一套良好的订阅机制。免费版具备开发游戏的所有基础功能(但不包括像AI功能这种),付费版定价从5.5到33美元/月,提供更多的外部功能(例如项目协作、自定义排行榜样式等)。
GDE也是我最终选择迁移到的引擎(虽然此后可能会继续学习Godot),更具体的使用体验和评测在下文。
总结
总结表格如下,其中推荐度指的是作为唤境开发者而言,我认为迁移到这个引擎有多大的价值。
引擎 | 使用经历 | 商用许可 | 综合推荐度 |
---|---|---|---|
Godot | 约1周 | 开源/完全免费 | ⭐⭐⭐⭐⭐ |
Unity | 约1个月 | 付费商用 | ⭐⭐⭐⭐ |
GDevelop | 约1周 | 开源/免费商用/功能付费 | ⭐⭐⭐⭐ |
虚幻4/5 | 虚幻4,约1个月 | 付费商用 | ⭐⭐⭐ |
Construct 3 | 无 | 免费功能限制/付费商用 | ⭐⭐⭐ |
Game Maker Studio | 无 | 付费商用 | ⭐⭐ |
RPG Maker | 无 | 付费使用/商用 | ⭐ |
为什么选择GDevelop?
在回答这个问题之前,首先简述一下我是怎么找到GDE的;实际上就是我在必应中搜索开源游戏引擎,然后在一条CSDN博客文章中看到的。简单了解过后,我认为这个引擎能够完全符合我的需求和预期,随即开始学习使用。
选择开源引擎并非出于某种“程序洁癖”,而是因为开源的游戏引擎几乎就保证了离线可用性,无论是继续开发游戏还是导出游戏,基本都可以脱离官方在线服务而使用。
入坑前准备
官方网站:https://gdevelop.io/zh-cn
首先访问GDE官网,官方已支持大部分中文翻译(引擎内99%,但不包括社区扩展),有完整的许可证对比、文档和手册、游戏展示、社区等页面,还可以一键直接打开网页版编辑器,立刻就能体验引擎。
Github仓库:https://github.com/4ian/GDevelop
随后找到引擎源码仓库,一个非常优雅和标准的现代化开源项目,活跃度虽不及真正的大型项目,但一直维持稳定的热度,平均一天有6-12个PR,其中过半都能合并,可以说开发和维护情况仍然是非常积极的。
YouTube频道:https://www.youtube.com/@GDevelopApp
平均更新频率为月更2个视频,大部分是各类教程,少数宣传视频和游戏展示。播放量不大,多数都在5K~2W之间。与唤境的“网课”风格不同,这里的视频风格很多是作为一个真实开发者的视角进行的,演讲人会在视频中犯错,随后解释为什么会出错以及如何修复。不过虽然趣味性和互动性增强了,这种“在线试错”也更能留下深刻印象,但对于需要快速找到需求教程的情况来说就不太友好。但好在官网的文档相对完善,搜索功能也很好用(不过只有英文,可能需要用一下翻译)。
GDevelop初体验
在下载引擎后,通常还需要注册一个账号;虽然不登录也完全可以正常使用,但有些界面会跳出订阅弹窗。
不过,这里就是第一个问题所在了;官网虽然连接慢,但一旦访问进去就能正常使用了,而编辑器内我完全无法登录账号,也无法下载各类资产商店的资源,最终必须魔法上网才能解决。好在并非强制要求登录或在线使用,因此也并无大的影响。
启动引擎后,我首先打开了一个教程项目,随后立即感受到扑面而来的熟悉感:跟唤境真的非常相似。折腾了一会教程项目后,我很快就开始翻阅文档,了解事件表、扩展、图层等的使用。在创建了第一个移植项目后,我马上就开始着手写自己的扩展(虽然最后发现并没啥用),但是在其中我找到的功能自由度完全超出我的想象。
真正的推荐理由
回到正题,为什么我选择GDE并且也推荐它?排除与唤境相似、免代码编程等因素,这里还有我发现的很多很酷的方面。
可移除的logo和水印
之前使用唤境的时候,很多人都针对游戏启动画面、加载界面等提出请求,希望官方提供一个自定义logo功能,即便是要付费使用也行;这方面我完全同意,唤境的加载页面图片真的不好看,而且总有种我花时间做游戏,结果游戏还没开始就先给引擎打广告的感觉。虽然我喜欢并且支持唤境,但这方面我保留我的意见。
然而,在GDE中,引擎不仅提供了完全可自定义的加载背景图,还可以手动选择是否展示水印和引擎logo。默认情况下二者都会显示,效果如下:
启动时显示
右下角水印(只会显示约5秒)
GDE官方的行为是,免费用户需要至少选择一种展示方式,付费用户才能完全去除;但实际上有一个非常简单的方法就能彻底删除logo和水印:
首先打开项目文件夹
打开其中的json文件
找到loadingScreen和watermark这两项,将展示改为false,如下所示
1
2
3
4
5
6
7
8
9
10
11......
"loadingScreen": {
......
"showGDevelopSplash": false,
......
},
"watermark": {
......
"showWatermark": false
},
......随后启动引擎,进入属性界面,就能看到两个选项都被移除了,而且除非手动启用,否则引擎不会检查和更正。
json里还有更多有意思的选项,可以自己折腾。有些选项甚至可能引擎内都无法完全调整。
对我而言,这真的是一个非常伟大的设计。实际上,我对这样的行为甚至产生惭愧的感觉,因此我会在我的游戏中加入自己设计的宣传图和感谢页面,或者在真正有能力的时候购买一个许可证来支持开发。
在线和离线结合
对于开源引擎而言,官方卖许可证的很大一个卖点就是在线服务,包括AI功能、云项目、资源商店、联机服务器等等,而引擎所有基础功能都能完全离线使用。例如,免费版用户的联机游戏最多支持4人联机(与唤境相同),付费版则似乎没有限制;免费版每天只能发布一个游戏到电脑和安卓(但在官方游戏网站上是无限制的),付费版提高次数的同时也会增加iOS支持。但H5打包是完全免费的,还可以直接生成到本地网页文件,你可以将这个游戏随便发布到任何网站托管平台。更重要的是,官方限制每天一次是通过服务器发布游戏,这跟唤境的做法是一致的,但你仍然可以无限制地自己打包生成PC和安卓客户端,不过需要学习electron等工具的使用。此外,多人游戏的4人限制仅限使用官方服务器时,如果是P2P或者用扩展来支持则不存在限制(或者说取决于游戏开发)。
甚至于对浏览器基础功能也有完善的支持,引擎内可以直接打开文件或网址(通常会被浏览器拦截,但客户端一般没问题),允许下载或上传文本内容,读取本地json等等。
强大的扩展和社区支持
在开发过程中,各类扩展和来自社区的支持给了我非常大的助力。引擎已有的扩展有上百个,可以自己创建或者导入,也可以在引擎中直接下载。扩展这玩意不好描述,就拿实际例子来吧:- Noise Generator:一个柏林噪声工具,可以实现类似minecraft的随机地形生成
- Back button:在安卓上运行游戏时,给返回键添加功能支持,而不是直接关闭游戏
- Load images from a URL:从链接加载图片(以前唤境支持过但不知道怎么用,后来删了)
- Dynamic Water:快速创建流体模拟系统
- THNK:完整的联机游戏插件扩展,允许P2P、中继和局域网多人游戏
以及一些已经被整合进引擎的功能:
- firebase:通过自己的firebase提供一些云服务
- steamworks:与steam的底层兼容性,包括成就、联机、创意工坊、反作弊等steam提供的功能
- gamepad:手柄输入和振动支持
- leaderboards:排行榜系统
后记
这篇文章花了我一整天时间才写完,希望能为从唤境迁移游戏引擎的开发者提供一点帮助,而不是一味地推销我选择的引擎。显然GDE远非完美,但我尽可能描述了我选择的理由,以供参考。
后续的游戏开发日志也会发布于博客网站,但由于工作原因,游戏开发可能只能作为我的爱好,因此不能保证以后一定会继续学习和开发。但这是一个陪伴我大学四年的爱好,我仍然希望未来可以延续下去。
衷心祝愿所有开发者顺利完成游戏开发!