Game AI, Summer 2013:
Project 1. Ms. Pacman Ghosts

Due: 5/22/13 at 11:55pm

Knowing the best place for an agent to move at any given time is a key element to almost any game AI. First person shooters, sports games, real-time strategy games, turn-based strategy games, etc. all share this common problem of needing to evaluate the current situation and decide where in space to move next and what action to take. This individual assignment focuses on movement in a semi-continuous 2D environment: Ms. Pac-Man.

This project will be using the IEEE Ms. Pac-Man vs. Ghost Team infrastructure for implementation. The description and distribution of the software can be found here: http://www.pacman-vs-ghosts.net/

This is an individual student project. You are to implement the 4 ghosts in a way that replicates the behavior of the original game. See http://gameinternals.com/post/2072558330/understanding-pac-man-ghost-behavior for a description of the original ghost behavior AI. (Note that when you read about the ghosts you will see that there was an error in the code resulting in ghosts that occasionally path planned to the wrong location. You may choose to replicate the bug as a feature, or correct the bug in your own implementation. In your write up, please indicate whether you are implementing the bug/feature or not.)

All ghosts are controlled by a single controller object that inherits from Controller. Modify pacman.entries.ghosts.MyGhosts so that it implements the behviors of the original ghosts. Create a single argument constructor for MyGhosts that takes a boolean that, when true, draws a line of the appropriate color (Red, Pink, Blue, or Orange) from the ghost to the cell on the game board that it wishes to travel to. This is for grading purposes; you will receive an "F" if you cannot draw the appropriately colored lines when the boolean is true.

One of the skills involved in this class is learning how to deal with integration issues with pre-existing engines. You are responsible for obtaining the code and using the resources provided with the competition. Please use Piazza for all online conversations and questions for the class community.

You will be given a little over 1 week for this assignment with suggested milestones:

Get up and running

  1. Unzip PacMan_v6.2.zip in a good spot. (original, with javadoc)
  2. Follow the quick starter guide under the "Run Software" tab. The "Import Files" step may be a little different for you, depending upon your version of Eclipse.
  3. Run the game engine (pacman.Executor)
  4. Modify pacman.entries.ghosts.MyGhosts
  5. Modify main() in pacman.Executor to use your implementation; you may also want to turn on human control of PacMan: exec.runGameTimed(new HumanController(new KeyBoardInput()),new pacman.entries.pacman.MyGhosts( true ),visual)

Hints

Writeup

Include a .txt or .pdf file that describes the following:

Submission

Submit via T-Square everything needed to run your agent, including the native pacman code, and your writeup.

Grading

This project is worth 20% of your final grade.