RESTwars (1): RESTwars using Operations Research

TL’DR: There is a new space game in the manner of the old browser games which offers a RESTful API for your bots to play. I intend to use all the optimization knowledge gained in my industrial engineering studies to build a bot and tell about it.

Do you remember the old browser games? OGame? Cruel Wars? You start out with a planet which you farm for resources, build different buildings and starships, try to conquer more planets, and fight other players for their resources. All that happened on (mostly atrocious PHP) websites which were merely a frontend for some random database server.

Back in my school days those crooks cost me countless lunch breaks, afternoons, and many hours of sleep. We even had different competing clans in our class. Everyone tried to gain an edge over the other guys and since I went to an technical secondary school that also meant writing some tools: Excel sheets for fleet and resource optimization, and later also bots which played the game for you.

The latter was a welcome way to fend of nightly attacks. Usually, someone had to stay up all night and warn the others in his clan about an incoming attack. If you were quick enough, you could send away your resources with transporter ships and did not loose any in the attack. Since enemy attacks could easily be discovered and the reaction was quite straight forward, this was destined to be automated by some hacky script.

The game hosts became aware of this technique rather fast and banned our accounts. This was understandable but also devastating since a lot of hard work was wasted and we had to start with new accounts in the middle of an already running round.

If we had not been kept from hacking our little bots and letting them fight against each other, we might have learned a whole lot about programming and maybe even creating game A.I.s to some extent. Of course, the interest in supporting presumably uprising hacker geniuses was a lot smaller than the profit gained from ad-watching customers which were shooed away by our cheating.

Now, over 10 years later, there is a GitHub project which aims to abolish this screaming injustice: RESTwars

But it is not about fighting teenage classmates anymore. In the meantime, I got a bachelor’s degree in industrial engineering and a master’s degree in systems engineering. I sat in endless production optimization courses and learned about machine scheduling, supply chain management, and operations research. I even worked for the Munich Institute of Production Management and Logistics for two years. Now, finally, after all this time - I found a way to put all this knowledge to good use: I will create bot for RESTwars, using as many optimization techniques as possible (and reasonable, to some degree).

I intend to write a blog post about every component I design and to explain the applied technique using the example of the game.

This way, I might remember all that stuff for a little longer and maybe someone even learns a thing or two. At least it will not cost me lunch breaks this time. Or afternoons. It might cost some hours of sleep, though ;).