V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
greenyxblackyx
V2EX  ›  推广

从编译器、游戏引擎到游戏掌机——我是这样做独立游戏的

  •  1
     
  •   greenyxblackyx · 200 天前 · 2064 次点击
    这是一个创建于 200 天前的主题,其中的信息可能已经有所发展或是发生改变。

    引言

      自己开发制作游戏是一个儿时起就有的梦,特别是长时间接触魔兽争霸 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 发行版上进行游戏开发的能力。

    向着自由开放的游戏掌机梦想迈进

    开源开放?软件和硬件全都要!

    开源开放?软件和硬件全都要!

      到此我觉得对游戏开发能力的自由和开放体验的追求还远不到尽头。作为喜好各式掌机的老玩家,在体验了诸多国产开源掌机的商业产品后,我感觉深深的不满足。用掌上游戏机玩游戏目前还是在卷硬件参数和外观设计来提供体验的差别,而我期待的掌机并不只是玩游戏上的体验,还应该是一个可以用来自由的开发、运行甚至发行自制游戏的设备。很多掌机厂商都有自己的商业化模式和获得盈利的闭环,所以不会允许硬件设备获得太多可编程定制的能力。于是和同样对硬件发烧的伙伴一起研究构建完全自由开放的掌机设备。并尽可能提供包括机器的计算核心、外设和外观均可进行模块化的定制和更换的能力(使科技不再以换壳为本)于是又有了“吉祥机”的项目。

    吉祥机 + Dora SSR 游戏引擎

    吉祥机 + Dora SSR 游戏引擎

    不只是掌机和移动编程设备,“吉祥机”也是提供 GPIO + SPI + I2C 接口的外设开发板

    不只是掌机和移动编程设备,“吉祥机”也是提供 GPIO + SPI + I2C 接口的外设开发板

    回到制作游戏的初心

    社区在做的开源独立游戏项目《灵数奇缘》

    社区在做的开源独立游戏项目《灵数奇缘》

      所以折腾了半天我的游戏到底做出来了没有呢?答案当然是做了,但没完全做出来啦。在生成式 AI 大模型进入彻底火爆前夕的 2020 年我们就想象了一个关于未来的 AI 的游戏故事,人的物质需求已经得到完全满足,生下来的目的只剩下了通过进行游戏娱乐,并通过采集过程数据给 AI 生产有创造力和展现智能的训练数据。人生的价值都是由未来的银行通过评估人的游戏活动所创造的智能数据的质量和价值,来进行货币分配而评定的。人类贡献的数据训练出的 AI 会帮助人完成一切的物质生产、到人类个体的养育和社会管理的工作。在这样的背景下,人还会有什么样的故事。最后游戏输出的价值观就是人生来就应该是改造世界的主体,而不是只会适应一切现状的被改造的客体。也呼应了我和我的伙伴们一直在追寻的东西,想要不被与生而来的一切所定义,就去靠自己的主动创造去重新定义一切。

      如果对我们在做的编程语言、游戏引擎、游戏掌机或是游戏项目感兴趣,欢迎 Star 我们的仓库或是进入我们的 Q 群聊聊。目前的项目都还在比较早起的阶段,但是会互相整合和验证迭代,关注我们也可以及时看到项目是怎么做的以及我们的进展。

      最后我们诚挚邀请每一位对游戏开发有热情的朋友加入我们,无论是贡献代码、提供意见还是分享我们的项目,您的每一份努力都能帮助我们共同实现游戏开发自由的梦想。

    项目地址

      游戏开发及掌机交流 Q 群:512620381

    15 条回复    2024-05-06 13:36:23 +08:00
    wangshushu
        1
    wangshushu  
       200 天前
    很棒啊,支持
    Vindroid
        2
    Vindroid  
       200 天前
    在手游还不成熟的年代,UE 、Unity 还高攀不起,只有用 cocos 、libgdx 来开发 2D 手游,脚手架全要自己搭或群里求共享。现在回看以前,那个游戏群里搞独立游戏开发的一个都不剩了。
    还记得群里某人被出版社邀请出了本 libgdx 开发指南的书,还是国内第一本 libgdx 的书,书里好多组件都是群里老大哥们开源出来的。可惜的是手游 2D 开发的热档期太短了,没两年就全去研究 3D 了,libgdx 的 2D 引擎也是刚完善,组件还没多少,也被逼着去搞 3D ,导致有些四不像
    digd
        3
    digd  
       200 天前
    看这个吉祥机的硬件外观设计不错!如果能内装 windows 跑起来就好了,哪怕是 Core M3
    greenyxblackyx
        4
    greenyxblackyx  
    OP
       200 天前
    @Vindroid 我也是从 cocos 、libgdx 时代开始学游戏开发的,如果那个快速发展的年代大家能更在意游戏软件的开源,为这个行业能有更多的开源积累就好了,后来的开发者会更有机会做出更好的作品。行业现在也许有可能不用走不可逆的重资本化的这条路。
    greenyxblackyx
        5
    greenyxblackyx  
    OP
       200 天前
    @digd 有几款 x86 的支持 Windows 的核心板评估了是有可能在机器上跑的。目前已经跑起来了 ARM 架构的国产芯片 rk3568 ,RISCV 架构不要贵得太离谱的核心板也会去看看。
    mayli
        6
    mayli  
       200 天前
    你这外观像极了我之前用过的一款手机,不过再加一个游戏键盘。
    greenyxblackyx
        7
    greenyxblackyx  
    OP
       200 天前
    @mayli 黑莓老粉+玩游戏不如做游戏的需求和愿望下设计的外观啦。
    monkeyWie
        8
    monkeyWie  
       200 天前
    支持支持,但是 github 上的 discord 链接失效了,需要更新下
    greenyxblackyx
        9
    greenyxblackyx  
    OP
       200 天前
    @monkeyWie 不好意思,社区才开始建设,discord 还没好好用起来。新的邀请链接在这里( https://discord.gg/ZfNBSKXnf9 ),可以优先到 Q 群里来玩。
    monkeyWie
        10
    monkeyWie  
       200 天前
    @greenyxblackyx #9 好的,看起来很心动,如果有机会的话我也想在上面开发个小游戏玩玩,哈哈
    smallboy19991231
        11
    smallboy19991231  
       200 天前
    你的圖片不錯,美術風格不錯加上你的程序技術
    greenyxblackyx
        12
    greenyxblackyx  
    OP
       200 天前
    @monkeyWie 新上手可以优先考虑试试最易上手的 TSX ( https://zhuanlan.zhihu.com/p/694688219 )或者 Rust (如果是 Rust 的玩家的话,https://zhuanlan.zhihu.com/p/692612521 ),熟悉 Lua 上手就更没有困难啦。
    workerddd
        13
    workerddd  
       200 天前
    这是要在掌机上面编程,写代码?何必呢,太技术宅了,看不到市场需求在哪里。
    greenyxblackyx
        14
    greenyxblackyx  
    OP
       200 天前
    @workerddd 其实我们的开源游戏引擎的正确玩法是把 App 形式的开发环境安装到手机或者其它移动设备上,然后通过 PC 浏览器访问开发界面做开发,直接在游戏掌机上就开发游戏属于意外解锁的硬核玩法啦。
    zzzlight
        15
    zzzlight  
       200 天前
    厉害的 !
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2926 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:08 · PVG 19:08 · LAX 03:08 · JFK 06:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.