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.
In this course, I will cover:
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.
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:
At 1600 XP (Level 8) and above, you may earn your specialization:
At 1800 XP (Level 11) and above, you may earn the title:
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.
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.
Term: Spring 2019
Location: M LI 1009
Date and Time: Th / 06:00PM-09:00PM
Instructor: Rogelio E. Cardona-Rivera
"C-" or better in EAE 6310 OR Permission of the Instructor.
This course will primarily be lecture-based, with in-class discussions around material, assignments, and projects and out-of-class assignments, projects, and reflections.
This class is designed around the following textbook:
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: