本页目录

Estella 2D/3D 游戏引擎(TypeScript + C++/WebAssembly)

estella · esengine/estella

Estella 是一款开源 2D/3D 游戏引擎,提供 TypeScript SDK、C++/WebAssembly 核心与可视化编辑器,目标是把同一个项目发布到 Web、桌面、微信小游戏、试玩广告以及原生 Android / iOS。仓库主题涵盖 ECS、游戏编辑器与多平台构建。注意:...

沙盒生存 其他 MonoGame 自研引擎 C# 程序化生成 游戏状态管理 渲染技术 高级
★ Stars 169 Forks 44 License Apache-2.0 更新 2026-08-19

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:MonoGame 暂无中文教程标记 未标记站长实测
README 未提供国内镜像或依赖源说明;MonoGame/.NET 依赖下载可能受网络影响,具体待核验。

中文项目介绍

voxeliq 是一个用 C# 编写的开源方块(体素)游戏引擎实现,以 XNA 或 MonoGame 作为底层基础。项目可以用 Microsoft .NET 或 Mono 编译,因此理论上可以运行在 Windows、macOS 与 Linux 上。README 中明确说明,作者希望打造一款开源、100% 可模组化(moddable)的方块游戏,并让它运行在任何 Mono 能够支持的平台上。

需要先说明的是:项目目前仍处于开发阶段,距离“完整”还有相当距离。README 也直言欢迎社区贡献。仓库中最后可运行的版本位于 contrib/old-codebase 目录,新版代码正在从头重写。

技术架构分析

技术要点

  • 语言:C#。
  • 底层框架:旧版本基于 XNA 或 MonoGame;新版本仅使用 MonoGame。
  • 编译工具链:Microsoft .NET 或 Mono。
  • 平台:README 声明可运行于 Windows、macOS 与 Linux(依托 Mono 的跨平台能力)。
  • 项目性质:方块/体素游戏引擎实现,目标为可模组化的方块游戏。

构建与运行

README 没有给出逐步的构建命令,只说明了编译工具链与代码位置。根据可核验信息,合理的路径是:

  1. 准备 .NET 或 Mono 编译环境。
  2. 若想运行可工作的版本,查看 contrib/old-codebase 目录下的工程。
  3. 新版代码使用 MonoGame,需要相应的 MonoGame 依赖。

具体构建步骤、依赖版本与运行参数,README 未作说明,建议结合仓库内工程文件与 wiki 进一步确认。

补充说明

代码现状

README 的「Code」一节给出了最关键的提示:

  • 最后一个可工作的版本保存在 contrib/old-codebase 分支目录中。
  • 当前主线(develop)是重写中的新代码,并不等同于可直接游玩的成品。

因此,如果你只是想编译并跑起来看看效果,应优先查看 contrib/old-codebase;如果你想了解项目的新架构方向,则关注重写后的代码。

为什么做这个项目

「Why?」一节说明了项目动机:作者希望开发一个开源、100% 可模组化的方块游戏,并且能运行在任何 Mono 支持的平台上。README 同时坦承项目离完成还很远,并明确欢迎贡献者加入。

这里的“可模组化”是项目目标而非已完成的承诺,README 没有展开具体的模组 API 或插件机制细节,读者不应据此推断已有成熟的模组系统。

重写与取舍

「Retake?」一节是理解项目现状的关键:

  • 项目最初以 hack & slash 的方式起步,规模在无意中膨胀。
  • 旧代码可维护性较差,并且存在 bug,README 特别提到著名的“meshing bug”(网格构建问题)。
  • 团队决定从头重写,要求新代码带有清晰的注释,并为所有主要功能编写测试。
  • 新版本放弃对 XNA 的支持,只使用 MonoGame,原因是同时维护所有平台相当困难。
  • 旧代码保留在 contrib/old-codebase 中。

这段说明也解释了为什么仓库同时存在“旧的可运行版本”和“重写中的新版本”两种状态。

参与前先读文档

「Stay awhile and listen」一节提醒参与者:在提问之前,先阅读 FAQ 与 wiki。README 中给出的链接指向 raistlinthewiz 名下的 wiki 页面。对于想上手或想贡献的开发者,这是了解项目约定与常见问题的入口。

截图

README 末尾附有两张来自 indiedb 的客户端截图(文件名带有 2012 年的时间戳),可用于直观了解旧版本客户端的画面风格。截图仅作展示,不代表当前重写版本的画面。

学习建议

这个项目更适合作为“体素引擎实现”与“项目重写取舍”的阅读材料:

  • 可以对比 contrib/old-codebase 与重写代码,观察作者如何重构与补测试。
  • 关注 README 提到的 meshing 问题,理解体素渲染中网格构建的难点。
  • 注意项目从 XNA 迁移到 MonoGame 的原因,对跨平台 C# 游戏开发有参考价值。

由于项目尚未完成,不建议把它当作开箱即用的完整游戏来评估。

开源许可证与版权说明

许可证标识:Apache-2.0。源码、资源与依赖许可可能不同,请以官方仓库为准。本站仅做索引,不托管源码。

相似项目