Hacker News new | past | comments | ask | show | jobs | submit login
Open-source clone of the Age of Empires II engine (github.com/sfttech)
393 points by doener on Dec 29, 2017 | hide | past | favorite | 74 comments



As a longtime fan of Age of Empires, I have absolutely fallen in love with the open source 0ad clone.

http://play0ad.com/

The AI is surprisingly good, and the character models are as good as Age of Empires. Bonus points that it is in all major Linux distro repositories if you're one of those kinds of people (like me!).


Honest question... did it get better recently? I tried it years ago... and the AI was non existent...as in, I built up an army and went to explore, only to find my enemy had like 4 peasants.


If you watch their svn history, they consistently are chipping away at it. I simply wait (to upgrade to a new 0ad) with the latest version in each new Fedora release. It gets progressively better from an AI, music, and artwork standpoint.

0AD is definitely not the same game now as it was years ago, it is massively improved. These were both pretty big releases:

https://play0ad.com/new-release-0-a-d-alpha-21-ulysses/

https://play0ad.com/new-release-0-a-d-alpha-22-venustas/

I find the AI to be challenging to beat on hard, but not impossible. I'll play as the Ptolemies, because I know that they were the pinnacle of the Greek Phalanx lead by none other than Alexander the Great. So I was trying to take a large group of spearman up to take over an enemy town center filled with archers but wasn't having a ton of luck. Every time my infantry would retreat, the 20 archers would come out and chase them down. When I'd turn back, the archers would head back to the town center and shred through them. My winning strategy involved staging 10 companion cavalry to the east and have the infantry attack the town center and then retreat south, drawing the archers out to try to take out the infantry. The companion cavalry rode north of the archers cutting off their retreat to the town center and let the infantry cut them down.

The newer AI will also scout out your location and attack weak spots. They'll purposefully avoid attacking through walls and lots of towers if you mistakenly leave an unprotected rear or flank that they can use to march right up and destroy your town. It is certainly more difficult now and the new graphics make it a lot of fun to play.


Speaking of AI, there's pretty interesting project which aims at creating 0AD bot that uses hierarchical planning, not just some random heuristics: https://github.com/agentx-cgn/Hannibal


you're absolutely right! I'm terrible at these types of games, and getting my ass handed to me even on easy. Kudos to the team, this is a fun game.


Yes much better. I have trouble beating the default AI on its highest setting now. I am not a great player, but I don't suck either.


Another stupid question: did performance improve in the last ~two or three years? Even on the kinda small maps back then it quickly ran into CPU limits.


Yes performance is better overall. It is still possible to choke though depending on machine, map size, and number of units.


I wonder when we are going to start seeing game AIs trained by reinforcement learning with self-play.

Building a simple 0AD AI would be a fun capstone project.


The Open AI guys made a very impressive Dota 2 AI that trained itself through self play (and against pros), there is a pretty interesting write-up about it:

https://blog.openai.com/dota-2/


To shed some light on why they won, they chose a character (Shadow Fiend) that heavily relies on tight timings to execute moves. Naturally, AIs beat humans in events where timing is the key differentiator. Even so it’s quite impressive


Watching the video sure brings back memories. I spent many an hour as a young lad playing Age of Empires, I always loved the sounds. It looks like they did a good job of recreating AOE audio.


I don't really like the idea of non-sprite graphics. Seems like it would detract from the game.


Sprites in a 3D game look horrible for most objects: buildings, characters, terrain. Sprites are typically used for particle effects, grass, or objects that are far away. The latter is often used a performance optimization.


Age of Empires is not a 3d game.


AoE 1 and 2, yes. AoE 3 is 3D. True 3D works fine for RTS games and generally looks better, and can apply dynamic shadows, physics, etc. If you are simply saying that you prefer the old-style graphics, then okay. But your initial statement wasn't worded well if that is what you meant.


What do you mean in specific? The current models are mostly made with Blender 3D and they're quite good.


For other AoE fans, I like this real-world map creator tool:

https://peterolson.github.io/AOE2-Real-Map-Creator/

I've made my own custom map of Taiwan with the correct locations for gold, stone, and types of fish in the area. I plan to screen-record some famous historical events and make a video, but I'm still figuring out how to make such a video interesting and short enough to actually watch.


