CS 4731 / CS 7632: Game AI (Fall 2019)Course Number: CS 4731 / CS 7632
Time and Location: Mon/Wed, 3:00-4:15pm, Howey (Physics) room L4
Instructor: Dr. Stephen Lee-Urban (Contact info -- also in syllabus)
My office Hours: By appointment. Coda building, 756 W Peachtree St NW, Atlanta, GA 30308. Bring student ID.
Office hours: see piazza
Office hours: see piazza
Office hours: see piazza
Office hours: see piazza
Office hours: see piazza
Office hours: see piazza
Quick Links: Syllabus (PDF) || Schedule || Piazza || Canvas
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 (or willing) for a given role. Lectures and projects will explore 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:
- 4731: Examines the expressive possibilities of artificial intelligence techniques in computer games. Students learn AI programming techniques, and how they strongly interface with game design.
- 7632: An exploration of how artificial intelligence is used in modern digital computer games. Credit will not be awarded for CS 7632 and CS 4731, CS 7632 and LCC 4731 or CS 7632 and LMC 4731.
Students in this course will:
- LO1: ...gain a breadth of understanding of current issues and techniques in academic and industry game AI.
- LO2: ...have hands-on experience in working with different game technologies and incorporating AI programming techniques within those technologies.
- LO3: ...be capable of implementing some of the most common Game AI techniques used in industry today
- LO4: ...better understand the relationship between game AI and aesthetics, narrative, and player experience.
- LO5: ...have an understanding of and appreciate the distinctions between artificial intelligence techniques adopted by the computer game industry and those being pursued in research labs and non-games related industries.
- AI Background:
- Coursework in artificial intelligence such as an introductory course in AI or a game AI course is required. For Georgia Tech undergraduates, this is CS 3600 "Introduction to Artificial Intelligence". For graduate students this may be CS 6601 or any equivalent course from their undergrad institution. At a minimum, the course should have covered search algorithms such as A* and hill-climbing search and some machine learning. System building, game development, or game design skills will be helpful but are not required. Students should be comfortable with building complete systems and working with unfamiliar codebases.
- Programming skills:
- Students are required to have solid programming skills. Experience with python/c#/java or the ability to pick them up as part of the course is required. Development using SVN/git or other version control methods is highly encouraged, but not required or supported by the class; please be sure to keep assignment solutions private and bear in mind GT's Honor Code (see below). Students are expected to pick up pre-existing code bases and develop their AI code within that code base as part of the class.
- Suggested books:
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 piazza group is a resource for technical and design issues. For assignment submissions, we will use Canvas. 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, 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.
Assignments are due at 11:55pm via Canvas on the announced due date. Late work will not be accepted under any circumstances.
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. The sequence of homework assignments together comprises a full-scale project in which all aspects of the AI for a complete game are implemented. Because homework assignments build on each other, the instructor will provide sample solutions after each sprint when appropriate. 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.
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:
- No more than 1 page of information
- A comparison between what you submitted and the grading criteria given for the assignment and the feedback given for your assignment
- What you feel your grade SHOULD be given this comparison
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.
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. 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 disciplined.
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.