EAE 6900 - Artificial Intelligence for Games

Overview

In this course we will examine both traditional and modern artificial intelligence (AI) techniques that are used in the design of computer games. We will look for techniques for game playing as well as the design of AI agents tasked with creating targeted experiences for players. The course will begin with a discussion of AI in general, as well as common algorithms, data structures, and representations. From there, we will cover topics in character movement, pathfinding, decision making, strategy, tactics, and learning — all within the context of computer game design.

There is a vast array of artificial intelligence techniques available for the design of computer games. This course conceptually groups them into two broad categories: Traditional and Modern. Traditional techniques are ones that most game AI engineers are expected to intuitively know and are themselves classified into two types: Character AI (encompassing animation, physics, movement, and decision making) and Group AI (encompassing group dynamics, behavior, and strategy). Modern techniques are ones that are receiving a lot of attention in the modern games industry. While there is no systematic classification of modern techniques, I have selected classes of techniques that students, practitioners, and academics are actively interested in. These are: Procedural Content Generation, Player Modeling, Interactive Storytelling, and Learning. We will also cover select cases from the industry that I feel are landmark developments in the field.

Objectives

In this course, I will cover:

  • Traditional artificial intelligence techniques within computer game design and development, which focus on non-player character movement and behavior.
  • Modern artificial intelligence techniques within computer game design and development of interest to students, practitioners, and academics.
  • How to evaluate computer game artificial intelligence techniques in terms of runtime performance and overall effect to the player’s experience.
  • Important and developing industry cases for the development of artificial intelligence techniques in computer games.

Expected Learning Outcomes

  1. Develop software code for a range of artificial intelligence techniques used in traditional and modern computer games.
  2. Describe the performance of artificial intelligence techniques used in traditional and modern computer games.
  3. Choose, develop, explain, and defend the use of particular artificial intelligence techniques for solving particular game design problems.
  4. Evaluate the relative benefits and drawbacks of different artificial intelligence techniques that can be used to solve computer game design problems.
  5. Identify and examine state-of-the-art artificial intelligence techniques from the industry and academia to solve computer game design problems.

Examinations

None.

Grading

Evaluation Methods and Criteria. This class is designed as a multiplayer role-playing game. Class time will be divided between completing quests (reading reflections, presentations) and crafting (assignments, project). There will be no bosses (examinations).

You begin on the first day of class as a Level One Pupil with 0 experience points (XP). Level Twelve is the highest level you can achieve. Your level will be determined by XP on a 2000 XP scale. Your XP maxes out at 2000, but there is more than 2000 XP available to earn in this game. You earn XP by completing tasks (quests and crafting). The tasks vary in amount of possible XP you can possibly earn. Note that merely attempting a task is not a guarantee of XP. This is because XP is not a reward, it is a measure of your mastery; you must exhibit mastery to have your XP reflect it.

  • Assignments (up to 1200XP) — There will be three multi-week homework assignments, or mini-projects, related to the lecture material; with each, you can earn up to 400XP. These assignments will require you to implement and/or evaluate some of the algorithms or techniques we are covering during course lectures and will result in increasingly sophisticated AI implementations. These assignments are one way of assessing Learning Outcomes 1, 2, and 4. More details of the assignments can be found on the course website.

  • Term Project (up to 600XP) — There will be a semester-long group project on a topic of your choosing (approved by the instructor). The project is an 8-week student-directed inquiry, with which you can earn up to 600XP. The goal of the project is to explore a game AI technique within a working game. A successful project will likely bring together one or more of the techniques we discuss in class to produce a designed experience. You should also devise a method to evaluate the performance of your technique. By default, the group project will consist of building software that implements an AI technique for an EAE Masters Thesis game. However, your choice of game and AI technique is completely up to you and your teammate(s). Bear in mind that your AI technique should enable something interesting to occur in the game that didn’t already occur before your implementation. This group project is one way of assessing Learning Outcome 3 and 4. More details of the group project will be found on the course website.

  • Game AI Competition Bots (up to 600XP) — Every year, Game AI researchers host a variety of Game AI competitions to advance the state-of-the-art in their respective subfields. You may “enter” into a competition — in other words, develop an AI system capable of competing as well as a writeup of your system — and earn up to 600XP. There are several competitions that are well-known, which I recommend:
    The General Video Game AI Competition
    The Mario AI Competition: Level Generation Track
    The Multi-Agent Reinforcement Learning in Minecraft [MARLO] Competition
    If you are interested in pursuing this, you must let the instructor know no later than the 9th week of the semester (before leaving for Spring Break) via a letter of intent. This competition is one way of assessing Learning Outcomes 3, 4, and 5. More details of the Game AI Competition Bots will be found on the course website.

  • Reading Reflections (up to 300XP) — During the course of the semester, you may turn in 10 critical reading reflections showing deep understanding of state-of-the-art artificial intelligence techniques from the industry and academia to solve computer game design problems; with each, you can up to 30XP. This reflection can take many forms: a one-page paper (600-700 words approximately), a YouTube video of approximately 7 (edited!) minutes, a 2-page comic, an infographic, an interpretive dance…or anything else you can think of, so long as it shows a clear connection to and understanding of the state-of-the-art techniques. These reflections are one way of assessing Learning Outcome 5. More details of the reading reflections can be found on the course website.

  • GDC AI Summit Review (up to 200XP) — The Game Developer’s Conference (GDC) offers two days of Summits: in-depth, focused, full-day gatherings of professionals centered on discussing specific aspects of game design and development. The AI Summit focuses on key AI architectures and issues within successful commercial games. In the week after GDC, you may sign up to give a 25-minute talk that covers your in-depth experience at this year’s AI Summit, for which you can earn up to 200XP. Because we have a finite amount of time, there are six slots, assigned first-come first-served. Students selected to present will be expected to lead a discussion of their experience. This review is one way of assessing Learning Outcome 5. More details of the GDC AI Summit Review will be found on the course website.

Tasks also vary in type. There are three types. These types do not affect your standing in class and are primarily for your own understanding of the kind of task you are pursuing. Of all the available XP you can earn, I have tried to ensure as close a balance between available Programming, Engineering, and Research task XP. While all types of XP are equally valid (for your letter grade) and important (for your career), the distribution of your XP will determine what class (type of professional) you evolve into. Classes are only available when you get to 1400XP.

At 1400 XP (Level 5) and above, you may earn your class:

  • Enchanter (600XP in Programming)
  • Warforged (600XP in Engineering)
  • Arcanist (600XP in Research)

At 1600 XP (Level 8) and above, you may earn your specialization:

  • Technotheurge (Warforged + 350XP in Research or Arcanist + 350XP in Engineering)
  • Gadgeteer (Warforged + 350XP in Programming or Enchanter + 350XP in Engineering)
  • Magewright (Arcanist + 350XP in Programming or Enchanter + 350XP in Research)

At 1800 XP (Level 11) and above, you may earn the title:

  • Guild Master (600XP in Programming + 600XP in Engineering + 600XP in Research)

Grade Scale. This course uses the XP curve outlined below (adapted from the standard grading scale for the University of Utah). I will not strive for game balancing (in other words, grade on a curve), at least not in the traditional sense. This means that it is possible for everyone in the class to get to level 12.

Excellent performance, superior achievement

  • Level 12 (1860 XP) [A; 4.0]
  • Level 11 (1800 XP) [A-; 3.7]

    Good performance, substantial achievement

  • Level 10 (1740 XP) [B+; 3.3]
  • Level 9 (1660 XP) [B; 3.0]
  • Level 8 (1600 XP) [B-; 2.7]

    Standard performance and achievement

  • Level 7 (1540 XP) [C+; 2.3]
  • Level 6 (1460 XP) [C; 2.0]
  • Level 5 (1400 XP) [C-; 1.7]
  • Level 4 (1340 XP) [D+; 1.3]

    Substandard performance, marginal achievement

  • Level 3 (1260 XP) [D; 1.0]
  • Level 2 (1200 XP) [D-; 0.7]

    Unsatisfactory performance and achievement

  • Level 1 (0 XP) [F; 0.0]

