This weekend a 24 hours optimization challenge was being held. The game was simple, you were controlling a character with a gun on a top-down view, where you needed to save humans and kill zombies. The field was relatively big being 16.000 units wide and 9.000 units tall. The goal of the challenge was to reach the highest score of all participants.

Scoring came from two factors. Once you’ve killed a zombie the base score was calculated based on the number of humans alive, (humans * humans * 10), multiplied by the zombies killed in the same turn based on the following rule: nth zombie killed is multiplied by the (n+2)th number of the fibonacci sequence.

In this competition I haven’t tried solving it with AI techniques, instead focusing on developing a rule-set, which can lead to glory. I came up with an idea, on each turn simulating the game until all humans were killed, then looking at the most threatening zombies killing the most number of humans, then looking at what is the earlier point I can terminate them. If this was in a position where I can get in time, I’ve advanced the game to that specific turn, calculated which circles can cover the most zombies around that area (taking in account the range of the gun to go for higher combos), and going for the most rewarding one.

Unfortunately as it turned out, the most points could’ve been achieved by actually ignoring the humans, keeping only one alive, and going for the highest combo possible. Like in this video:

Rankings are:
Global: 441/3,963
Hungary: 12/91

I’m really looking forward being able to play this game as a Puzzle, as it turned out the highest points have been achieved by using different forms of the Monte Carlo Tree Search. I have lots of ideas to try out.