Hacker News new | past | comments | ask | show | jobs | submit login
Hannibal: An AI/bot for 0 A.D (github.com/agentx-cgn)
144 points by jonbaer on March 14, 2016 | hide | past | favorite | 33 comments



Cool name.

Hannibal was Carthaginian (modern day Tunisia); one of the greatest military commanders in history.[0]

His crossing of the Alps during the Carthage-Rome war is one of the most celebrated achievements of any military force in ancient warfare.[1]

0.https://en.wikipedia.org/wiki/Hannibal

1.https://en.wikipedia.org/wiki/Hannibal%27s_crossing_of_the_A...


I'd take issue saying crossing the Alps was the most celebrated achievements. It's the fact that he crossed the Alps, losing half(?) his force in the process, then proceed to win three major victories against the Romans, culminating in the Battle of Cannae.

Most military historians consider the Battle of Cannae to be his greatest achievement- in which Hannibal's smaller folder encircled and destroyed the larger Roman one. Several members of the Roman elite, including Senators and Consuls were killed in the battle.


Now all we need is a Scipio Africanus as an opponent ai. :D


And much like Scipio, an AI that learns the tactics of Hannibal and devises its own tactics to hard counter.


Excellent Total War documentary on the Punic Wars: https://www.youtube.com/watch?v=HOk6ppoQrkw&index=1&list=PLk...


And also the Extra History series too: https://www.youtube.com/watch?v=EbBHk_zLTmY


Since the victories of AlphaGO, we've learnt a lot about Starcraft being the new step in AI game research.

Maybe it would be better to focus the efforts on an opensource RTS such as 0ad, which leads to less legal problems and less hacky interfaces (for Starcraft 1, by writing in the memory of the game).


Considering the work involved in general, the interface is sort of irrelevant.

Plus, there's no way to tell if your AI is any good if you don't have anyone to play against, and if you're doing that, you want to play against the best, which means you need a wildly popular game with a professional drive to it. Starcraft is a perfect fit.


MIT actually has an annual RTS-AI game competition which I believe is open source: https://www.battlecode.org/

Google also had the ANT AI challenge which was neat: http://ants.aichallenge.org/


One direction I would like to see more focus on is AI providing a useful explanation of the decisions that are taken. AlphaGo made quite a few non-conventional moves. They turned out to be good moves. What I would find really interesting is if an AI like AlphaGo can not only excel at playing games (solving problems) but also be used as a tool to gain understanding. Perhaps, Lee Sedol will become even stronger now because his experience with AlphaGo. Perhaps, humans will be able to learn to view the game in a slightly different way that closes the gap between where we are and where AlphaGo appears to be? Maybe humans will once again regain supremacy over AlphaGo? I think that would be a much more interesting outcome than moving on to another problem space.


To a large degree, I don't think this is possible.

As humans, we want an intuitive explanation. For instance with chess, because it weakens certain squares or allows a particular combination resulting in a pawn break.

Unfortunately, these notions arise from our human attempt to understand a complicated game by reasoning through abstractions over the game. Things like pawn structure, control over light and dark squares, and pressure on pinned pieces aren't fundamental components of chess — they're just patterns that help us understand and reason about complicated board positions.

An AI doesn't need or use these abstractions. At the end of the day, all of them can, will, and should be ignored for the sake of simply achieving a superior position on the board. And it's very likely in my mind that moves at this deep a level can't be suggested in terms of a more useful abstraction than, "because it's better than all the other moves".


> What I would find really interesting is if an AI like AlphaGo can not only excel at playing games (solving problems) but also be used as a tool to gain understanding.

No, it cannot. It's generally thought that the only salient difference between 'machine learning' and 'statistics' is that 'statistics' attempts to find explanations, while 'machine learning' only attempts to find heuristics that give results.

Don't anthopomorphise AI. It's not artificial life, it's only probability theory plus lots of CPU power.


Knowing almost nothing about neural nets, is it possible for a NN based AI to explain it's decisions in some manner that we would understand?


What you can do is see which neurons were activated by a certain event, then figure out what other situations they are activated by and the patterns that they match. That's won't get you a coherent explanation straight away, especially for a very large network, but it's a start.


I bet humans will be able to gain supremacy over the AlphaGo that Lee Sedol has (and is) playing.

However, AlphaGo is still training and advancing. I am not sure people will be able to keep up with that moving target.


Yeah, it would definitely be nice if this kind of research focused on open source games. I've been wanting to do something like this with 0ad myself, so I find this very exciting!



Im glad to see work still being done on 0 A.D.

Last time I tried playing with it (over a year ago now), it was having a memory overflow error if maps got too big.

Beyond that though, the game was pretty cool.


Was there ever a slowdown? I only recently started playing (learned about it here).

I'm pretty impressed by its quality. Version Alpha 19 runs pretty smooth on my Ubuntu XPS 13.


only lag I get now (and other users as well) is on first game start up, and when moving mass amounts of troops at once. totally playable though, great game.


I've been playing it on and of for a few years now and there's definitely a progress of improvement. The quality and complexity of the game rivals most of the top commercial games of the same genre.


Also, here is a pretty interesting discussion of the evolution of StarCraft bots, and the current state of the art: https://www.rockpapershotgun.com/2016/01/28/starcraft-ai-bot...


Is this what you get for opensource games? People write AI enemies in their spare time? I think it's second or third alternative AI for the game.


People write AI's for pretty much any game where modding is possible and there's opponents.

AOE2 had some nice ones for training with certain strategies against.


Supreme Commander AI was around 1% human ability at launch. "Sorian" improved this dramatically, just like a human the rounds would rarely last more than 15 minutes (the hardest "normal" AI would happily let you amass experimentals for hours).

Moddable AI is definitely one of the unsung heroes of modding.


AoEII is very limited in terms of AI scripting (or map scripting, for that matter). Yes, there have been many impressive AIs (and I spent many hours testing/improving them) but you couldn't get creative like you apparently can in 0 A.D.


Having easily moddible AI is one of the goals of http://openage.sft.mx/


I think Starcraft (Broodwar) is the most notable example, having garnered also academic interest.


How close is modding to full access to API and source code? I'm asking because don't know anything about it.


Quake (idTech) is probably one of the earliest examples of a moddable game. All that it did was load your module (DLL/SO) via a well-defined export, passing it a structure with pointers to various important fields/functions. The SDK shipped with a few header files (or one, can't remember) which is all that you needed. No source code was required.

Making a moddable game doesn't require IP disclosure. All that it takes is a bit of discipline around impersonating the 3rd-party persona (dogfooding). It's not hard building a mod framework when compared to sticking to that framework when crunch-time hits. I'm guessing that's one of the reasons that games these days typically lack modability - during crunch time you really don't want developers "wasting time" making sure that the API is clean and used diligently.


I think that all good moddable games are already implemented as mods on top of a flexible core.


From my experience, modding implies a lot of experimentation, you're often playing with unknown rules as there are very often big gaps in the documentation and you only have other mods (Which very often make their own errors) as examples. An api to an open source game must be much easier to understand.


This bot stole my name (I'm Hannibal from Ars). I bet it's coming for my job, next.




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

Search: