从编译器,游戏引擎和编程语言到游戏掌机,一款真正意义上的“开源”掌机
近日,一款名为吉祥机的国产游戏掌机即将面世,其作者李瑾和背后的团队均是深耕游戏行业多年的老兵,也是重度的复古游戏玩家,在体验了一圈国内外各种掌上游戏设备后,它们决定开发自己的游戏引擎和游戏掌机。
以下内容由Dora SSR团队提供。
引言
自己开发制作游戏是一个儿时起就有的梦,特别是长时间接触魔兽争霸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 发行版上进行游戏开发的能力。
向着自由开放的游戏掌机梦想迈进
到此我觉得对游戏开发能力的自由和开放体验的追求还远不到尽头。作为喜好各式掌机的老玩家,在体验了诸多国产开源掌机的商业产品后,我感觉深深的不满足。用掌上游戏机玩游戏目前还是在卷硬件参数和外观设计来提供体验的差别,而我期待的掌机并不只是玩游戏上的体验,还应该是一个可以用来自由的开发、运行甚至发行自制游戏的设备。很多掌机厂商都有自己的商业化模式和获得盈利的闭环,所以不会允许硬件设备获得太多可编程定制的能力。于是和同样对硬件发烧的伙伴一起研究构建完全自由开放的掌机设备。并尽可能提供包括机器的计算核心、外设和外观均可进行模块化的定制和更换的能力(使科技不再以换壳为本)于是又有了“吉祥机”的项目。
所以折腾了半天我的游戏到底做出来了没有呢?答案当然是做了,但没完全做出来啦。在生成式 AI 大模型进入彻底火爆前夕的2020年我们就想象了一个关于未来的 AI 的游戏故事,人的物质需求已经得到完全满足,生下来的目的只剩下了通过进行游戏娱乐,并通过采集过程数据给AI生产有创造力和展现智能的训练数据。人生的价值都是由未来的银行通过评估人的游戏活动所创造的智能数据的质量和价值,来进行货币分配而评定的。人类贡献的数据训练出的 AI 会帮助人完成一切的物质生产、到人类个体的养育和社会管理的工作。在这样的背景下,人还会有什么样的故事。最后游戏输出的价值观就是人生来就应该是改造世界的主体,而不是只会适应一切现状的被改造的客体。也呼应了我和我的伙伴们一直在追寻的东西,想要不被与生而来的一切所定义,就去靠自己的主动创造去重新定义一切。
项目地址
- Dora SSR 游戏引擎: https://github.com/IppClub/Dora-SSR
- Yuescript语言:https://github.com/pigpigyyy/Yuescript
- 《灵数奇缘》开源游戏项目: https://luv-sense-digital.readthedocs.io