1. Paper Abstract/Summary
The purpose of this project is to apply AI to a game that we will write. Luca and I were both particularly interested in creating a game where we could program the computer to be so good that it would actually beat us in our own game. We are hoping to create a game that will combine pathfinding, physics, and possibly even predictive movement by the computer.
We want to make a tank game that will focus mostly on pathfinding and graphics. The graphics are important because we want to make a game that looks professional, doesn’t have lag time, and can handle many dynamic objects on the screen at once. Pathfinding is another crucial aspect to the game. A game with an easily beatable tank would not be fun to play, so the tank needs to be able to calculate and pursue the fastest path to a constantly moving target.
Luca and I are going to make our own version of Tank Trouble. The game is set in a maze, with one human-controlled tank and one computer-controlled tank (although we plan on including more than one AI tank in our game). The left and right arrows rotate the tank and the up and down arrows move the tank forward and backward. When a certain button is pressed, the tank fires a bullet. The aim of the game is to blow up the opposing tank. Bullets bounce off of walls, increasing the difficulty and complexity of the game. The computer-controlled tank should be able to seek out where the player’s tank is, find a quick path to it, predict where it will move to, and shoot both at where the tank is and where it predicts the other tank may travel to.
4. Previous Work
Pathfinding and shooting has been implemented in thousands of games. Beyond the original Tank Trouble game that we are partially trying to emulate, pathfinding and shooting appear in many 2D games and a lot of 3D video games, like Halo, Call of Duty, and Battlefield Bad Company. Even games like Super Smash Bros rely on pathfinding and fighting technique so the computer can adequately challenge the player. Any game that involves a computer character has components of pathfinding and following.
5. Current Problems in the Area
Computer scientists and game developers are constantly working to make computer opponents in games smarter and more efficient. While professionals have come up with many solutions to computer movement, we foresee ourselves running into some obstacles. Seeking out the player tank will be challenging because the player will be shooting at the computer tank, so it must avoid both bullets and walls while trying to home in on the player. Having the computer decide when to shoot will also be difficult.
6. Proposed Solutions
While we have not finished our research, we think that pathfinding and wall avoidance can be tackled by using A* or Dijkstra’s algorithm. The gif we looked at in class depicting the “thought-process” of A* resonated with both of us because it seemed to be a very logical way to find a direct path to another object while avoiding obstacles. To predict where the player will be if he is constantly moving, we thought that a Markov chain could help by looking at the past few movements and predicted from there. Dr. Holsclaw’s talk helped us identify a Markov chain as a possible way to predict movement. We can have the computer shoot when it finds a straight path that is unimpeded to the player’s tank.
Tank Trouble will be a very fun game to make because it combines graphics and autonomously intelligent computer opponents, both things that we have been learning in class. Both topics will challenge us, but the end result will be a game that looks clean and is fun to play. This is a game that I hope to bring home and show my friends and family to show them how computer science is functional and cool, and hopefully get them involved in the field of computer science and artificial intelligence.
8. Future Work
By learning and implementing AI in this game, any game that has a computer opponent would be possible for me to make (at least on a 2D level for now). This would be cool because I could make more games during the school year that use this framework. I am hoping to learn to code games in multiple languages as well.
Patel, Amit. “Amit’s A* Pages.” Red Blob Games. Red Blob Games, 2013. Web. 26