sandsmark / freeaoe

A free game engine capable of running Age of Empires 2 and Star Wars: Galactic Battlegrounds
GNU General Public License v3.0
204 stars 20 forks source link
2d-game-engine age age-of-conquerors age-of-empires ageofempires ageofempires2 aoc aoe2 cpp17 cpp20 engine genie-engine isometric rts rts-engine rts-game star-wars star-wars-galactic-battlegrounds starwars swgb

freeaoe

screenshot

freeaoe is a project to write a free engine capable of running Age of Empires 2 (and other Genie games like SW:GB eventually).

The project is still in early development. But you can load and play scenarios, show the history screen, move around, attack, build and stuff. There are some screenshots in the doc/ folder.

It (obviously) needs the original data files, but it works with the data files from the trial version (e. g. from Archive.org).

Star Wars™: Galactic Battlegrounds WIP

swgb screenshot

Windows

Automated Windows builds can be downloaded from AppVeyor.

There is no installation, it's just a zip file with a standalone .exe that you run.

NB: If Appveyor says there's no artifact available it's probably because it's building the latest version, just give it a few moments (or click around in AppVeyor to find the older versions).

Caveat emptor; I don't have any Windows installation to test with, but it works fine in Wine.

Running

If you have AoE2 installed it should automatically detect where it is installed and load the data files automatically (looking up in the Windows registry). If that doesn't work for some reason it will pop up a dialog where you can point it to the files manually.

If you don't have it installed there's a nice button in that dialog which opens an URL where you can download the trial version of AoC. It doesn't have the higher resolution graphics e. g. for the UI, though, so I highly recommend getting an original CD with the full version.

On Linux it parses the Wine registry file to try to find the installation, otherwise you get the same dialog (but with a handy button to go directly to the .wine folder). Be aware that it respects WINEPREFIX, so make sure that is set correctly if you use it.

Dependencies

To build

I can't get it to build on macOS (and I don't have any Apple machines), so if you manage to get it to build please open a PR. It seems like Apple ships a really outdated version of Clang that doesn't support modern C++.

Legal

Preface: I am not a lawyer (nor a native english speaker), this is just based on my interpretation of local laws to show that everything is done in good faith. If you believe I am infringing on any of your rights please open an issue and I will seek to rectify it as soon as possible.

I am in no way affiliated with Microsoft, Linus Torvalds nor anyone else who own any trademarks that may appear here. Any display of trademarks here is purely to indicate the purpose of this project and in accordance with good business practice, as permitted by relevant laws.

There are no copyrighted works distributed here, nor works derived from copyrighted works, except works with a free and open source license permitting distribution.

In no part of the creation of this is reverse engineering involved. All insight used is based on publicly available knowledge and playing of the game.

My right to gather insight into the functioning and principles of individiual parts of a copyrighted computer program by means of execution, observation, investigation and testing is protected by norwegian law.

Although I also have some rights to reverse engineer works I have the right to use it's more fun to figure out how to do something myself. In addition I'm not familiar enough with the laws governing reverse engineering that Github is subject to, and I don't want to be nuked from Github.

In general I work on this this because it's fun to create a strategy game, I already paid for and own a license to the games. I do not receive nor do I intend to receive any form of compensation for this. I have no incentive or intention to do anything that would infringe on anyones copyright, trademarks or other rights.

Misc

This is mostly a single-person pet project, so if you want a more serious project, try openage.

It uses the same library as AGE (Advanced Genie Editor), so it should be able to handle anything that can be edited by that (and therefore basically all community content created for AoE2). Because of this it doesn't need to unpack or convert anything, all data files are used as is.

This repo is originally a fork of https://github.com/apreiml/freeaoe, but because a lot of stuff doesn't like working on forked repos it is now created as a separate repo.

TODO (this is probably going to get outdated)

Wishlist/low priority:

Done

Not exhaustive list, mostly in addition to "normal" RTS things, or things not available in other re-implementations.

Compared to other reimplementations as much as possible is fetched from the data files as well, and I try to avoid hardcoding anything, though some is hardcoded in the original game.