Schedule

The schedule is subject to change pending student interests and background. The official schedule will be kept on the course webpage, and will be updated periodically to reflect changes as the semester progresses. It is the student’s responsibility to check the schedule regularly for changes. The instructor will communicate any changes in deadlines to students in a timely manner via email and/or announcements in class.

  • Week 1 (1/10/19) Syllabus Discussion; Introduction: Roles of AI in Game design, Models of Game AI, Complexity; Movement: Kinematics, Steering Behaviors
  • Week 2 (1/17/19) Movement: Coordinated Behaviors; Pathfinding: Navmeshes [Reading Reflection 1]
  • Week 3 (1/24/19) Pathfinding: Graphs, Search, Motion Planning [Reading Reflection 2]
  • Week 4 (1/31/19) Decision Making: Decision Trees, State Machines, Behavior Trees, Fuzzy Logic [Assignment 1; Reading Reflection 3]
  • Week 5 (2/7/19) Decision Making: Goal-Oriented Behavior, Rule-based Systems, Action Execution [Informal Project Proposal; Reading Reflection 4]
  • Week 6 (2/14/19) Decision Making/Strategy: Blackboard, Waypoint Tactics, Tactical Analyses [Reading Reflection 5]
  • Week 7 (2/21/19) Decision Making/Strategy: Game Theory, Minimaxing, Utility Theory [Formal Project Proposal; Reading Reflection 6]
  • Week 8 (2/28/19) Learning: Decision Tree Learning, Naive Bayes, Reinforcement Learning, Artificial Neural Networks [Assignment 2; Reading Reflection 7]
  • Week 9 (3/7/19) Artificial Stupidity, Intelligent Mistakes, Games: Halo: Combat Evolved, F.E.A.R., Left4Dead, Alien: Isolation [Reading Reflection 8; Game AI Competition Letter of Intent]
  • Week 10 (3/14/19) Spring Break (No Class)
  • Week 11 (3/21/19) Instructor out on travel for GDC (No Class)
  • Week 12 (3/28/19) GDC AI Summit Review [GDC AI Summit Review Presentation; Project Progress Report]
  • Week 13 (4/4/19) Interactive Storytelling: Automatic Camera Control, Procedural Narrative Generation [Assignment 3; Reading Reflection 9]
  • Week 14 (4/11/19) Procedural Content Generation: PCG Mechanics-Dynamics-Aesthetics, Perlin Noise, WaveFunctionCollapse [Reading Reflection 10]
  • Week 15 (4/18/19) Player Modeling: Model-based v. Model-free Approaches [Game AI Competition Software and Report]
  • Week 16 (Final Exam; TBD Date) Game AI Project Presentations [Project Software, Report, and Presentation]

Class Details

Term: Spring 2019

Location: M LI 1009

Date and Time: Th / 06:00PM-09:00PM

Instructor: Rogelio E. Cardona-Rivera

Website:

TBD

Syllabus:

Syllabus-S19

Prerequisites:

"C-" or better in EAE 6310 OR Permission of the Instructor.

Format:

This course will primarily be lecture-based, with in-class discussions around material, assignments, and projects and out-of-class assignments, projects, and reflections.

Textbook:

This class is designed around the following textbook:

  • Millington, Ian, and John Funge. Artificial Intelligence for Games (2nd Ed.). CRC Press, 2009.

The above textbook is suggested, but is not required. I have found it to be a useful reference book to own. In addition, other texts that will be referenced in this class are:

  • Yannakakis, Georgios N., and Julian Togelius. Artificial Intelligence and Games. Springer, 2018
  • Mark, D. "Behavioral Mathematics for Game AI. Charles River Media." (2009).

Elsewhere on the Web

Address

Merrill Engineering Building, #3153
50 Central Campus Drive
Salt Lake City, UT, 84112, USA