Artificial Intelligence in Games

Artificial Intelligence in Games

2017 was an exciting year for artificial intelligence in games, seeing superhuman playing performance for Go, Chess, and Poker with clean and simple algorithms. However, playing-to-win is just one way AI can intersect with games. This graduate course explores a vastly broadened perspective on the use of AI in games and playable media: AI as adversary, actor, design assistant, designer, quality assurance tester, data analyst, player, tutor, etc. Combining elements from academic AI and machine learning with industry Game AI techniques, students will develop systems that control non-player characters (NPCs), assist designers in analyzing existing level designs and synthesizing new ones, and statistically model player behavior in a visually comprehensible way.

Class time will alternate between lecture and paper discussions while out-of-class time is split between reading and relevant AI programming exercises. During the last portion of the course, students will work in small teams to develop technical projects that either advance research or contribute to portfolios.

The course is open to all BSOE graduate students with previous algorithmic programming experience (e.g. you are able to implement Dijkstra’s algorithm). Previous exposure to Python programming will be beneficial but is not required. Previous exposure to academic AI (CMPS 140/240 or CMPM 146) is similarly beneficial but not required. CS graduate students may petition to use this course for Interactive Computing And Gaming breadth category.

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


Adam M. Smith (


MWF 02:40PM-03:45PM, Soc Sci 1 145

Office Hours

Thursdays and Fridays from 1-2pm in E2-269 (office) or E2-256 (lab). We'll spill over from office to lab if the room fills up on a popular day, so you might have to check both locations.

Other times (possibly via videochat) available by appointment, email to ask.

Grading Policy

30% Reading (written discussion response to papers, blog posts, talk videos, etc.)

30% Programming (pair programming with rotating partners)

40% Research Project (in teams of 1-3, grading emphasizes demo presentation)

Until finals week, late work is subject to a penalty of 10% per week applied to the maximum points available, not as a multiplier on the score. 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.

Course Outline

[3 weeks] AI for playing games (searching for actions; policy representations; improvement by learning; modeling human players)

[3 weeks] AI for designing games (gameplay possibility analysis; content and rule synthesis; intelligent design support systems)

[2 weeks] Emerging opportunities for new applications (generative/adaptive game design; learning to test effectively; making AI/ML accessible to game design practitioners)

[2 weeks] Research project development and peer support

[1 week] Research project presentating and writeup

Detailed lecture plan TBA, publically-viewable slides will be linked below.

Lecture slides

Monday, Jan 8 L01: Course Intro

Wednesday, Jan 10 L02: Programming Project Previews

Friday, Jan 12 L03: Industrial AI and Academic AI

Monday, Jan 15 (no class, MLK day)

Wednesday, Jan 17 L04: State and Action Graphs

Friday, Jan 19 L05: Discussion

Monday, Jan 22 L06: Inventing Tree Search

Wednesday, Jan 24 L07: Game AI Twitter / MCTS

Friday, Jan 26 L08: MCTS Discussion and P3 technical introduction

Monday, Jan 29 L09: Policy Representations

Wednesday, Jan 31 L10: Player Modeling

Friday, Feb 2 P4 technical introduction

Monday, Feb 5 L11: Guided Discussion

Wednesday, Feb 7 L12: Guest Lecture on MonsterCarlo

Friday, Feb 9 (cancelled, Adam sick)

Monday, Feb 12 Miscellaneous discussion and program grading

Wedesday, Feb 14 P5 technical introduction and Discussion

Friday, Feb 16 L13: Supporting Human Designers

Monday, Feb 19 (no class, President's Day)

Wednesday, Feb 21 Technical introduction to P6

Friday, Feb 23 L14: Final Project Introductions

Monday, Feb 26 Discussion

Wednesday, Feb 28 Discussion

Friday, Mar 2 Brainstorming for visitor

Monday, Mar 5 Fireside Chat with Harold Chaput (Electronic Arts)

Wednesday, Mar 7 Progress Presentation Format

Friday, Mar 9 First Progress Presentations

Monday, Mar 12 L15: Search in Continuous Spaces and First Progress Presentations

Wednesday, Mar 14 Second Progress Presentations

Friday, Mar 16 Second Progress Presentations

Tuesday, Mar 20 Final Presentations


Course Summary:

Date Details