Instructor: Michael Mateas
Email: michaelm at cs.ucsc.edu
Office: E2 373
Office hours: By appointment
Lecture: TTh 10:00-11:45 in Porter Academy 246
Game AI covers are wide range of technical issues in games, including navigation and pathfinding, non-player character behavior, strategic intelligence, content generation, conversational behavior, coordinated behavior, learning (e.g. player modeling, strategy learning, etc.), automatic camera control and more. Game AI is focused on player perception: successful game AI requires not only solving technical problems, but also combining design and technology in such a way as to craft a powerful and engaging player experience. This course will survey topics in contemporary game AI. Course work will involve weekly readings and a project.
Weekly writeup of readings: 20%. The weekly writeup should be about a page long and should be a reflection over the readings that week. Perhaps you strongly agreed or disagreed with one of the readings, and want to argue why. Perhaps the readings struck a chord with your own research, and you'd like to describe how the work relates to your work. Perhaps there's a strength or weakness of the approaches described in the reading that you'd like to explore. Or perhaps you'd just like to summarize the readings. Writeups are due, by email, by the next class session after a topic has been covered.
Project: 80%. You'll explore a game AI technique within a playable game. One approach that avoids building a whole game engine is to use an existing game engine (e.g. Never Winter Nights, Unreal Tournament) and hook your AI in as an external process.
Readings will consist of chapters from AI Game Programming Wisdom I, II, III, as well as research papers. Code and additional course materials are available here.
Visit this link to subscribe or unsubscribe to the course mailing list. Mailman will send you an initial email when you join the list. This email contains a link for editing your subscription preferences. Another way to edit subscription preferences is to visit the subscriber list (requires address and password - you'll see this on the mailing list page) and click on your address.
This will be updated as we move along.
An overview of the unique goals and challenges of game AI, and the relationship between game AI and traditional academic AI research.
The Evolution of Game AI. Paul Tozour. AI Game Programming Wisdom I, pp. 3-15.
Common Game AI Techniques. Steve Rabin. AI Game Programming Wisdom II, pp. 3-14.
Promising Game AI Techniques. Steve Rabin. AI Game Programming Wisdom II, pp. 15-27.
Artificial Stupidity: The Art of Making Mistakes. Lars Liden. AI Game Programming Wisdom II, pp. 41-48.
Fun Game AI Design for Beginners. Matt Gilgenbach. AI Game Programming Wisdom III, pp. 55-63.
Expressive AI: Games and Artificial Intelligence. Michael Mateas. In Proceedings of Level Up: Digital Games Research Conference, Utrecht, Netherlands, Nov. 2003.
Expressive AI: A Hybrid Art and Science practice. Michael Mateas. Leonardo: Journal of the International Society for Arts, Sciences, and Technology, 34 (2), 2001. 147-153.
Pathfinding and navigation are the bread and butter of industrial game AI. Any NPC living in a 2D or 3D game world, regardless of genre, must be able to move about the game world in an effective and pleasing manner. Additionally, an understanding of A* is useful for understanding heurstic search methods in general.
Basic A* Pathfinding Made Simple. James Matthews. AI Game Programming Wisdom I, pp. 105-113.
Pathfinding Design Architecture. Dan Higgins. AI Game Programming Wisdom I, pp. 122-132.
Navigating Doors, Elevators, Ledges, and Other Obstacles. John Hancock. Game AI Programming Wisdom I, pp. 193-201.
Search Space Representations. Paul Tozour. AI Game Programming Wisdom II, pp. 85-102.
Avoiding Dynamic Obstacles and Hazards. Geraint Johnson. AI Game Programming Wisdom II, pp. 161-170.
Flow Fields for Movement and Obstacle Avoidance. Bob Alexander. AI Game Programming Wisdom III, pp. 159-172.
Steering Behaviors for Autonomous Characters. Craig Reynolds. In The Proceedings of The Game Developers Conference 1999, pp. 763-782. Craig maintains a resource page on steering behaviors.
Amit's Patel's Game Programming pages, specifically, for this week, his page on pathfinding.
The Ultimate Guide to FSMs in Games. Dan Fu and Ryan Houlette. AI Game Programming Wisdom II, pp. 283-301.
Stack-Based Finite State Machines. Paul Tozour. AI Game Programming Wisdom II, pp. 303-306.
A Subsumption Architecture for Character-Based Games. Eric Yiskis. AI Game Programming Wisdom II, pp. 329-337.
An Introduction to Behavior-Based Systems for Games. Aaron Khoo. AI Game Programming Wisdom III, pp. 351-364.
Training Digital Monsters to Fight in the Real World. James Boer and John Corpening. AI Game Programming Wisdom III, pp. 431-443.
A Behavior Language: Joint Action and Behavioral Idioms. Mateas, M. and Stern, A. In H. Prendinger and M. Ishizuka (Eds), Life-like Characters: Tools, Affective Functions and Applications, Springer, 2004.
It Knows What You're Going to Do: Adding Anticipation to a Quakebot. John Laird. Proceedings of Agents 2001.
Project proposals due Jan. 30.
Note about project proposals: Proposals should be a couple of pages long, and should describe the main idea of the project, the player effect you are trying to produce, and your technical strategy for the project. Your technical strategy should describe possible approaches, which approach you’re pursuing, and what you still need to figure out to do the project. You should also describe any tools and engines (e.g. open-source game engines) you plan on incorporating in the project. The purpose of the proposal is to really develop a plan for accomplishing your project (and convincing me that you’ve thought about it and really have a plan). As described in class, projects can be individual or group projects. Groups should be no larger than three members. Expectations for group projects will be higher.
Applying Goal-Oriented Action Planning to Games. Jeff Orkin. AI Game Programming Wisdom II, pp. 217-227.
Agent Architecture Considerations for Real-time Planning in Games. Jeff Orkin. Proceedings of AIIDE 2005.
Hierarchical Planning in Dynamic Worlds. Neil Wallace. AI Game Programming Wisdom II, pp. 229-236.
An Intent-Driven Planner for Multi-Agent Story Generation. Mark O. Riedl and R. Michael Young. Proceedings of the 3rd International Joint Conference on Autonomous Agents and Multi Agent Systems, New York, 2004.
Social Activities: Implementing Wittgenstein. Richard Evans and Thomas Barnet Lamb. Gamasutra, 2002.
Strategies for Strategy Game AI. Ian Davis. Mad Doc Software. Try this html cached version if Mad Doc's site is down.
Improving Adaptive Game AI with Evolutionary Learning. Marc Ponsen and Pieter Spronck. Computer Games: Artificial Intelligence, Design and Education (CGAIDE 2004) (eds. Quasim Mehdi, Norman Gough, Stephane Natkin and David Al-Dabass), pp. 389-396. University of Wolverhampton.
Requirements for resource management game AI. Steven de Jong, Pieter Spronck, Nico Roos. IJCAI-05 Workshop on Reasoning, Representation, and Learning in Computer Games (eds. David W. Aha, Hector Munoz-Avila, and Michael van Lent), pp. 43-48. Naval Research Laboratory, Navy Center for Applied Research in Artificial Intelligence, Washington, DC.
Monte Carlo Planning in RTS Games. Michael Chung, Michael Buro, and Jonathan Schaeffer. IEEE Computational Intelligence in Games 2005, Colchester, UK 2005.
A Dynamic Reputation System Based on Event Knowledge. Greg Alt. AI Game Programming Wisdom I, pp. 426-435.
Opinion Systems. Adam Russell. AI Game Programming Wisdom III, pp. 531-554.
Hierarchical Parallel Markov Models of Interaction. Rob Zubek and Ian Horswill. In Proceedings of Artificial Intelligence and Interactive Digital Entertainment (AIIDE 2005), Marina del Rey, CA. 2005. The technical work described in this paper was used to implement The Breakup Conversation. Play with The Breakup Conversation to get a sense for how his approach can induce temporal structure in an Eliza-like dialog.
Chapter 10 from Interactive Drama, Art and Artificial Intelligence: Natural Language Processing in Facade. Michael Mateas. Ph.D. Thesis. Technical Report CMU-CS-02-206, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA. December 2002.
Varieties of Learning. Richard Evans. AI Game Programming Wisdom I, pp. 567-578.
Modification of UCT with patterns in Monte-Carlo Go. Sylvain Gelly, Yizao Wang, Rémi Munos, and Olivier Teytaud. Technical Report 6062, INRIA, France, November 2006.
Player Modeling for Adaptive Games. Ryan Houlette. AI Game Programming Wisdom II, pp. 557-566.
Random Map Generation for Strategy Games. Ryan Houlette. AI Game Programming Wisdom II, pp. 405-412.