CS 4731 / CS 7632: Game AI (Spring 2018)

Course Number: CS 4731 / CS 7632
Time and Location: Tues/Thurs, 03:00-4:15pm, College of Business room 100
Instructor: Dr. Stephen Lee-Urban (Contact info -- also in syllabus)
My office Hours: By appointment. Centergy 9122 (Tech Square, 9th floor of 75 fifth st.). Bring student ID.
Teaching Assistants:

Abhinav Roy Burman
email: arb@gatech.edu
Office hours: see piazza
Cheng Hann Gan
email: gan@gatech.edu
Office hours: see piazza
Kelsey Hawkins
email: kphawkins@gatech.edu
Office hours: see piazza
Ankit Kaul
email: ankit.kaul@gatech.edu
Office hours: see piazza
Zhiyu Lin
email: zhiyulin@gatech.edu
Office hours: see piazza
Pradyumna Tambwekar
email: ptambwekar3@gatech.edu
Office hours: see piazza
Larry He
email: larry.he@gatech.edu
Office hours: see piazza

Quick Links: Syllabus (PDF) || Schedule || Piazza || T-square


Disclaimer: This syllabus and webpage is a mashup of the Game AI syllabi written by previous instructors of the course held at Georgia Tech.: Dr. Mark Riedl, Dr. Brian Magerko, and Dr. Brian O'Neill

The purpose of this course is for undergraduate and graduate students in Computing and related fields to gain a breadth of understanding of the toolbox of AI approaches employed in digital games. This involves learning some basic topics covered in other AI courses, but with a focus on applied knowledge within the context of digital games.

