Asteroids - Learning AI


My buddy Joe and I have started working on a (reinforcement) learning AI for continuous state games (eg. physics-based movement). The dream is to create an AI that can learn a game like Rocket League, where we thrust it into ranked matches against real people and watch how it grows. Of course, Rocket League would be a pretty hard game to swallow, especially since neither of us are very experienced with machine learning. So we are making a simpler 2D game in Unreal Engine as a dummy for testing. Here is a short pre-alpha video teaser of the game.




As you can see, the game is going to be a 1v1 asteroids multiplayer game where the purpose is to have more energy than your opponent (death at zero). Colliding with an asteroid, thrusting the ship, and firing and getting hit by bullets (yet to be implemented), all cause your energy to drain. The only way to gain energy is to collect the floating green orbs. Movement is similar to classic asteroids, but you also have the ability to thrust in reverse, albeit with a weaker force. Bullets can only be fired forward, so the reverse movement is useful if you are being chased. We expect the simple controls and the concept of energy to be quite amenable to AI.

We want to make the AI as general as possible so that it can be easily ported to other games in the same genre. The easiest way to do that is to capture every pixel of the screen. If you feed in individual pixels however, you are essentially seeding your AI so that it's an infant that first needs to learn how to see. Techniques for such computer vision are certainly interesting, and they have been successful at playing Atari games, but we do not want to go quite that deep. Indeed we don't even have the computing power to do so. Humans learn to play new games with a certain prerequisite; they already know how to see and identify objects. Our brains capture the positions, velocities, etc of the different objects and we control the pawn based on those parameters. We plan to send such high level information to the AI as input. There is a balance of course. We aren't going to hardcode any advanced maneuvers (such as homing in on the green energy orbs). That would defeat the purpose.


The project will probably be slow going since I am working on other games and Joe is in graduate school half a country away, but be sure to come back to this webpage for periodic progress reports.

No comments:

Post a Comment