GitHub 上有个挺少见的项目:avoxelgame。它不是用 C++、Rust 或 C# 写体素游戏,而是用 Dyalog APL 20.0 和 SDL3 写了一个 3D 体素游戏引擎雏形。
这事有意思的地方不在“又一个游戏引擎出现了”。它目前约 24 个 stars、1 个 fork,MIT 许可证,主要语言是 APL。这个量级只能说明有人注意到了,不能说明它已经被采用。
我更在意的是另一件事:APL 这种以数组表达见长的小众语言,被放进了游戏循环、输入控制、体素渲染和图形后端适配里。这更像一次语言实验,不像一个准备给团队直接拿去立项的引擎。
它是什么:APL 写出来的体素游戏骨架
avoxelgame 的仓库说明里,项目起点是一个问题:APL 的记法,能不能让制作体素游戏更容易。
这句话基本给项目定了性。它不是在对标 Unity、Unreal Engine 或 Godot,也不是在交付完整编辑器、资产管线和插件生态。它是在试一件偏硬的事:用 APL 把 3D 体素游戏的关键环节跑起来。
从功能看,它已经不只是空仓库。
玩家可以用 W-A-S-D 移动,空格跳跃,鼠标控制视角,Q 退出。它还支持 I 显示渲染信息,F 开启快速 noclip 模式,L 锁定或解锁鼠标,并可用 1-5 选择不同方块进行放置。
对体素游戏来说,这些是最低限度的“能玩起来”。但最低限度不是工程成熟。
| 维度 | 当前信息 | 应该怎么理解 |
|---|---|---|
| 语言与运行时 | Dyalog APL 20.0 | 看点在 APL 表达方式,不在主流引擎工具链 |
| 图形与窗口 | SDL3,并涉及 sdl3_ttf、sdl3_image | 依赖现代多媒体库,但仍要处理底层差异 |
| 图形后端 | Vulkan、DirectX12、Metal | 有跨平台目标,不等于各平台体验一致 |
| 仓库状态 | 约 24 stars、1 fork | 属于小范围技术项目,不能解读为广泛采用 |
| 许可证 | MIT | 方便学习和改造,不代表可直接生产使用 |
APL 爱好者可以把它当作少见样本:看数组语言怎样组织游戏状态、输入和渲染数据。游戏引擎开发者则更适合把它当作对照物:同一类体素问题,换一种语言表达,哪些地方变短,哪些地方会被工程链条拖住。
能跑到什么程度:门槛主要在依赖和平台
从仓库说明看,macOS 和 Linux 用户需要安装依赖、克隆项目,并构建安装 LSE。完成后,本地 libs 目录会生成 libLSE.dylib 或 libLSE.so,再运行 main.apls。
部分 Linux 用户还要手动调整 main.apls 里的 dyalogscript 路径。这已经不是普通玩家会接受的安装方式,更像开发者自己搭实验环境。
Windows 路径更绕。项目建议使用 SDL3 releases 提供的开发库,再配合 cmake-gui 编译。仓库也提供 win32-x64 的 .dlls release,可放到 ./libs 目录。之后还需要在 Dyalog session 中切换目录、链接项目并运行 Play。
这对 APL 玩家或图形程序员不算离谱。可如果一个小团队想找体素引擎做原型,我的建议很直接:不要把它放进主开发链路。最多单独拉一个分支试跑,验证 APL 写法和渲染思路,不要让策划、美术或关卡流程依赖它。
这里的现实约束也不只在安装步骤。
SDL3 可以处理窗口、输入和一部分跨平台抽象,但 Vulkan、DirectX12、Metal 的差异不会自动消失。Shader 编译还会牵涉 DirectX Shader Compiler、glslc 和 spirv-cross。
换句话说,avoxelgame 的“跨平台”更接近目标和实验路线,不是下载后各平台稳定一致的产品体验。
限制在哪里:性能、稳定性和工程成熟度
仓库已经把风险写得很直白:项目高度实验性,而且有 bug。
已知问题里,最要紧的有几项。Windows 上存在明显性能回退。DirectX12 后端当前不支持 Windows。同一个 session 中不能多次游玩,并可能触发 syserror 999。作者还提到可能存在内存泄漏。
这些限制足以把它和“可用引擎”分开。
体素游戏不是只把方块画出来就结束。它要长期处理区块加载、网格生成、遮挡剔除、内存占用和 GPU 提交。成熟项目的难点,往往藏在这些不显眼的地方。
拿它和成熟引擎相比,差距主要不在“有没有创意”,而在工程保障。
| 对比项 | 成熟游戏引擎通常要解决 | avoxelgame 当前更像什么 |
|---|---|---|
| 使用方式 | 下载、建项目、导入资源、调试链路清晰 | 手动配依赖和运行环境 |
| 平台支持 | 尽量保证主要平台体验稳定 | 后端和平台支持仍有明显缺口 |
| 性能表现 | 需要长期优化和可复现测试 | Windows 已知有性能回退 |
| 稳定性 | 能反复运行、调试、迭代 | 多次运行和内存问题仍未稳住 |
| 适用场景 | 产品原型或商业项目 | 技术研究、语言实验、代码围观 |
所以最相关的两类人,动作应该不一样。
APL 爱好者可以下载研究,重点看代码组织和数组表达,不要把期待放在“开箱即玩”。体素渲染开发者可以把它当作参考案例,比较语言表达和图形后端成本。真正要做游戏原型的团队,最好继续用成熟引擎,把 avoxelgame 留在旁路实验里。
接下来也不用看太多虚的指标。最该看三件事:Windows 性能回退有没有缓解,DirectX12 后端能不能真正落到 Windows,内存泄漏和同 session 多次运行问题有没有修掉。
这三项不动,它就还是技术标本。三项开始稳定,才谈得上从语言实验走向可靠原型。