The discipline of (academic) Game AI was launched with a justification of interactive entertainment (i.e., computer games) as a domain of study in AI when it was posited that computer games could act as testbeds for achieving human-level intelligence in computers, leveraging the fidelity of their simulations of real world dynamics [c.f. `Human-Level AI's Killer Application: Interactive Computer Games' by Laird and van Lent]. There is an additional (industry) perspective on AI for games: increasing the engagement and enjoyment of the player. This perspective is consistent with the perspective of computer game developers. For them, AI is a tool in the arsenal of the game to be used in lieu of real people when no one is available for a given role. Lectures and projects will explores both of these views of Game AI, with an emphasis on the industry perspective. This course also observes the difference between AI as a technical challenge for opposing forces AI in games and the integration of AI as a key aesthetic component of the gaming experience. Lectures and projects will explores both of these views of Game AI.

Game AI is distinct from `academic AI' in that the end behavior is the target. Game AI programmers are less concerned with the underlying algorithms and more so with the end result. For example, if having an AI `cheat' provides a more entertaining experience, than cheating will likely be a main component of the design. There are also characteristics of many games that focus Game AI on specific problems, like navigation through a virtual world, tactics, and believable behavior. Academic AI researchers are more concerned with rational behavior, knowledge representations, robust multi-agent communication, etc. However, there are overlaps between the two domains, where the desired behavior requires less cheating and more realistic decision-making. This course will survey topics related to this overlap, with a focus on applying what we review in depth through implementations in digital games.

From the course catalog:

Learning Objectives

Students in this course will:


Course Communication

We will use Piazza as our main method of electronic communications and announcements. All students should join the "CS 4731" course. Students will be responsible for any announcements made there. The use of the group is a resource for technical and design issues. For assignment submissions, we will use T-square. As a means of avoiding confusion about where to look for information, we will primarily use Piazza for all communication this summer. Rather than emailing technical questions to me, I encourage you to post your questions on Piazza to foster community.

All emails to me regarding the course should contain GTGameAI in the subject. Failure to include this in the subject may result in misfiling of the email and a lack of response.

Assignment Policy

Assignments are due at 11:55pm via T-Square on the announced due date. Late work will not be accepted under any circumstances.

Grading Policy

Assignments, quizzes, and exams will constitute 100% of your grade [assignments (8): 70%; exams(2): 15% each]. Students will demonstrate their proficiency at Game AI material through a sequence of short-sprint (1-2 week) homework assignments and a self-directed capstone project. The sequence of homework assignments together comprises a full-scale project in which all aspects of the AI for a complete game are implemented. Failure to use backup and version control development practices is not a valid excuse for late or missing submissions.

You may lose up to 10% of your grade for failure to participate in class. I reserve the right to give unannounced quizzes (as a means to get us back on track) if attendance, participation, or completion of reading assignments fall below my expectations.

Extra Credit

There may be one or two optional homework assignments for extra credit toward one's final course grade. At least one of the extra credit projects will be to participate in a bot-versus-bot competition.

Additionally, there may be opportunities to participate in experiments run by graduate students performing AI research. I will announce opportunities as I become aware of them. Meeting certain criteria as a participant can result in additional 2 extra points added to your final grade. This cannot be used more than twice, although you may participate in as many experiments as you wish. See the extra credit policy for more information.

Regrade Request Policy

If you feel like the grade for a given project was not fair, please submit within 1 week (via email, with GTGameAI in the subject) of receipt of your grade a Word document or PDF containing the following:

Please keep in mind that a requested regrade will prompt me to revisit your project in much greater detail. Your grade may change for the better or worse depending on what I see, but will be responsive to any reasonable and well-founded requests. Requests submitted more than a week after your grades have been returned to you will not be accepted.

Honor Code

Students are expected to follow the GT Academic Honor Code. Some points to keep in mind:

Plagiarizing is defined by Webster's as to steal and pass off (the ideas or words of another) as one's own: use (another's production) without crediting the source. If caught plagiarizing, you will be dealt with according to the GT Honor Code FAQ. Submitting any unattributed work other than your own is a violation of the Academic Honor Code.

I encourage you to discuss the assignments, ask questions about how to program, etc. with the instructor, TA, and other students, especially on Piazza. But the code you submit must be your own. Unauthorized copying of anyone else's code is a violation of the Academic Honor Code. Unauthorized reuse of code from online is a violation of the Academic Honor Code. You are taking this class to learn how to think about and create Game AI code on your own.

Learning about algorithms from text or online sources is permissible. Copying code verbatim from online or another student is not permissible.

I heavily encourage students to use assets that encourage fair use (e.g. Creative Commons licensed audio, textures, images, etc.) or to produce their own. Unattributed use of other assets, such as graphics, text, or audio, or use of such assets without reappropriating them in a meaningful way to make a clear unique contribution on the student's part is a violation of the Honor Code. Reuse of outside assets is permissible, in other words, but must be done in a manner that makes it clear that you have made a major and significant contribution to the project in question. Failure to do so will result in a failing grade.

Failure to cite your sources is an Honor Code violation. Unauthorized use of any previous semester course materials, such as tests, quizzes, homework, projects, and any other coursework, is prohibited in this course. Using these materials will be considered a direct violation of academic policy and will be dealt with according to the GT Academic Honor Code.

All assignments are to be completed individually unless otherwise stated. For the assignments, do not copy from others or let others copy your work; however, you may think of the TAs as your close collaborators. Feel free to go to them with any problems that you are having. That's why they are there. You may speak with other students in the class about programming assignments. If you do so, I recommend that you do not do so in front of a computer. This will prevent the temptation to copy code. If you need to write something to communicate with a peer about an assignment, write by hand on a whiteboard or piece of paper. Erase the board (or destroy the paper) and do not take a picture of the board. The whiteboard policy is designed to protect you: I cannot tell who copied whom and both may be persecuted.

Do not store your programming assignment solutions on an un-protected online source repository (e.g., Bitbucket, GitHub, etc.). This invites cheating with repercussions to both parties. It goes without saying that one should not download solution code if found on the Internet.

For any questions involving these or any other Academic Honor Code issues, please consult me or visit the GT Honor Code website. GEORGIA TECH HONOR CHALLENGE - "I commit to uphold the ideals of honor and integrity by refusing to betray the trust bestowed upon me as a member of the Georgia Tech community".


The syllabus and webpage should be considered a living document subject to change throughout the course of the semester. I reserve the right to modify any of these plans as need be during the course of the class; however, I won't do anything too drastic, and you'll be informed as far in advance as possible. There are multiple places in the class schedule to accommodate student interests in particular subjects.

I expect you to understand and follow the honor code.