openage
Clone of the Age of Empires II engine 🚀
Openage is an open source reimplementation of the Age of Empires engine written in C++, but gameplay is currently non-functional due to an ongoing internal redesign, best for contributors, not players.
Openage is a volunteer project to recreate the game engine behind Age of Empires, Age of Empires II, and Star Wars: Galactic Battlegrounds as free, open source software. The goal is the same kind of effort that produced open source reimplementations of other classic games, such as the OpenMW project for Morrowind or OpenTTD for Transport Tycoon. Openage does not include any game content: to play, you need to own a copy of one of the original games, whose files the engine can read and convert.
The engine is written in C++20, with Python used for scripting, tools, and modding support. The interface uses the Qt6 framework and rendering goes through OpenGL. A custom data format called nyan handles game content and is designed to make modding straightforward. The project also plans to support writing AI opponents in Python, which would allow experimentation with machine learning approaches.
An important caveat in the README: as of the time of writing, gameplay is essentially non-functional. The project went through a significant internal redesign of how the game simulation works, which required dismantling the earlier partially-working version. The team describes this as a necessary step to build on a solid foundation, and progress is documented on their development blog. The README notes this plainly and suggests that people who just want to play the game will currently be disappointed.
Build instructions exist for Debian, Ubuntu, macOS, and Windows. A Windows installer is available from the releases page. The project is licensed under the GPL v3, which requires any modifications to also be shared as open source. There is no network or binary compatibility with the original games, though a converter for maps and save files is planned.
Where it fits
- Contribute to an open source game engine project to learn C++ game and simulation programming
- Experiment with writing AI opponents in Python for a real-time strategy game engine
- Use the converter tools to read and work with Age of Empires map and save file formats
- Study how a large open source C++ project structures a game simulation engine