Computer Science 380:
Artificial Intelligence and Computer Games

Spring 2009

Mon/Wed, 10:00-11:25pm in Searles 224

In the same way that robotic soccer has become a popular test-bed for robotics research, computer games are becoming an increasingly utilized test-bed for the development of new techniques in certain areas of artificial intelligence (AI) research (e.g. knowledge representation; search; planning, reasoning, and learning under uncertainty). At the same time, AI techniques are becoming increasingly necessary in commercial computer games to provide interesting, realistic synthetic characters (entities, human or otherwise, that assist or oppose the game player). This course will explore that symbiosis by studying a subset of AI techniques that are relevant to the creation of synthetic characters in computer games, using these techniques to create AI-endowed synthetic characters (e.g. characters that can learn from their experience and thus not become predictable), and testing them in actual computer games.

Instructor: Stephen Majercik, 222 Searles, 725-3106,  
Office Hours: Mon, 1:00-2:00 pm; Thur, 1:30-2:30 pm, or by appointment
Class E-mail:


Ahlquist Jr., J. B. and Novak, J., Game Development Essentials: Game Artificial Intelligence, Thomson/Delmar Learning, 2008.

Millington, I., Artificial Intelligence For Games, Elsevier/Morgan-Kaufmann, 2006.

very optional:
Rabin, S., ed., AI Game Programming Wisdom 1, Charles River Media, 2002.
Rabin, S., ed., AI Game Programming Wisdom 2, Charles River Media, 2004.
Rabin, S., ed., AI Game Programming Wisdom 3, Charles River Media, 2006.
Rabin, S., ed., AI Game Programming Wisdom 4, Charles River Media, 2008.

CS 210
Strong programming skills will be critical.

Projects 1
Final Report and Presentation 2
Class Contributions 310%

1 For some of the projects I will meet with the individual or team who developed the project to discuss their submission and have them demonstrate its excellence.
2 Each BattleCode team will write a final report and make a presentation explaining the design of their team.
3 This includes the usual class participation, discussion of papers we will read, posts to the Blackboard Discussion Board, and bringing relevant articles, demos, web pages, news events, etc. to the attention of the class.

Students are expected to follow Bowdoin's Computer Use Policy and its Academic Honor Code. In particular: All submitted materials must be original and may not be derived from other sources. It is permissible to use software and materials available from other sources (understanding that you get no credit for those sections where you have used the work of others) if: 1) You indicate explicitly which aspects of your assignment were taken from other sources and what those sources are. 2) The materials are freely and legally available. 3) The material was not created by a student at Bowdoin this year or in prior years.

Since this is an upper-level, project-based course with a significant group-work component, a higher degree of collaboration will be allowed. I will define this more specifically as the course unfolds, but, for example, giving code to or receiving code from someone not in your group is prohibited. Also, note that once you have finished the course, sharing your code with other students is prohibited. Any violation is grounds for me to initiate an action that would be filed with the Dean's office and come before the Judicial Board. If you have any questions about this policy, PLEASE do not hesitate to contact me. This is a zero-tolerance policy.


Week: Topic Reading 
Introduction to Game AI
2 and 3
Get up to speed with BattleCode
4, 5, 6, and 7
Small BattleCode Projects
8, 9, and 10
Intermediate BattleCode Projects
11, 12, and 13
Final Team Work
Exam Week
Final Project Presentations and Competition