For what its worth I would watch just based on your description alone. May be better to just make one and get feedback than focus on making it interesting. Also, please let me know once you do. :-)


0ad is another open source project. It's a full-fledged game which can be modded with your own imagery/units, etc.

http://play0ad.com/


In case this wasn't posted, here is an index of all open source clones.

https://osgameclones.com/

It doesn't list OpenAge there yet but shows 0ad instead. I wonder if we'll ever see Total War 1 clone as well as a Civ 5 clone.


Seems like OpenAge is just a clone of the engine, not a full standalone game like 0ad.


Not yet, but a full game is the plan.


AoE2 is the one game I play regularly. It's great that this project was started, but is it still active? Did anyone manage to compile and run it, and if so, how does it feel?

Not to belittle the nice work, but I feel there was a better reason for making this clone a few years ago. There has been a "HD" version on Steam for a couple of years, which finally has good network support and most of the bugs seem ironed out, after almost 20 years! The only thing I still miss is to be able to run it on Linux...


The link shows that the last commit was a week ago... so, yes, it's still active. It compiles and runs, provided you have access to the media assets. It still needs work though.

Having a FLOSS engine for this game is more desirable than having to rely on a proprietary mess like Steam to play AOE2. So I hope this project is eventually successful.


I had a look at some .NET code integrating steam once and the integration itself looked quite clean and lightweight.

I'd be interested if people got banned or something like that for modifying games when they were clearly not hacking/cheating/cracking/impacting the experience of others.

From DSfix for Dark Souls I know that it can be fine with them if you hook function calls to improve rendering for example.

I imagine you also have to distinguish between Steam and VAC (anti-cheat) integration.


This project has nothing to do with Steam, other than perhaps (optionally) using the assets from the steam version of AOE2 HD, but it doesn't interface or interact with Steam at all AFAIK.


Sure, I know, but the parent poster complained about how Steam was a terrible thing about the HD version. I wanted to know if it creates practical problems if you want to mess with a game that has Steam integration.

Probably that was too far off topic by me.


It even has dev diaries: https://www.reddit.com/r/openage/


There are only three games I play regularly: AoE2, Doom, and SimCity 2000.


Why? That's like saying I only read Of Mice and Men, Dune, and Wealth of Nations.

There's so many other options to explore!


Runs better on wine than it does on windows.


Citation needed. In my experience, running AoE2HD in Wine results in strange mouse errors at the start of a match which can ruin a game (where the screen is stuck scrolling to one side).


The mouse bug seems to be gone for me (it was mainly triggered by alt-tabbing out of the window). It still has an issue with text not being rendered properly while typing.


Pretty sure that was one of several bugs I hit after release back in 2013, on Windows.


Doesn't it compile natively on Linux?


Fairly sure that AoE2HD was only released on Windows.



Note that the AoE 2 community is still going strong with HAD and Voobly communities, casters like T90 and ZeroEmpires, and streamers like Viper.

There have been some epic professional games as well as community games.

It will be interesting if a similar competitive community popped up for the open source versions.


Most impressive feature:

> We have an integrated terminal emulator supporting ecma-48. You can run vim or anything else within openage. This is neat to interactively edit scripts.

it runs vim!



There is also the open source implementation of RollerCoaster Tycoon 2:

https://github.com/OpenRCT2/OpenRCT2


The approaches are dramatically different, though - this implementation seeks to discover and re-write the game logic from the outside in (black box), using reverse-engineering to understand things like the assets file formats. OpenRCT2 started as a direct translation of RCT from the original assembler into C (via Hex-Rays) and builds on the original game engine verbatim.


This is mentioned in the first sentence of the ReadMe.


Age of empires is the only game I play on steam


Same here! Wololo.


I'm working on my own open-source game as a Tetris Attack clone. https://github.com/omenking/swap-n-pop/

What I'm always surprised is the lack of tooling and test code and I'm of the belief that in the war of the clones, the ones that chooses tooling and a stack designed for larger teams, and a focus on BDD will get your project where it needs to go.

Instead of building a game, focus on building a team.

Great work on this clone so far, I was just talking top of mind.


I did not downvote you but I suspect you might have been downvoted because you "stole" someone else's thunder so I would suggest you post your clone in a, perhaps, Show HN post.


