Me, Myself and AI

First week backĀ  at uni, starting the follow up class of Studio 1, Studio 2, and the first assessment is to create an AI bot that fights one on one with the bots from other classmates. Unfortunately, these aren’t the kind of bots you see on shows like “Battlebots”, but instead are small 2d sprites on a computer screen.

Each bot has 4 stats that their programmer can set (within a range unknown to us): Motor speed, bot health, bullet damage and bullet speed. If the programmer tries to increase a stat by an amount higher than whats allowed, all of the values will be normalized so that the values fit within the range. With this in mind, the programmers must decided what the best allocation of points is based on how they intend for the bot to behave.

Their are a few key elements to these fights. First, being able to detect enemies/bullets. Each bot has a per-determined field of view (FOV) and within this view they have the potential to see other bots and their bullets. Without this functionality, a bot could not shoot and every match would only result in a draw at best.

Secondly, movement/pathfinding. The bot must be able to move around independently, avoiding walls and maintaining some kind of movement that’s hard for the other bot to predict. We have all heard the expression “A sitting duck”. Path finding will be especially important in the second tournament, as it will be held inside of a predetermined maze.

I intend to create a bot that focuses heavily on bullet dodging, and uses a similar prediction method to Danik Game’s method that they posted on their blog in 2011. I won’t go too much into detail about it, on the off chance that a classmate reads my blog, but over the next few weeks I will be talking about my process on creating my bot.




I would also like to mention that I am very proud of the title of this blog post.