Case study

OpenRW: an open re-implementation of the Grand Theft Auto III engine

Re-implements Rockstar Games’ Grand Theft Auto III (2001) as a cross-platform C++ engine that runs on the data of a legitimate PC copy. It has its own loaders for the game’s RenderWare models, textures and archives, a script machine for the original mission scripts, and an optional Qt data viewer. Playability is partial: the project’s mission tracker marks six early Portland story missions as completable.

Requirements and limitations

  • The reviewed main snapshot dates from 2025-06-18; the repository has no tagged releases and the wiki says there are no official builds, so OpenRW is built from source. The playable-missions tracker (issue #52, last updated 2024-07-24) checks six story missions, all in Portland, and notes missing AI, broken cutscenes or unimplemented opcodes for many others; the FAQ says Vice City and San Andreas are not supported yet. The reviewed sources do not describe how the original executable was analysed.
  • README requires a legitimate copy of the original PC game, and the FAQ says the original assets cannot be distributed; the repository contains no game data. rwgame reads the game directory set in its openrw.ini configuration file, and the optional rwviewer opens objects and models from the same data.
  • Builds use CMake 3.8+ and a C++17 compiler against Boost (program_options and system, plus unit_test_framework for tests), OpenAL, Bullet, GLM, FFmpeg, SDL2 and OpenGL, with FreeType for the tools and Qt 5 for the viewer; Conan is an optional package manager. The FAQ names C++17 and OpenGL 3.3 Core as hard requirements, and README reports ports to Linux, macOS, Windows and several BSDs.
  • GitHub Actions jobs on Arch Linux, Fedora and Ubuntu and an AppVeyor Visual Studio 2017 job run a CTest script that builds the code and its Boost.Test unit suite; tests that need game data sit behind the TEST_DATA option, which that script does not enable. No comparison with the original executable is published, and this collection did not build or run OpenRW.
  • README applies GPL-3.0-or-later and lists FFmpeg (LGPL-2.1 or later), Bullet and SDL 2.0 (zlib) as third-party licences; the microprofile and imgui submodules are separate projects, and the game’s own assets keep their rights. The reviewed sources establish no REA or AI use.

About this entry

Type
Case study
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Targets
Game

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Primary sources

  1. README.md GitHub · rwengine/openrw · Revision 5c5f266
  2. CMakeLists.txt GitHub · rwengine/openrw · Revision 5c5f266
  3. cmake_options.cmake GitHub · rwengine/openrw · Revision 5c5f266
  4. cmake_configure.cmake GitHub · rwengine/openrw · Revision 5c5f266
  5. conanfile.py GitHub · rwengine/openrw · Revision 5c5f266
  6. .gitmodules GitHub · rwengine/openrw · Revision 5c5f266
  7. rwcore/loaders GitHub · rwengine/openrw · Revision 5c5f266
  8. rwengine/src/script GitHub · rwengine/openrw · Revision 5c5f266
  9. tests/CMakeLists.txt GitHub · rwengine/openrw · Revision 5c5f266
  10. .github/workflows/build-and-test.yml GitHub · rwengine/openrw · Revision 5c5f266
  11. .appveyor.yml GitHub · rwengine/openrw · Revision 5c5f266
  12. cmake/ctest/build.ctest GitHub · rwengine/openrw · Revision 5c5f266
  13. COPYING GitHub · rwengine/openrw · Revision 5c5f266
  14. https://github.com/rwengine/openrw/issues/52
  15. https://github.com/rwengine/openrw/wiki/FAQ
  16. https://github.com/rwengine/openrw/wiki/Getting-Started
  17. https://github.com/rwengine/openrw/wiki/Configuration