独立游戏开发指南 学游戏开发


学游戏开发(独立游戏开发入门指南)
注:文章来自会员日志,题图来自 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 。
这两个都是可视化编程引擎,而且使用这些引擎不乏很多很好的游戏 。可能会有些人觉得这种引擎做出来的游戏不是很厉害,但实际上作为爱好者和初学者,远远不到能碰到引擎天花板的地步 。
中立
而对于都不排斥的开发者更多是推荐 GameMaker 和 Unity 。
GameMaker 属于开箱即用,非常适合初学者,你不需要重新配置环境,其内置的代码编辑器也意味着你不需要选择代码编辑器,GML 语言也属于最容易入门的语言,编译速度也属于很快,玩起来很流畅 。
Unity 最大优势是可拓展的编辑器、运行时查看属性和丰富的插件,这也是我在制作商业游戏时候选择它的原因,丰富插件意味着一些问题不用自己处理比如各种手柄适配,多语言适配,手机的第三方逻辑,而且我可以购买一个 Platformer 引擎然后对其进行定制化开发,比自己没有经验从头开始做好很多 。
所以个人推荐是如果刚学制作游戏可以从这几个引擎选择一个入手:GameMaker,Construct,pico-8 或者 MonoGame
如何学习一个引擎学习一个引擎或者自己写点逻辑我会考虑几个简单的问题:

  • 如何显示一个精灵(图片)
  • 如何控制精灵移动
  • 精灵如何播放帧动画
  • 如何碰到另外一个精灵销毁对方
  • 销毁对方时候生成一个特效动画并且播放音效
  • 播放音乐
这几个问题之后基本就可以简单的做一个小游戏了 。之后的各个系统就需要时间慢慢学习了 。
一般来说游戏引擎都比较复杂,所以带着问题去思考要做什么再去学习会目标性比较强也比较有效率 。一来就全部引擎功能过一遍没什么意思,因为很多功能你可能不会遇到,就像我到现在也不了解 Unity 的 NavMesh 。

推荐阅读