1[![openage](/assets/logo/banner.png)](http://openage.sft.mx) 2============================================================ 3 4**openage**: 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*, comparable to projects like [OpenMW](https://openmw.org/), [OpenRA](http://openra.net/), [OpenTTD](https://openttd.org/) and [OpenRCT2](https://openrct2.org/). At the moment we focus our efforts on the integration of *Age of Empires II*, while being primarily aimed at POSIX platforms such as **GNU/Linux**. 5 6openage uses the original game assets (such as sounds and graphics), but (for obvious reasons) doesn't ship them. 7To play, you require *an original AoE II : TC installation or [AoE II: HD](http://store.steampowered.com/app/221380/)* 8(installation via [Wine](https://www.winehq.org/) or [Steam-Linux](doc/media_convert.md#how-to-use-the-original-game-assets)). 9 10[![github stars](https://img.shields.io/github/stars/SFTtech/openage.svg)](https://github.com/SFTtech/openage/stargazers) 11[![#sfttech on Freenode](https://img.shields.io/Freenode/%23sfttech.png)](https://webchat.freenode.net/?channels=sfttech) 12[![#sfttech on matrix.org](https://img.shields.io/badge/matrix-%23sfttech-blue.svg)](https://riot.im/app/#/room/#sfttech:matrix.org) 13[![quality badge](https://img.shields.io/badge/cuteness-overload-orange.svg)](http://www.emergencykitten.com/) 14 15Contact | Where? 16---------|- 17Development Blog | [blog.openage.sft.mx](https://blog.openage.sft.mx) 18Forum | [<img src="https://www.redditstatic.com/about/assets/reddit-logo.png" alt="reddit" height="22"/> /r/openage](https://www.reddit.com/r/openage/) 19Matrix Chat | [`#sfttech:matrix.org`](https://riot.im/app/#/room/#sfttech:matrix.org) 20IRC Chat | [`irc.freenode.net #sfttech`](https://webchat.freenode.net/?channels=sfttech) 21Money Sink | [![money sink](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/SFTtech) 22 23 24The foundation of **openage**: 25 26Technology | Component 27---------------|---------- 28**C++17** | Engine core 29**Python3** | Scripting, media conversion, in-game console, code generation 30**Qt5** | Graphical user interface 31**Cython** | Glue code 32**CMake** | Build system 33**OpenGL2.1** | Rendering, shaders 34**SDL2** | Cross-platform Audio/Input/Window handling 35**Opus** | Audio codec 36[**nyan**](https://github.com/SFTtech/nyan) | Content Configuration and Modding 37**Humans** | Mixing together all of the above 38 39Our goals *include*: 40 41* Fully authentic look and feel 42 * This can only be approximated, since the behaviour of the original game is mostly undocumented, 43 and guessing/experimenting can only get you this close 44 * We will not implement useless artificial limitations (max 30 selectable units...) 45* Multiplayer (obviously) 46* Matchmaking and ranking with a [haskell masterserver](https://github.com/SFTtech/openage-masterserver) 47* Optionally, [improvements](/doc/ideas/) over the original game 48* AI scripting in Python, you can use [machine learning](http://scikit-learn.org/stable/) 49* Re-creating [free game assets](https://github.com/SFTtech/openage-data) 50* An easily-moddable content format: [**nyan** yet another notation](https://github.com/SFTtech/nyan) 51* An integrated Python console and API, comparable to [blender](https://www.blender.org/) 52* Awesome infrastructure such as our own [Kevin CI service](https://github.com/SFTtech/kevin) 53 54But beware, for sanity reasons: 55 56* No network compatibility with the original game. 57 You really wanna have the same problems again? 58* No binary compatibility with the original game. 59 A one-way script to convert maps/savegames/missions to openage is planned though. 60 61 62Current State of the Project 63---------------------------- 64 65 - What features are currently implemented? 66 - See [doc/status.md](/doc/status.md). 67 68 - What's the plan? 69 - See [doc/milestones.md](/doc/milestones.md). We also have a [list of crazy xor good ideas](/doc/ideas). 70 71 72Dependencies, Building and Running 73---------------------------------- 74 75 - How do I get this to run on my box? 76 - See [doc/building.md](/doc/building.md). 77 78 - I compiled everything. Now how do I run it? 79 - Execute `./run`. 80 * [The convert script](/doc/media_convert.md) will transform original assets into openage formats, which are a lot saner and more moddable. 81 - Use your brain and react to the things you'll see. 82 83 - Waaaaaah! It 84 - segfaults 85 - prints error messages I don't want to read 86 - ate my dog 87 88All of those are features, not bugs. 89 90To turn them off, use `./run --dont-segfault --no-errors --dont-eat-dog`. 91 92 93If this still does not help, try our [troubleshooting guide](/doc/troubleshooting.md), the [contact section](#contact) 94or the [bug tracker](https://github.com/SFTtech/openage/issues). 95 96 97Development Process 98------------------- 99 100What does openage development look like in practice? 101 - extensive [synchronization](#contact)! 102 - [doc/development.md](/doc/development.md). 103 104Can I help? 105 - [doc/contributing.md](/doc/contributing.md). 106 107 108All documentation is also in this repo: 109 110- Code documentation is embedded in the sources for Doxygen (see [doc readme](/doc/README.md)). 111- Have a look at the [doc directory](/doc/). This folder tends to outdate when code changes. 112 113 114macOS Version 115------------ 116 117Running openage on macOS worked in the past, 118and might or might not work right now. 119 120Setting up continuous integration for this platform has some complications. Running a hackintosh VM seems to be not so legal, while buying dedicated hardware for it seems to be not so cheap. If you know of a legal and cost-free way of doing so or want to sponsor a semi-recent Mac Mini, please open a ticket in our issue tracker. Until then, PRs untested on macOS will make their way into the master branch and occasional breakage will occur. 121 122 123Windows Version 124--------------- 125 126The Windows port of openage is under development. 127 128Setting up continuous integration for this platform has problems similar to the OSX version. If you know of a legal and cost-free way of acquiring and running a Windows VM, please open a ticket in our issue tracker. Until then, PRs untested on Windows will make their way into the master branch and occasional breakage will occur. 129 130 131Contributing 132============ 133 134* Being typical computer science students, we hate people. 135* Please don't contact us. 136* Nobody likes Age of Empires anyway. 137* None of you is interested in making openage more awesome anyway. 138* We don't want a community. 139* Don't even think about trying to help. 140 141Guidelines: 142 143* No **bug reports** or **feature requests**, the game is perfect as is. 144* Don't try to **fix any bugs**, see above. 145* Don't implement any features, your code is crap. 146* Don't even think about sending a **pull request**. 147* Please ignore the [easy tasks](https://github.com/SFTtech/openage/issues?q=is:issue+is:open+label:%22easy%22) that [could just be done](https://github.com/SFTtech/openage/issues?q=is:issue+is:open+label:%22just+do+it%22). 148* Absolutely never ever participate in this [boring community](https://www.reddit.com/r/openage/). 149* Don't note the irony, you idiot. 150 151To prevent accidental violation of one of those guidelines, you should *never* 152 153* [learn git](https://git-scm.com/book/) 154* [fork the repo](https://help.github.com/articles/fork-a-repo) 155* [learn python](https://docs.python.org/3/tutorial/appetite.html) 156* [learn c++](http://www.cplusplus.com/doc/tutorial/) 157* read the code and documentation 158* [contribute](/doc/contributing.md) anything to the code 159* [contact us](#contact) 160 161cheers, happy hecking. 162 163 164Contact 165------- 166 167 168If you have the desire to perform semi-human interaction, 169join our **Matrix** or **IRC** chatroom! 170 171* [`#sfttech:matrix.org`](https://riot.im/app/#/room/#sfttech:matrix.org) 172* [`irc.freenode.net #sfttech`](https://webchat.freenode.net/?channels=sfttech) 173 174Do not hesitate to ping and insult us, we might not see your message otherwise. 175 176For all technical discussion (ideas, problems, ...), use the [issue tracker](https://github.com/SFTtech/openage/issues)! 177It's like a mailing list. 178 179For other discussions or questions, use our [/r/openage subreddit](https://www.reddit.com/r/openage/)! 180 181 182License 183------- 184 185**GNU GPLv3** or later; see [copying.md](copying.md) and [legal/GPLv3](/legal/GPLv3). 186 187I know that probably nobody is ever gonna look at the `copying.md` file, 188but if you want to contribute code to openage, please take the time to 189skim through it and add yourself to the authors list. 190