Course Syllabus
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.
Instructor
Adam M. Smith (amsmith@ucsc.edu)
Lecture
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 Links to an external site.
Wednesday, Jan 10 L02: Programming Project Previews Links to an external site.
Friday, Jan 12 L03: Industrial AI and Academic AI Links to an external site.
Monday, Jan 15 (no class, MLK day)
Wednesday, Jan 17 L04: State and Action Graphs Links to an external site.
Friday, Jan 19 L05: Discussion Links to an external site.
Monday, Jan 22 L06: Inventing Tree Search Links to an external site.
Wednesday, Jan 24 L07: Game AI Twitter / MCTS Links to an external site.
Friday, Jan 26 L08: MCTS Discussion and P3 technical introduction Links to an external site.
Monday, Jan 29 L09: Policy Representations Links to an external site.
Wednesday, Jan 31 L10: Player Modeling Links to an external site.
Friday, Feb 2 P4 technical introduction Links to an external site.
Monday, Feb 5 L11: Guided Discussion Links to an external site.
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 Links to an external site. and Discussion
Friday, Feb 16 L13: Supporting Human Designers Links to an external site.
Monday, Feb 19 (no class, President's Day)
Wednesday, Feb 21 Technical introduction to P6 Links to an external site.
Friday, Feb 23 L14: Final Project Introductions Links to an external site.
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 Links to an external site.
Friday, Mar 9 First Progress Presentations
Monday, Mar 12 L15: Search in Continuous Spaces Links to an external site. 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 | Due |
---|---|---|
Wed Jan 10, 2018 | Quiz R0: Can you read me? | due by 2:39pm |
Assignment R1: Deep Blue | due by 2:39pm | |
Fri Jan 12, 2018 | Discussion Topic Discussion R1 | due by 2:39pm |
Discussion Topic Discussion R2 | due by 2:39pm | |
Assignment R2: Turing Tantrums 2017 | due by 2:39pm | |
Wed Jan 17, 2018 | Discussion Topic Discussion R3 | due by 11am |
Assignment R3: JPS+ | due by 11am | |
Fri Jan 19, 2018 | Discussion Topic Discussion R4 & R5 | due by 11am |
Assignment R4: General Game Playing | due by 11am | |
Assignment R5: General Videogame AI | due by 11am | |
Assignment P1: Dijkstra's in a Dungeon | due by 2:39pm | |
Mon Jan 22, 2018 | Discussion Topic Discussion R6 | due by 11am |
Assignment R6: G.O.A.P. in F.E.A.R. | due by 11am | |
Wed Jan 24, 2018 | Discussion Topic Discussion R7 | due by 11am |
Assignment R7: AlphaGo | due by 11am | |
Fri Jan 26, 2018 | Discussion Topic Discussion R8 | due by 11am |
Assignment R8: AlphaZero | due by 11am | |
Assignment P2: Mini-Minecraft Planner | due by 11:59pm | |
Mon Jan 29, 2018 | Discussion Topic R9: MCTS Survey | due by 11am |
Wed Jan 31, 2018 | Discussion Topic R10: Player Modeling Taxonomy | due by 11am |
Fri Feb 2, 2018 | Discussion Topic R11: Learnfun and Playfun | due by 11am |
Mon Feb 5, 2018 | Discussion Topic R12: Restricted Play | due by 11am |
Wed Feb 7, 2018 | Discussion Topic R13: Ludocore | due by 11am |
Fri Feb 9, 2018 | Discussion Topic R14: ANGELINA | due by 11am |
Assignment P3: MCTS for Dots and Boxes | due by 11:59pm | |
Assignment P4: Navmesh Pathfinding | due by 11:59pm | |
Mon Feb 12, 2018 | Discussion Topic R15: Artificial Intelligence at Electronic Arts | due by 11am |
Wed Feb 14, 2018 | Discussion Topic R16: Automated Game Design Learning | due by 11am |
Fri Feb 16, 2018 | Discussion Topic R17: Progression Analysis and Design | due by 11am |
Wed Feb 21, 2018 | Discussion Topic R18: Mixed-Initiative Design Tools | due by 11am |
Assignment P5: Mini-RTS Behavior | due by 11:59pm | |
Fri Feb 23, 2018 | Discussion Topic R19: AI-based Game Design | due by 11am |
Tue Feb 27, 2018 | Discussion Topic Post Three Project Ideas | due by 11:59pm |
Wed Feb 28, 2018 | Discussion Topic R20: Generating Tutorials from Thought Processes | due by 11am |
Assignment P6: Instant Feedback Design Tool | due by 11:59pm | |
Mon Mar 5, 2018 | Assignment Proposal Document | due by 2:39pm |
Mon Mar 12, 2018 | Assignment First Progress Presentation | due by 2:39pm |
Fri Mar 16, 2018 | Assignment Second Progress Presentation | due by 11:59pm |
Tue Mar 20, 2018 | Assignment Final Presentations | due by 7pm |
Thu Mar 22, 2018 | Discussion Topic Presentation slides link | due by 4pm |
Assignment Peer Evaluation Participation | due by 7pm | |
Fri Mar 23, 2018 | Assignment Technical Report | due by 11:59pm |