• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

assets/H03-May-2022-1,6661,248

buildsystem/H03-May-2022-7,0335,398

cfg/H03-May-2022-7471

dist/H03-May-2022-2618

doc/H03-Jul-2018-14,09611,062

etc/H03-Jul-2018-861678

legal/H03-Jul-2018-1,167957

libopenage/H03-May-2022-55,03131,669

openage/H03-May-2022-19,91613,879

packaging/H03-May-2022-

.gitignoreH A D03-Jul-2018650 7159

.kevinH A D03-Jul-2018692 2720

.mailmapH A D03-Jul-2018821 1615

MakefileH A D03-Jul-20185.5 KiB184150

README.mdH A D03-Jul-20188.4 KiB190130

configureH A D03-May-202213 KiB425305

copying.mdH A D03-Jul-201816.8 KiB214183

openage_versionH A D03-Jul-20187 21

run.pyH A D03-May-2022374 1610

README.md

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