本页目录

AAAAXY:非欧几里得空间中的 2D 解谜平台跳跃游戏

aaaaxy · divVerent/aaaaxy

AAAAXY 是一款用 Go 编写的非线性 2D 解谜平台跳跃游戏,场景设定在“不可能空间”里,主题涉及非欧几里得几何。玩家可以自行设定目标,探索会得到回报,途中藏有秘密。README 称新玩家通关约需 4 至 6 小时,完整速通约 1 小时,最快约 15...

动作游戏 射击 自研引擎 C++ 角色控制 敌人 AI 物理系统 地图编辑器 高级
★ Stars 1,449 Forks 375 License Apache-2.0 更新 2026-10-24

国内开发环境适配

Windows
未知
Linux
官方声明支持
macOS
未知
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
Emscripten 工具链需要下载较大的 LLVM/二进制依赖,国内安装可能较慢,建议配置镜像或代理;README 提供的在线演示托管在 GitHub Pages,国内访问可能不稳定,可本地起 HTTP 服务自建运行。原生构建与运行细节待核验。

中文项目介绍

BananaBread 是 Cube 2 / Sauerbraten 这套紧凑型 3D 游戏引擎与第一人称射击游戏向 Web 平台的移植工程。它并不是为网页重新写一个简化版射击小游戏,而是把原本用 C++ 与 OpenGL 写成的完整引擎连同关卡、角色模型、游戏逻辑一并搬到浏览器里,依靠 JavaScript、WebGL 与 HTML 这些标准 Web API 运行,不需要安装任何插件。项目由 Alon Zakai、Gregor Koch、Bobby Richter 等人完成,其中 Alon Zakai 正是 Emscripten 的作者,因此这个项目同时也是 Emscripten 早期最重要的“大型真实项目”验证案例之一。

在可玩内容与视觉表现上,README 列出的特性相当完整:水面反射与折射、视差贴图(parallax mapping)、眩光(glare)、粒子效果、光照贴图(lightmaps)、以及在 GPU 上执行的骨骼动画等。物理部分被描述为精简且快速的系统,并包含布娃娃(ragdoll)物理;游戏内还带有可调节技能等级的 Bot AI,让单人模式具备对手。引擎同时集成了内置的关卡编辑器,这是 Cube 2 系列一贯的特色——玩家可以在游戏里直接改造地图。README 也明确说明,原版引擎还有若干功能尚未在 Web 版本中启用,包括多人联机、多人协同编辑与阴影贴图(shadowmapping),这些属于“计划中”而非现成能力。

技术实现路径是理解这个项目的关键。整个代码库的核心是把 C++ 与 OpenGL 通过 Emscripten 编译为 JavaScript 与 WebGL,产物是一个可以在浏览器里加载的 bb.js(配合 HTML 页面)以及游戏数据。构建时需要在 cube2/src/web 目录下执行 emmake make client -j8 得到 Web 版本;如果只想在本地跑原生版本,也可以在 cube2/src/native 目录下执行 make,得到 Linux 原生可执行文件。构建完成后通过 cube2/ 目录下的 bb.html 查看输出。本地运行官方给出的做法是在 cube2/ 目录启动 python -m SimpleHTTPServer 8888,然后浏览器访问 localhost:8888。README 还提示 needed.txt 中收录了一些可能有助于打包产物的脚本。

核心功能

核心特性

调试方面有一个实用设计:在关卡 URL 后追加 ,debug,页面会改用 bb.debug.js 而非 bb.js。调试版本没有经过 Closure Compiler 压缩,可读性更好,适合查看堆栈信息和做性能剖析。README 同时提供了在线演示地址,但特别注明该演示需要浏览器支持 WebAssembly,因此在较旧的浏览器或受限环境中可能无法运行。

需要特别注意的是项目状态。README 开篇即声明 BananaBread 已不再活跃开发,延续这一方向的工作由 cfoust/sour 这个分支接手;该分支在原有基础上增加了多人服务器支持、把引擎升级到最新版本的 Sauerbraten,并支持游戏的全部地图。也就是说,如果目标是研究当代的实现或想要联机对战,应当去看那个分支,而本仓库更适合作为历史节点与技术样本阅读。想修改地图或替换美术资源,README 指向 wiki 中的 Modding 页面;常见问题则指向 wiki 的 FAQ 页面。

许可证方面,代码沿用与 Sauerbraten 相同的 zlib 许可,版权归属 2001–2012 年的 Sauerbraten 作者以及 BananaBread 作者,允许商用与自由修改再分发,但要求不得歪曲软件来源、修改版必须明确标注、且不得移除许可声明。美术内容(关卡地图、角色模型等)采用 CC-BY 或 CC-BY-SA,意味着也可以用于包括商业项目在内的自己的作品中;若某个目录没有单独的许可文件,则该部分是为本项目新创作、采用 CC-BY 3.0 且版权由 Mozilla 基金会持有的资源。

技术架构分析

技术要点

适合学习的地方主要集中在“如何把一整个 C++/OpenGL 引擎搬上 Web”这条链路上:Emscripten 工具链的使用与产物打包、WebGL 下的渲染管线与各类特效实现、GPU 骨骼动画与粒子系统在浏览器中的落地、物理与布娃娃系统的组织方式、以及内置编辑器如何与运行时共存。相应的门槛也不低:需要一定的 C++ 与图形学基础,构建工具链较重,且项目本身已停止维护,遇到问题时社区支持有限。国内环境下 Emscripten 及其依赖的下载、在线演示所在的 GitHub Pages 访问是否顺畅,需以实际网络情况为准(待核验)。

开源许可证与版权说明

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

相似项目