About this project

openage is a volunteer project to create a free engine clone of the Genie Engine used by Age of Empires, Age of Empires II (HD), and Star Wars: Galactic Battlegrounds. It is comparable to projects like OpenMW, OpenRA, OpenSAGE, OpenTTD, and OpenRCT2. The project uses the original game assets (sounds and graphics) but does not ship them; to play, you need any original game (AoE1, AoE2) or their Definitive Edition releases. Technical foundation: Engine core in C++20, Python3 for scripting, media conversion, in-game console, and code generation, Cython for Python/C++ glue, Qt6 for the graphical user interface, CMake as build system, OpenGL for rendering and shaders, Opus for audio codec, and nyan for content configuration and modding. Goals: Fully authentic look and feel (approximated because original behavior is mostly undocumented), no useless artificial limitations, an easily-moddable content format (nyan), an integrated Python console and API comparable to Blender, AI scripting in Python with machine learning, re-creating free game assets, multiplayer, matchmaking and ranking with a Haskell masterserver, optional improvements over the original game, and infrastructure such as the Kevin CI service. For sanity reasons, there is no network compatibility with the original game and no binary compatibility. A one-way script to convert maps, savegames, and missions to openage is planned. Current state: At the moment, gameplay is basically non-functional. The internal game simulation is being implemented with simplicity and extensibility in mind, so the temporary but kind of working previous version was removed. The project can now use converted asset packs and the nyan API. Detailed explanations are on the blog. The team is working to make gameplay return. Installation: There are many missing parts for an actually working game. Building from source is strongly recommended. For Linux, check repology for packages; no deb, rpm, Flatpak, snap, or AppImage packages yet. For Windows, check the release page for the latest installer. For macOS, no packages; build from source. A troubleshooting guide is available. Quickstart: Clone the repo, install dependencies (see doc/building.md), build with ./configure --download-nyan and make. Alternatively, use Docker. Run with cd bin && ./run main. The convert script transforms original assets into openage formats, which are saner and more moddable. Humorous note: segfaults, error messages, and other issues are considered features; flags like --dont-segfault, --no-errors, and --dont-eat-dog are jokingly suggested. Contributing: Check issues labeled 'good first issue', ask in the Matrix chat, read the docs and contributing guide. Non-programmers are welcome to help or lurk. License: GNU GPLv3 or later; see copying.md and legal/GPLv3.