CS 4731/8803: Game AI (Summer 2013)Course Number: CS 4731/8803
Instructor: Dr. Stephen Lee-Urban (Contact info -- also in syllabus)
Time and Location: Tues/Thurs, 2:00-3:45pm, Klaus 2447
Office Hours: Tues. 4:00-5:30pm, TSRB 236 (or by appointment)
Quick Links: CS 4731/8803 Home || T-square || Piazza || Syllabus (PDF) || Schedule
Disclaimer: This syllabus and webpage is a mashup of the Game AI syllabi written by the previous three instructors of the course held at Georgia Tech.: Dr. Mark Riedl, Dr. Brian Magerko, and 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 they 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 latter.
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.
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: ...gain valuable experience in communication skills about game AI topics, their own ongoing project work, and as critiques of others' works.
- LO4: ...better understand the relationship between game AI and aesthetics, narrative, and player experience.
- LO5: ...gain experience in working with a group on a self-directed final project.
- AI Background:
- Coursework in artificial intelligence such as an introductory course in AI or a game AI course is required. 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 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 (or the free version of Unity). Students are expected to pick up pre-existing code bases and develop their AI code within that code base as part of the class.
- Required books:
- Millington's Artificial Intelligence for Games is required, and Buckland's Programming Game AI by Example is very strongly suggested. Books have been ordered at Engineers' Bookstore and are available on Amazon. There is also a `desk' copy ordered, and the library may have a copy.
In the past, T-square, Piazza, and Google groups have been used with success for this course. All students should add themselves to the GT Game AI group. The use of the group is a resource for technical and design issues students have from year to year, rather than acting as a standalone discussion on T-square or Piazza. 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. If you have any problems or feedback for the developers, email firstname.lastname@example.org.
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.
Projects are due at 11:55pm via T-Square on the announced due date. Late work will not be accepted under any circumstances.
Each assignment comes with suggested milestones. Given the accelerated summer schedule, stricter adherence to these milestones will be necessary in order to ensure that you have sufficient time to complete the projects.
Assignments and presentations will constitute 100% of your grade. You may lose up to 10% of your grade for failure to participate in class. There will be no exams, but 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. All assignments and projects will be graded by letter grade. Failure to use backup and version control development practices is not a valid excuse for late or missing submissions.
Students will be expected to give presentations about their work on assignments prior to project deadlines. These presentations are informal, but give the opportunity to provide and receive feedback from the instructor and their peers about their progress on each project. Repeated failure to be present when called for such presentations will be reflected in your participation grade.
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 Honor Code as described here. 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 Academic 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 and other students, 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.
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.