Case study
Age of Empires Free Software Remake: a re-implementation on the original data
Re-implements Microsoft’s Age of Empires and its Rise of Rome expansion as a cross-platform C++17 engine on SDL2 and OpenGL that loads the original game’s DRS archives and language.dll resources. README says it mimics the Windows API and the Genie engine for compatibility and reconstructs some code from the disassembly; the repository adds format notes and Python tools for inspecting the original data files. Only very basic gameplay through a multiplayer session exists so far, so it is an early engine case rather than a playable replacement.
Requirements & limits
- The reviewed master snapshot (2026-09-20) sets CMake version 0.1, and the repository has no releases or tags; the user guide says no binary builds are provided. README reports only very basic gameplay and only multiplayer mode: single-player means hosting a session and adding computer players, which only gather resources until attacked. doc/reverse_engineering documents the DRS archive contents, the Windows API functions the original imports, the scenario format, civilizations and unit statistics.
- Needs a legitimate copy of Age of Empires or Rise of Rome, on the CD-ROM or installed: the engine loads Border.drs, graphics.drs, Interfac.drs, sounds.drs and Terrain.drs from the data folder plus language.dll, and expects the game fonts COPRGTB.TTF and COPRGTL.TTF that the original installer adds. The repository contains no game data, and community replacement assets are not supported yet.
- README lists Windows 10+, macOS Sequoia 15.7.7, Fedora 44 and Ubuntu 22+ as tested, while INSTALL still warns that Linux builds look for hard-coded legacy TTF font paths. Builds use CMake 3.11+ with C99 and C++17 against SDL2, SDL2_image, SDL2_mixer and OpenGL, plus the imgui, tracy, wepoll and miniz submodules; Windows builds use Visual Studio with vcpkg or MinGW.
- GitHub Actions builds the game with Clang on Ubuntu and Fedora and runs the Google Test suite in headless mode; its tests cover networking, the protocol, the server, SDL and a UI menu rather than equivalence with the original executable. No comparison with the original game is published; this collection built or ran nothing.
- LICENSE applies Apache-2.0; the submodules and the bundled headers in game/src/external keep their own licenses. README states that all copyrighted material and trademarks belong to their respective owners and calls the work an educational non-profit project. 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 · FolkertVanVerseveld/aoe · Revision 3234eac
- INSTALL GitHub · FolkertVanVerseveld/aoe · Revision 3234eac
- doc/user_guide.md GitHub · FolkertVanVerseveld/aoe · Revision 3234eac
- HACKING.md GitHub · FolkertVanVerseveld/aoe · Revision 3234eac
- CMakeLists.txt GitHub · FolkertVanVerseveld/aoe · Revision 3234eac
- .gitmodules GitHub · FolkertVanVerseveld/aoe · Revision 3234eac
- doc/reverse_engineering GitHub · FolkertVanVerseveld/aoe · Revision 3234eac
- tools GitHub · FolkertVanVerseveld/aoe · Revision 3234eac
- game/src/legacy GitHub · FolkertVanVerseveld/aoe · Revision 3234eac
- .github/workflows/unit_test.yml GitHub · FolkertVanVerseveld/aoe · Revision 3234eac
- .github/workflows/test_distros.yml GitHub · FolkertVanVerseveld/aoe · Revision 3234eac
- game/tests GitHub · FolkertVanVerseveld/aoe · Revision 3234eac
- LICENSE GitHub · FolkertVanVerseveld/aoe · Revision 3234eac
More in Games
- God of War PS2 static recompilation: a native Windows port via PS2Recomp · Case study
- RaceWave46: an AI-assisted Wave Race 64 recompilation for Windows · Case study
- Jazz² Resurrection: a native C++ reimplementation of Jazz Jackrabbit 2 · Case study
- LBA2 Remake: a Little Big Adventure 1 and 2 reimplementation in TypeScript and Three.js · Case study
- OpenAWE: an open reimplementation of Remedy’s Alan Wake engine · Case study
- CPS-2 Recomp: static recompilation of Capcom CPS-2 and CPS-1 arcade games · Case study