Course Syllabus
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 Links to an external site., and Poker Links to an external site., as well as superhuman performance on videogames that had previously resisted reinforcement learning methods, such as Montezuma's Revenge Links to an external site., beating the world champion Dota 2 team Links to an external site., and defeating professional players in Starcraft II Links to an external site.. 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
Links to an external site.
Install the following:
- Unity Links to an external site.
- Unity AI Planner (instructions in the planner documentation Links to an external site.)
- Install the Otto demo for the AI planner Links to an external site.
Watch this 46 minute video from Unity Labs about the AI Planner. AI For Behavior: Advanced Research for Intelligent Decision Making
Links to an external site..
Tuesday, October 1
Visitors from Unity AI Labs are giving a guest lecture about the planner.
Unity Lecture Slides
Links to an external site.
Course Summary:
Date | Details | Due |
---|---|---|
Mon Sep 30, 2019 | Assignment Response 1 | due by 11:59pm |
Wed Oct 2, 2019 | Assignment Response 2 | due by 11:59pm |
Mon Oct 7, 2019 | Assignment Response 3 | due by 11:59pm |
Wed Oct 9, 2019 | Assignment Response 4 | due by 11:59pm |
Wed Oct 16, 2019 | Assignment Response 5 | due by 11:59pm |
Tue Oct 22, 2019 | Assignment Programming Assignment 1: Unity Planner | due by 11:59pm |
Thu Oct 24, 2019 | Assignment Response 6 | due by 11:59pm |
Mon Oct 28, 2019 | Assignment Response 7 | due by 11:59pm |
Wed Oct 30, 2019 | Assignment Response 8 | due by 11:59pm |
Tue Nov 5, 2019 | Assignment Programming Assignment 2: GPT-2 Text Generation | due by 11:59pm |
Wed Nov 6, 2019 | Assignment Response 9 | due by 11:59pm |
Mon Nov 11, 2019 | Discussion Topic Final Project Ideas | due by 11:59pm |
Wed Nov 13, 2019 | Assignment Response 10 | due by 11:59pm |
Thu Nov 14, 2019 | Assignment Programming Assignment 3: Social Simulation with Ensemble | due by 11:59pm |
Assignment Proposal Document | due by 11:59pm | |
Mon Nov 18, 2019 | Assignment Response 11 | due by 11:59pm |
Thu Nov 21, 2019 | Assignment First Progress Presentation | due by 11:30am |
Tue Dec 3, 2019 | Assignment Second Progress Presentation | due by 10am |
Tue Dec 10, 2019 | Assignment Technical Report | due by 11:59pm |
Wed Dec 11, 2019 | Assignment Final Presentation | due by 8am |