Artificial Intelligence in Games

Recent years have seen an explosion of interest in game playing as a testbed for artificial intelligence, with superhuman performance in traditional games such as Go, Chess, and Poker,  as well as superhuman performance on videogames that had previously resisted reinforcement learning methods, such as Montezuma's Revengebeating the world champion Dota 2 team, and defeating professional players in Starcraft II.  However, playing games is just one way AI can intersect with games, a way that is less about games as a medium and more about games as a testbed for evaluating AI algorithms. There are many other potential roles for AI in the context of games: as adversary, actor, design assistant, designer, quality assurance tester, data analyst, player, tutor, and so forth. This graduate course focuses on AI-based game design, that is, the use of AI techniques to enable new player interactions, game mechanics and genres. Combining elements from academic AI and machine learning with industry game AI techniques, students will learn the technical details of various techniques, as well as brainstorm and develop novel game designs that leverage one or more techniques. 

Class time will alternate between lecture and paper discussions while out-of-class time is split between reading and relevant AI programming exercises. The programming exercises will emphasize using AI tools and frameworks, such as Unity's experimental AI planner, and machine learning frameworks or trained models, rather than implementing AI algorithms from scratch. During the last portion of the course, students will work in small teams to develop technical projects that prototype the use of AI techniques to enable a unique design. 

The course is open to all BSOE graduate students with previous programming experience. We will be using a variety of programming languages, including C# and python. The course will not focus on programming language details, so you should have enough prior programming experience to feel comfortable picking up a new language "on the fly" (if you don't already know it). Previous exposure to AI (e.g. CMPS 140/240 or CMPM 146) is beneficial but not required. 

Request a permission code via email or get one in person after lecture during the first week of class.

Instructor

Michael Mateas (michaelm@soe.ucsc.edu)

Lecture

T Th 11:40am - 1:15pm, Kresge 323

Office Hours

Monday, 1:30-2:30
Thursday, 1:30 - 2:30

E2 373 (will move to E2 393 if multiple people show up)

Grading

  • 30% Reading, video and game responses
  • 30% Pair programming projects (w/ rotating partners)
    • Three projects, 10% each
  • 40% Team final project (teams of 1-3)
    • Grading is based on demo presentation and short writeup

10% off maximum points per week for late work, submittable up to the end of week 10 (finals week). Additionally, there will be no late penalty for resubmissions of work that earned at least 20% of the available points by the original date. No late work will be accepted during finals week without prior arrangement.

Classes

Thursday, September 26
Lecture slides
Install the following:

Watch this 46 minute video from Unity Labs about the AI Planner. AI For Behavior: Advanced Research for Intelligent Decision Making

Tuesday, October 1
Visitors from Unity AI Labs are giving a guest lecture about the planner. 
Unity Lecture Slides 

Course Summary:

Date Details Due
CC Attribution This course content is offered under a CC Attribution license. Content in this course can be considered under this license unless otherwise noted.