从编译器、游戏引擎到游戏掌机——我是这样做独立游戏的
引言
自己开发制作游戏是一个儿时起就有的梦,特别是长时间接触魔兽争霸3世界编辑器后,我对游戏引擎和开发工具也有着特别的兴趣。学生时代接触编程以后,梦的外延开始扩散,不满足于使用各式编程语言做开发,开始维护一门自己喜欢的写游戏业务逻辑的编程语言 YueScript,因为学习图形学和作为学习项目重写 Cocos2d-x 有了 Dora SSR 游戏引擎。工作后因为对游戏掌机的喜爱,开始与伙伴合作研发自由开放的可编程游戏掌机设备——吉祥机,实现自己游戏梦终极的 Digital Freedom。
游戏脚本语言的乐趣与挑战
编程语言游乐场!
各式新的编程语言的学习是充满乐趣,对不同语言工具的接触也会带来不同的编程理念和程序设计思想。对于复杂多变的游戏玩法的脚本编程(Scripting)我也形成了自己编程偏好,即使用一门尽可能简洁和表达力强的编程语言来编写容易变化的业务逻辑,可以转译为 Lua 语言执行的 YueScript 就是满足这个需求的产物。后来随着使用自己的 Dora SSR 游戏引擎项目有了更多的游戏开发体验,又为 Dora SSR 游戏引擎引入了 Teal(为 Lua 语言添加静态类型检查能力的语言),Typescript(进一步增强代码编辑器提示和代码检查的语言),JSX 和 XML(提供描述性代码进行组件化开发的语言)等等。每一种脚本语言都能在特定的游戏开发场景发挥优势,并通过转译到最终运行的同样的Lua语言进行无缝的互通调用。不只是基于 Lua 语言的扩展,Dora SSR 游戏引擎还在尝试通过 WASM 虚拟机来支持更加多样的可以用做游戏脚本编程的语言,如 Rust 和准备支持的 C++ 和 Go 等,兼顾性能与引擎的运行时扩展能力。
游戏引擎的创新之路
随时随地用任何设备制作游戏!
说到游戏引擎大家总是想到高性能高质量的图形渲染,搭建复杂的游戏场景。实际上作为独立游戏开发者,或是游戏制作的爱好者,并不是人人都有条件追求3A游戏的制作(钞能力)。我认为很多 2D 游戏或是 2D 混合 3D 效果的游戏也能表达展现十分有创意和独特的游戏作品。而且能运行自己制作游戏的终端最好是不受限制的,再进一步,也许能用于开发游戏的终端也可以是不受限制的。所以就有了 Dora SSR 游戏引擎的项目目标,在尽可能多的设备上为游戏开发爱好者提供便捷易用的环境甚至是游戏开发 IDE。一直以来游戏开发这件也成为了我的个人生活体验的一部分。哪怕只有碎片化的时间和手边随机可用作游戏开发和运行的设备,我也想有空就利用起来碎片化地写两行游戏代码,或是调试一个游戏功能,并把它变成了一种比较随性惬意的休闲活动。
所以 Dora SSR 搭建了通过游戏引擎运行时内置用于游戏开发的 Web IDE 服务器,可以通过其它方便做输入的设备通过 Web 浏览器做访问,并实现直接在任意的终端运行设备上直接编写运行和调试游戏开发的代码。同时获得代码编辑器可视提示服务、以及使用其它游戏开发和资源管理的可视化工具。目前 Dora SSR 在努力之下已具备了在 Windows、macOS、iOS、Android、多个 Linux 发行版上进行游戏开发的能力。