丰富的视觉效果
水面反射与折射、视差贴图(parallax mapping)、眩光(glare)、粒子效果、光照贴图(lightmaps)、GPU 骨骼动画等。
BananaBread · kripken/BananaBread
BananaBread 是用 Emscripten 将 C++ 与 OpenGL 编写的 Cube 2(Sauerbraten)3D 游戏引擎及第一人称射击游戏移植到 Web 的项目,通过 JavaScript、WebGL 与 HTML 在浏览器中运行,无需插件。README 说明其特性包括水面反射与折射、视差...
BananaBread 是把 Cube 2 / Sauerbraten 这套 C++ 与 OpenGL 编写的 3D 游戏引擎及第一人称射击游戏移植到 Web 平台的工程。它借助 Emscripten 将原本的 C++ 与 OpenGL 代码编译为 JavaScript 与 WebGL,使一个完整的第一人称射击游戏能够仅依赖标准 Web API、无需任何浏览器插件即可运行。
Cube 2 本身是一个紧凑而高效的 3D 引擎,BananaBread 的目标就是把这套引擎的能力原样搬到浏览器里。README 同时给出了明确的现状说明:项目已不再活跃开发,延续工作由分支 cfoust/sour 接手,该分支增加了多人服务器支持、把引擎升级到最新版本的 Sauerbraten,并支持游戏的全部地图。
水面反射与折射、视差贴图(parallax mapping)、眩光(glare)、粒子效果、光照贴图(lightmaps)、GPU 骨骼动画等。
构建依赖 Emscripten 及其相关依赖,README 建议先按 Emscripten 官方教程确认环境配置正确。
cube2/src/web 目录执行 emmake make client -j8。cube2/src/native 目录执行 make。cube2/ 下的 bb.html 查看输出。needed.txt 中列出了一些可能有助于打包产物的脚本。本地运行方式:在 cube2/ 目录执行 python -m SimpleHTTPServer 8888,然后在浏览器中访问 localhost:8888。
README 还提供了在线演示链接,并提示该演示需要浏览器支持 WebAssembly。
调试方面,在关卡 URL 后追加 ,debug,页面会改用 bb.debug.js 而非 bb.js。调试构建未经过 Closure Compiler 处理,可读性更好,便于查看堆栈信息与做性能分析。
若想使用自制地图或对美术资源做其他修改与补充,README 指向项目 Wiki 中的 Modding 页面。
代码采用 zlib 许可证,与 Sauerbraten 一致,版权归 Sauerbraten 作者(2001-2012)与 BananaBread 作者(Alon Zakai、Gregor Koch、Bobby Richter)所有。
美术内容(关卡/地图、角色模型等)采用 CC-BY 或 CC-BY-SA 许可,可用于包括商业项目在内的用途;若某目录没有单独的许可证文件,则该内容是为本项目新创作的美术资源,采用 CC-BY 3.0,版权归 Mozilla Foundation 所有。
这个项目更适合作为「把原生 C++/OpenGL 游戏引擎搬上 Web」的技术案例来阅读:可以关注 Emscripten 的编译流程、WebGL 渲染路径与原生构建的差异,以及 README 中明确标注的「已启用 / 尚未启用」特性边界。由于项目已停止活跃开发,若关注多人联机与最新版 Sauerbraten 支持,应转向 README 指出的 cfoust/sour 分支。
Frogatto & Friends 是一款 2D 横版动作冒险游戏,主角是一只青蛙;开发团队...
jfduke3d 是 JonoF 对 3D Realms《Duke Nukem 3D》的源码移植,基于其 Build...
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...