案例
OpenRW:《侠盗猎车手 III》引擎的开源重新实现
以跨平台 C++ 引擎重新实现 Rockstar Games 的《侠盗猎车手 III》(2001),在正版 PC 游戏的数据上运行。项目自行实现了游戏 RenderWare 模型、纹理和归档的加载器,提供执行原版任务脚本的脚本机,并附带可选的 Qt 数据查看器。可玩程度有限:项目的任务追踪清单只将波特兰的六个早期剧情任务标为可完成。
使用条件与局限
- 所审阅的 main 快照日期为 2025-06-18;仓库没有带标签的发行版,wiki 也说明没有官方构建,因此需从源码构建 OpenRW。可玩任务追踪清单(issue #52,最后更新于 2024-07-24)勾选了六个剧情任务,全部位于波特兰,其余许多任务标注了缺少 AI、过场动画异常或操作码未实现等问题;FAQ 说明尚不支持《罪恶都市》和《圣安地列斯》。所审来源未说明如何分析原版可执行文件。
- README 要求使用原版 PC 游戏的正版副本,FAQ 说明项目不能分发原版素材;仓库不含任何游戏数据。rwgame 读取其 openrw.ini 配置文件中设定的游戏目录,可选的 rwviewer 也从同一份数据中打开物体和模型。
- 需使用 CMake 3.8+ 与 C++17 编译器构建,依赖 Boost(program_options 与 system,测试另需 unit_test_framework)、OpenAL、Bullet、GLM、FFmpeg、SDL2 和 OpenGL;工具需要 FreeType,查看器需要 Qt 5,Conan 为可选的包管理器。FAQ 将 C++17 和 OpenGL 3.3 Core 列为硬性要求,README 称已移植到 Linux、macOS、Windows 及多种 BSD。
- Arch Linux、Fedora、Ubuntu 上的 GitHub Actions 任务和一个 AppVeyor Visual Studio 2017 任务运行 CTest 脚本,构建代码及其 Boost.Test 单元测试套件;需要游戏数据的测试受 TEST_DATA 选项控制,而该脚本并未启用。项目未公布与原版可执行文件的对比,本合集也未构建或运行 OpenRW。
- README 声明采用 GPL-3.0-or-later,并列出 FFmpeg(LGPL-2.1 或更高版本)、Bullet 和 SDL 2.0(zlib)等第三方许可;microprofile 与 imgui 子模块是独立项目,游戏本身的素材保留各自权利。所审来源未确立 REA 或 AI 使用。
关于此条目
- 类型
- 案例
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 目标
- 游戏
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · rwengine/openrw · 修订 5c5f266
- CMakeLists.txt GitHub · rwengine/openrw · 修订 5c5f266
- cmake_options.cmake GitHub · rwengine/openrw · 修订 5c5f266
- cmake_configure.cmake GitHub · rwengine/openrw · 修订 5c5f266
- conanfile.py GitHub · rwengine/openrw · 修订 5c5f266
- .gitmodules GitHub · rwengine/openrw · 修订 5c5f266
- rwcore/loaders GitHub · rwengine/openrw · 修订 5c5f266
- rwengine/src/script GitHub · rwengine/openrw · 修订 5c5f266
- tests/CMakeLists.txt GitHub · rwengine/openrw · 修订 5c5f266
- .github/workflows/build-and-test.yml GitHub · rwengine/openrw · 修订 5c5f266
- .appveyor.yml GitHub · rwengine/openrw · 修订 5c5f266
- cmake/ctest/build.ctest GitHub · rwengine/openrw · 修订 5c5f266
- COPYING GitHub · rwengine/openrw · 修订 5c5f266
- https://github.com/rwengine/openrw/issues/52
- https://github.com/rwengine/openrw/wiki/FAQ
- https://github.com/rwengine/openrw/wiki/Getting-Started
- https://github.com/rwengine/openrw/wiki/Configuration