# Jazz² Resurrection：《爵士兔 2》的原生 C++ 重新实现

> 以原生 C++ 在深度修改的 nCine 引擎上重新实现《爵士兔 2》（Jazz Jackrabbit 2，1998），首次启动时把使用者的原版游戏文件转换为自己的缓存。它可在桌面、移动设备、网页和众多自制软件主机平台上运行，支持多人游戏、增强的 Reforged 模式，并部分支持 JJ2+ 与 MLLE。项目用一个双向轨迹探针把非 Reforged 模式的移动与原版游戏对照，报告 406 个场景中有 376 个误差在 25 px/s 以内。

- 类型：案例
- 目标：游戏
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-19
- 收录于：2026-10-30
- 原始资源：<https://github.com/deathkiller/jazz2-native>
- 一手来源：<https://github.com/deathkiller/jazz2-native/blob/c18381c246271d76c70af723a8ab5615028e3c6c/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/jazz2-resurrection-engine-case/>
- 记录 JSON：<https://awesomerea.org/resources/jazz2-resurrection-engine-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/jazz2-resurrection-engine-case/index.md)

## 使用条件与局限

- 审阅版本为 2026-10-17 的 master 提交，紧随同日发布、重做了物理系统的 3.9.0 版；发布包放在较早的 deathkiller/jazz2 仓库中。README 列出支持的版本为 Shareware Demo、Holiday Hare ’98、The Secret Files 和 Christmas Chronicles，并部分支持 JJ2+ 与 MLLE 功能；Nintendo 64、Dreamcast、Wii、GameCube 和 PlayStation 3 移植版标注为尚未在实机上测试。README 称游戏以 C++ 完全重写，没有提到反编译原版可执行文件；非 Reforged 模式的移动常量来自对原版游戏的测量。
- 所有版本都需要把使用者原版 Jazz Jackrabbit 2 目录的内容（零售版或 Shareware Demo）放入 Source 文件夹，首次启动时转换为缓存。在 Nintendo 64、Dreamcast、PlayStation 2、GameCube 和 3DS 上，内容必须先用项目的 AssetPacker 转换，README 说明由此生成的镜像不能分发。仓库的 Content 目录存放游戏自有的字体、额外动画、元数据和翻译；Windows 3.9.0 发布包包含该目录和一个空的 Source 占位文件夹，README 称 Docker 服务器镜像从不包含原版文件。
- README 介绍了 Windows、Linux、macOS、iOS、Android、Nintendo Switch、网页（Emscripten）、libretro 核心、Xbox（UWP）、AmigaOS 3.x、AmigaOS 4.1 与 MorphOS，以及 Nintendo 64、Dreamcast、Wii、GameCube、3DS、PSP、PS2、PS3 和 Vita 版本，另有 Docker 专用服务器；桌面版需要支持 OpenGL 3.3 或 OpenGL ES 3.0 的显卡。构建使用 CMake 3.15+，默认下载预编译的依赖库，也可改用系统库。主机版使用各自的自制软件 SDK 与工具链文件，其中几个主机平台需要自定义固件。
- Linux 和 Windows 工作流只构建和打包，不运行测试套件。可选的物理探针（WITH_PHYSICS_PROBE）在本引擎和装有 JJ2+ 的原版游戏中执行相同的脚本化场景，并按 tick 逐一记录位置与速度；仓库提交的轨迹和对比脚本可在没有原版游戏的情况下检查改动。对于 144 FPS 的引擎采集，Results/README.md 报告速度分布误差中位数为 0.1 px/s，406 个场景中有 376 个在 25 px/s 以内，397 个场景中有 70 个的动画片段数相差超过 25%。这些是项目报告的数据。
- LICENSE 为 GPL-3.0；Docs/ThirdParty.dox 列出了各第三方组件及其许可证，其中包括部分 nCine 代码（MIT）。Jazz Jackrabbit 2 及其数据仍归权利人所有。

## 一手来源

1. <https://github.com/deathkiller/jazz2-native/blob/c18381c246271d76c70af723a8ab5615028e3c6c/README.md>
2. <https://github.com/deathkiller/jazz2-native/blob/c18381c246271d76c70af723a8ab5615028e3c6c/LICENSE>
3. <https://github.com/deathkiller/jazz2-native/blob/c18381c246271d76c70af723a8ab5615028e3c6c/CMakeLists.txt>
4. <https://github.com/deathkiller/jazz2-native/blob/c18381c246271d76c70af723a8ab5615028e3c6c/Docs/ThirdParty.dox>
5. <https://github.com/deathkiller/jazz2-native/blob/c18381c246271d76c70af723a8ab5615028e3c6c/Docs/AssetPacker.dox>
6. <https://github.com/deathkiller/jazz2-native/blob/c18381c246271d76c70af723a8ab5615028e3c6c/Docs/Consoles.dox>
7. <https://github.com/deathkiller/jazz2-native/blob/c18381c246271d76c70af723a8ab5615028e3c6c/Docs/MovementAccuracyReference.dox>
8. <https://github.com/deathkiller/jazz2-native/blob/c18381c246271d76c70af723a8ab5615028e3c6c/Sources/Jazz2/Tests/README.md>
9. <https://github.com/deathkiller/jazz2-native/blob/c18381c246271d76c70af723a8ab5615028e3c6c/Sources/Jazz2/Tests/Results/README.md>
10. <https://github.com/deathkiller/jazz2-native/tree/c18381c246271d76c70af723a8ab5615028e3c6c/Content>
11. <https://github.com/deathkiller/jazz2-native/blob/c18381c246271d76c70af723a8ab5615028e3c6c/.github/workflows/linux.yml>
12. <https://github.com/deathkiller/jazz2-native/blob/c18381c246271d76c70af723a8ab5615028e3c6c/.github/workflows/windows.yml>
13. <https://github.com/deathkiller/jazz2/releases/tag/3.9.0>

## 同分区更多条目：游戏

- [Kinoko：为精确回放幽灵记录而重新实现 Mario Kart Wii 物理引擎](https://awesomerea.org/zh/resources/kinoko-mkwii-physics-reimplementation-case/index.md) · 案例
- [LBA2 Remake：以 TypeScript 和 Three.js 重新实现 Little Big Adventure 1 与 2](https://awesomerea.org/zh/resources/lba2remake-little-big-adventure-case/index.md) · 案例
- [Legend of Legaia：Rust 移植与本地读盘的浏览器工具](https://awesomerea.org/zh/resources/legend-of-legaia-rust-port-case/index.md) · 案例
- [libd2：《暗黑破坏神II》1.14d 引擎组件库](https://awesomerea.org/zh/resources/libd2-engine-core-reconstruction-case/index.md) · 案例
- [librw：RenderWare Graphics 引擎的重新实现](https://awesomerea.org/zh/resources/librw-renderware-reimplementation-case/index.md) · 案例
- [MechRewired：基于原版数据重建 MechWarrior 2](https://awesomerea.org/zh/resources/mechrewired-mechwarrior-2-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
