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
- README.md GitHub · rwengine/openrw · Revision 5c5f266
- CMakeLists.txt GitHub · rwengine/openrw · Revision 5c5f266
- cmake_options.cmake GitHub · rwengine/openrw · Revision 5c5f266
- cmake_configure.cmake GitHub · rwengine/openrw · Revision 5c5f266
- conanfile.py GitHub · rwengine/openrw · Revision 5c5f266
- .gitmodules GitHub · rwengine/openrw · Revision 5c5f266
- rwcore/loaders GitHub · rwengine/openrw · Revision 5c5f266
- rwengine/src/script GitHub · rwengine/openrw · Revision 5c5f266
- tests/CMakeLists.txt GitHub · rwengine/openrw · Revision 5c5f266
- .github/workflows/build-and-test.yml GitHub · rwengine/openrw · Revision 5c5f266
- .appveyor.yml GitHub · rwengine/openrw · Revision 5c5f266
- cmake/ctest/build.ctest GitHub · rwengine/openrw · Revision 5c5f266
- COPYING GitHub · rwengine/openrw · Revision 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