Interestingly, it's pretty common to also mention your own project in a comment, and how it's received seems to differ quite a bit based on how it was presented. If they start out with relevant comments about the current submission, a segue-way into a somewhat related project is usually taken well. If you start off with what can be taken as self promotion and take a while to get to relevant comments about the current submission (or never do), it's not received well.

In this case, I'm actually surprised that it was downvoted. After the initial line with a link, it's all fairly general and about clone projects in general, which makes that line read as presenting bon fides and not self promotion when the comment is interpreted as a whole.


To be honest I can't even tell that I've been down voted. I never thought to bother posting my clone to hackernews and likely wont unless I do a postmortem when the game has been released and if I have something worth reading.

My market isn't really here on Hacker News, there's already a built in community on Discord which is where its worth link baiting so I don't even have to promote. https://discord.gg/bpk6ue

There are sum of 100 hard code people or less and thats all I'm likely to reach. My only motivation for my clone is so the community I already participate in has something for competitive play.

I could certainly say I could have written something with more breath to it and that might merit a downvote.

I remember I once wanted to hack on the open-source CIV4 game to give it a friendly UI game but found the codebase to be as unfriendly as the one linked above.


Why use SDL2 for input handling when you have Qt5?


Isn't sdl2 a lot smaller than qt5?


They list both as a dependency, that's why I mentioned it.


I am curious how is this not a copyright infringement?


No code or artwork has been copied from the original game, so why would it be copyright infringement?


This is awesome if it means being able to play AOE2 or a clone on Linux.

I'm not sure I understand if engine means playable game..?



Thanks.


AoE II for Linux :D

Hope it will be in a playable state soon.


0ad is playable today. On Fedora try

    dnf install 0ad


Interesting, what's made them choose to do this with AoE II rather than AoE III? Is II more popular?


I think the best in the series on AOM, felt like a streamlined version, though that game requires no cloning.

I only have faint memories of AoE II and at the time never had a powerful enough computer for AoE III.

I can never get the iconic AoE theme out of my head.


WTF

Contributing: Being typical computer science students, we hate people. Please don't contact us. Nobody likes Age of Empires anyway. None of you is interested in making openage more awesome anyway. We don't want a community. Don't even think about trying to help.

Guidelines: No bug reports or feature requests, the game is perfect as is. Don't try to fix any bugs, see above. Don't implement any features, your code is crap. Don't even think about sending a pull request. Please ignore the easy tasks that could just be done. Absolutely never ever participate in this boring community. Don't note the irony, you idiot. To prevent accidental violation of one of those guidelines, you should never


It's a joke. It's obvious that they want people to contribute, as this follows with:

---

To prevent accidental violation of one of those guidelines, you should never

* learn git

* fork the repo

* learn python

* learn c++14

* read the code and documentation

* contribute anything to the code

* contact us

cheers, happy hecking.

---

The contribution guide in general is pretty well written and welcoming.


Also, "Don't note the irony, you idiot." directly above that.


And for those Vulcans that are still confused, this is Morrisette-level irony.


Is it though? I think it's not the actually-just-a-coincidence type of 'irony' from her song, but rather actual 'verbal irony', https://en.wikipedia.org/wiki/Irony#Verbal_irony.


The quote you pasted literally says "Don't note the irony, you idiot".


Probably a little overdone in terms of sarcasm/2nd degree, to the point that it's not really funny. It references https://github.com/SFTtech/openage/blob/master/doc/contribut... for contribution guidelines though


Why C++ instead of a higher level language like Python? The developers could focus more on game functionality than C++ bugs and cross platform issues. Performance should not be a big concern for running an old game on modern hardware.


Rule of thumb suggests that implementing AoE with Python today probably means PyAge2 runs about as well on a 4.5 GHz CPU as AoE2 did on a 266 MHz Pentium II. (not that well)


And with C++14 the stdlib provides out of the box alternatives for most syscalls. No cross platform woes needed.

Also, they do use Python. One of it's advantage is that it's easy to integrate with native code. So you should implement the hot parts in C++.


Modern hardware allows for new different tools. For example, Red Alert was available for DOS. But to play OpenRA, you need OpenGL support.


Why is python 'higher level'?




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: