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 Nimar Arora, David Burkett, Jeremy Cowles, Dan Gillick, Aria Haghighi, Nick Hay, Ed Karuna, Jeremy Maitin-Shepard, Barak Michener, Aditi Muralidharan, Adam Pauls, and Daniel Urieli.
Search Project (search.zip)
Multi-Agent Search Project (multiagent.zip)
Reinforcement Learning Project (reinforcement.zip)
Multi-Player Contest (contest.zip) 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.
This project was supported by the National Science Foundation under CAREER grant 0643742. Any opinions, findings and conclusions or recomendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF).