The Pac-Man projects were developed for UC Berkeley's introductory artificial intelligence course, CS 188. They apply an array of AI techniques to playing Pac-Man. However, these projects don't focus on building AI for video games. Instead, they teach foundational AI concepts, such as informed state-space search, probabilistic inference, and reinforcement learning. These concepts underly real-world application areas such as natural language processing, computer vision, and robotics.
We designed these projects with three goals in mind. The projects allow students to visualize the results of the techniques they implement. They also contain code examples and clear directions, but do not force students to wade through undue amounts of scaffolding. Finally, Pac-Man provides a challenging problem environment that demands creative solutions; real-world AI problems are challenging, and Pac-Man is too.
In our course, these projects have boosted enrollment, teaching reviews, and student engagement. The projects have been field-tested, refined, and debugged over multiple semesters at Berkeley. We are now happy to release them to other universities for educational use.
You are welcome to use the Pac-Man projects and infrastructure for any educational or personal use. We ask only that you:
The projects are sufficiently complicated that we strongly suggest that you use our testing and deployment infrastructure. Due to the sensitive nature of this material, it is available to instructors by request only. Email us with Pac-Man in the subject and we will provide you with the instructor package, which includes:
This package includes some documentation about how to deploy projects, run the contest, and etc. We are also happy to help make sure that the projects are a successful addition to your course.
Contact Information: Email us at denero@cs.berkeley.edu and/or klein@cs.berkeley.edu. The Pac-Man projects were developed primarily by John DeNero and Dan Klein. Many others have contributed to the projects, including Aria Haghighi, Dan Gillick, David Burkett, Jeremy Maitin-Shepard, Aditi Muralidharan, Jeremy Cowles, Nick Hay, Nimar Arora, Adam Pauls, Barak Michener, and Ed Karuna.
The Pac-Man projects are written in pure Python 2.5 and do not depend on any packages external to a standard Python distribution. The server code for the multi-player contest does have some dependencies, described in the instructor package.