本页目录

Gladiator 3D —— JavaScript 光线投射伪 3D 引擎

gladiator_3d · krotik/gladiator_3d

Gladiator 3D 是一个用 JavaScript 编写的 ray casting(光线投射)引擎,用于制作伪 3D 游戏。它不依赖任何第三方库,可搭配或不搭配 Prototype、jQuery 使用,面向支持 canvas 元素的现代浏览器。仓库 examples 目录包含一个演示基础概...

动作游戏 平台跳跃 多人对战 SDL 自研引擎 C++ 角色控制 跳跃与重力 碰撞检测 敌人 AI 高级
★ Stars 226 Forks 48 License MIT 更新 2026-11-02

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:SDL 暂无中文教程标记 未标记站长实测
国内从 GitLab 克隆可能较慢,可尝试镜像或代理;构建需准备 SDL2、SDL2_image、SDL2_mixer、SDL2_ttf、Curl、Zlib 等依赖,建议使用系统包管理器安装。在线商店下载游戏数据可能受网络影响,待核验。

中文项目介绍

Commander Genius 是一个面向现代操作系统的开源解释器/复刻引擎,目标是在不依赖 DOS 模拟器的前提下,原生运行《指挥官基恩》(Commander Keen)系列与《Cosmos Cosmic Adventure》。根据 README,它完整支持 Commander Keen 1–6 以及 Keen Dreams,并已把 Cosmos Cosmic Adventure: Forbidden Planet 的引擎整合进来;后者目前“可玩”,关卡与敌人已能工作,但仍有不少待完善之处。

需要特别说明的是:游玩原作需要你自备原版游戏数据文件。项目方提供了一个在线商店,可获取部分作品(如 Keen 1、4、Dreams 与 Cosmos 1),也支持直接下载部分 Mod。你当然也可以继续使用手头旧的 DOS 原版数据。

本仓库是 GitHub 镜像,主开发仓库位于 GitLab。项目以 GPL 协议分发,允许自由分发与修改,但要求保留原作者署名。

核心功能

核心特性

README 将“尽可能还原原作手感,并在此基础上扩展”作为主要目标,列出的特性包括:

  • 使用 Lua 的 Mod 支持,并附带一些扩展能力;
  • OpenGL 加速;
  • SDL 2.0 支持(同时保留 SDL 1.2 支持,但已标记为逐步弃用);
  • 新的图形效果;
  • 最多四人的多人支持;
  • 高质量包(High Quality Packs),用于改善画面、音效,甚至提供原作中你可能从未听过的音乐;
  • 为 Vorticons 系作品提供游戏内菜单与新的 HUD;
  • 具名存档槽;
  • 不受限制的手柄支持;
  • 以及更多未在 README 中逐条展开的改进。

README 也坦率指出,Keen 1–6 与 Dreams 已获完整支持,但仍有少量小功能缺失(例如 PaddleWar),整体玩法是完整的。

技术架构分析

构建与依赖

从源码构建时,README 建议使用支持至少 C++14 与 C99 的 GNU 编译器或 Clang。依赖包括 SDL2、SDL2_Image、SDL2_mixer 与 SDL2_TTF;SDL 1.2 仍有支持但将移除。要完整使用 CG 提供的游戏商店,还需要 Curl 与 Zlib。README 还包含生成 SBOM、构建 Cosmos 引擎以及启动游戏、多人游戏提示等章节,具体命令请以仓库内文档为准。

补充说明

设计理念与定位

项目把自身定位为“在现代硬件上解释这些老游戏”的平台型基础,而不是追求逐帧、逐硬件细节的绝对原味复刻。README 明确表示:物理手感接近原作,但资深玩家可能察觉细节差异;由于图形帧率更高,整体节奏可能显得更快。如果你追求“原汁原味”甚至包括当年的硬件限制与掉帧,作者建议使用 DOSBox;同理,部分 Mod 可能也只能在 DOSBox 下运行。

与 DOSBox 的关键区别在于:Commander Genius 是原生移植,不进行模拟。它希望利用现代硬件带来更丰富的色彩、修复原作的一些问题,例如为 Vorticons 系作品提供双键射击选项,并允许把所有按键映射到任意输入设备,鼠标也能在一定程度上使用。

对于 Mod 作者,README 建议使用 CG 的 Lua 脚本与补丁系统,而不是依赖晦涩的机器码补丁,以提高开发效率。

历史沿革

最初的引擎是开发者 Caitlin Shaw 的 CloneKeen。由于该引擎基本处于弃置状态,Gerstrong 接手并创建了分支 CloneKeenPlus,修复了 CloneKeen 的一些问题;该分支源自 0.83 版本。之后 Commander Genius 诞生,它用 C++ 对引擎进行了完整重写,从 C 转向以面向对象为主的 C++ 代码。据 README 说明,最终仅保留了原 CloneKeen 代码的很小一部分(约 0.02%)。项目也提到从 Refkeen、Chocolate Keen 等同类引擎中学习并尝试改进整体体验。

平台支持与获取方式

README 写明 Commander Genius 可运行于 Linux/X11/Wayland、Windows、macOS、Android 与 Switch,并存在一些非官方移植。若你有意移植,可联系项目方获取帮助。

安装与启动方面:下载、安装并启动后,在游戏启动器中点击“New Stuff”并选择游戏,程序会开始下载,完成后即可游玩。Ubuntu 用户可使用项目提供的 PPA(ppa:gerstrong/cgenius)以持续获得更新;Mageia 与 Arch Linux 也有第三方维护的软件包。Windows 方面,README 表示支持 Windows 7 至 10,部分系统可能需要安装 Microsoft Visual Studio Redistributable 2015 (x86)。macOS 的近期 dmg 为 64 位版本,需先安装 MacPorts,再通过 ports 安装 SDL2 相关依赖。

学习建议

这个项目适合想了解“如何用现代 C++ 与 SDL2 重写并扩展经典 DOS 平台游戏”的读者。建议先从数据目录与启动流程入手,理解游戏数据如何被识别与加载;再阅读 Lua Mod 与补丁系统相关部分,观察引擎如何在不改动机器码的前提下扩展内容;最后结合多人支持与 OpenGL 渲染部分,理解原生移植与模拟器路线的取舍。由于主仓库在 GitLab,获取最新代码与参与讨论应优先前往 GitLab。

开源许可证与版权说明

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

相似项目