- Notifications
You must be signed in to change notification settings - Fork0
Free (as in freedom) open source clone of the Age of Empires II engine 🚀
License
heinezen/openage
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
openage: a volunteer project to create a free engine clone of theGenie Engine used byAge of Empires,Age of Empires II (HD) andStar Wars: Galactic Battlegrounds, comparable to projects likeOpenMW,OpenRA,OpenSAGE,OpenTTD andOpenRCT2.
openage uses the original game assets (such as sounds and graphics), but (for obvious reasons) doesn't ship them.To play, you requireany of the original games (AoE1, AoE2) or theirDefinitive Edition releases.
Contact | Where? |
---|---|
Issue Tracker | GitHub SFTtech/openage |
Development Blog | blog.openage.dev |
Subreddit | |
Discussions | GitHub Discussions |
Matrix Chat | #sfttech:matrix.org |
Money Sink |
Technology | Component |
---|---|
C++20 | Engine core |
Python3 | Scripting, media conversion, in-game console, code generation |
Cython | Python/C++ Glue code |
Qt6 | Graphical user interface |
CMake | Build system |
OpenGL | Rendering, shaders |
Opus | Audio codec |
nyan | Content Configuration and Modding |
Humans | Mixing together all of the above |
- Fully authentic look and feel
- This can only be approximated since the behavior of the original game is mostly undocumented,and guessing/experimenting can only get you this close
- We will not implement useless artificial limitations (max 30 selectable units...)
- An easily-moddable content format:nyan yet another notation
- An integrated Python console and API, comparable toblender
- AI scripting in Python, you can usemachine learning
- here is someadditional literature
- Re-creatingfree game assets
- Multiplayer (obviously)
- Matchmaking and ranking with ahaskell masterserver
- Optionally,improvements over the original game
- Awesome infrastructure such as our ownKevin CI service
But beware, for sanity reasons:
- No network compatibility with the original game.You really wanna have the same problems again?
- No binary compatibility with the original game.A one-way script to convert maps/savegames/missions to openage is planned though.
Important notice: At the moment, "gameplay" is basically non-functional.We're implementing the internal game simulation (how units even do anything) with simplicity and extensibility in mind, so we had to get rid of the temporary (but kind of working) previous version.With these changes, we can (finally) actually make use of our converted asset packs and our nyan API!We're working day and night to make gameplay return*.If you're interested, we wrote detailed explanations on our blog:Part 1,Part 2,Monthly Devlog.
* may not actually be every day and night
Operating System | Build status |
---|---|
Debian Sid | |
Ubuntu 24.04 LTS | |
macOS | |
Windows Server 2019 | |
Windows Server 2022 |
There are many missing parts for an actually working game.So if you "just wanna play",you'll be disappointed, unfortunately.
We strongly recommend building the program from source to get the latest, greatest, and shiniest project state :)
ForLinux check atrepology if your distribution has any packages available. Otherwise, you need to build from source.We don't release
*.deb
,*.rpm
, Flatpak, snap or AppImage packages yet.ForWindows check ourrelease page for the latest installer.Otherwise, you need to build from the source.
FormacOS we currently don't have any packages, you need to build from source.
If you need help, maybe ourtroubleshooting guide helps you.
How do I get this to run on my box?
- Clone the repo.
- Install dependencies. Seedoc/building.md to get instructions for your favorite platform.
- Build the project:
./configure --download-nyanmake
I compiled everything. Now how do I run it?
- Execute
cd bin && ./run main
. - The convert script will transform original assets into openage formats, which are a lot saner and more moddable.
- Use your brain and react to the things you'll see.
- Execute
Waaaaaah! It...
- segfaults
- prints error messages I don't want to read
- ate my dog
All of those are features, not bugs.
To turn them off, use./bin/run --dont-segfault --no-errors --dont-eat-dog
.
If this still does not help, try ourtroubleshooting guide, thecontact sectionor thebug tracker.
You might ask yourself now "Sounds cool, but how do I participateandget famous contribute useful features?".
Fortunately for you, there is a lot to do and we are very grateful for your help.
- Check the issueslabelled with
good first issue
. These are tasks that you can start right away and don't require much previous knowledge. - Ask us in thechat. Someone there could needhelp with something.
- You can alsotake the initiative and fix a bug you found, create an issue for discussion orimplement a feature that we never thought of, but always wanted.
- Tell us, if you haven't already. Chances are that we have additional informationand directions.
- Read the docs. They will answer most "administrative"questions like what code style is used and how the engine core parts are connected.
- Read the code and get familiar with the engine component you want to work with.
- Do not hesitate toask us for help if you do not understand something.
- Read thecontributing guide.
- You can upload work-in-progress (WIP) versions or drafts of your contribution to get feedback or support.
- Tell us (again) when you want us to review your work.
Then openage might be a good reason to become one! We have many issues and tasks for beginners. Youjust have to ask and we'll find something. Alternatively, lurking is also allowed.
Cheers, happy hecking!
What does openage development look like in practice?
- extensivesynchronization!
- doc/development.md.
How can I help?
All documentation is also in this repo:
- Code documentation is embedded in the sources for Doxygen (seedoc readme).
- Have a look at thedoc directory. This folder tends to get outdated when code changes.
GNU GPLv3 or later; seecopying.md andlegal/GPLv3.
I know that probably nobody is ever gonna look at thecopying.md
file,but if you want to contribute code to openage, please take the time toskim through it and add yourself to the authors list.
About
Free (as in freedom) open source clone of the Age of Empires II engine 🚀
Topics
Resources
License
Stars
Watchers
Forks
Packages0
Languages
- Python53.7%
- C++37.6%
- Cython5.2%
- CMake2.0%
- QML0.6%
- GLSL0.5%
- Other0.4%