Artificial Intelligence
for Interactive Media and Games

IMGD 4100 - B Term 2011

Professor: Charles Rich (See home page for office hours)

Course Description: Advanced software design and programming techniques from artificial intelligence are key contributors to the experience of modern computer games and virtual environments, either by directly controlling a non-player character or through more subtle manipulation of the environment. This course will cover the current state of the art in this area, as well as prepare students for the next generation of AI contributions. We will study the application of AI techniques such as search, planning, machine learning, emotion modeling and natural language processing, to game problems such as navigation, strategy, believability and narrative control. Students will implement several small AI demonstration games.

Recommended Background: IMGD 4000

Lecture Times: Mon/Tues/Thurs/Fri, 1:00pm - 1:50pm

Lecture Location: Fuller Labs, Room 320

Text Books: Mat Buckland, Programming Game AI by Example, Wordware, 2005. (Required)
Ian Millington, Artificial Intelligence for Games, Morgan Kaufmann, 2006. (Reference--electronic copy available from Gordon Library)

Teaching Assistant: Paulo de Barros (pgb), Office Hours: FL B16 (Interaction Lab), Tues/Fri 4-5pm

Detailed Schedule: Lectures, Reading & Homework (Schedule is subject to change!)

Discussion Forums: myWPI (Subscription option recommended)

Source Code:
  • Download the zip file file containing all the source code that will be discussed in class and used for the homework assignments.

  • The original source code and precompiled executables distributed with the text book can be downloaded from the publisher. Some small changes have been made to support tournament play (see acknowledgment) and to address compilation problems.

  • Homework Instructions:
  • The programming homework assignments are to assess your individual progress. You are encouraged to talk about solutions with classmates, even to help each other debug code. However, cutting and pasting someone else's code or emailing your code to someone else crosses the line. (See Cheating policy below.)

  • Use Visual Studio Debug mode for all assignments. Verify that the assignment runs correctly using the green "play" button next to the "Debug" drop-down in the Standard Tool Bar.

  • NB: Add a brief comment starting with '//*' before every change or addition you made to the original downloaded source files (one comment covering multiple lines is fine). Do not modify the files in the Common directory!

  • Homework assignments are due at midnight every Wednesday and Sunday of the first seven weeks of term, except before and after Thanksgiving break.

  • See Late Work policy below.

  • Use Web Turn-In. Upload a single zip file containing:
    • Include only the directory in which the Visual Studio Solution file (extension .sln) for this assignment appears. (Do not include the Common directory or directories containing source code for other assignments!)

    • Furthermore, to dramatically reduce the size of the file (and thus speed uploading), delete the following before uploading:
      • The Debug folder
      • The <solution>.sdf file
      • The <solution>.ncb file

    • an optional 'README.txt' file in the same directory, which briefly explains any problems or special features to the TA and instructor

  • Grading: 55% Programming Homework Assignments

    5% Class Preparation/Participation

    • everyone will be called on at least once per class
    • read assigned chapter (see syllabus) before class to be prepared

    10% Presentation

    • before Thanksgiving break, you will be assigned an AI middleware system ("game brain") to research and evaluate
    • you will give a five minute in-class presentation at the end of week 7
    • see details for topics to cover in presentation

    30% Final Exam

    Final grades will reflect the extent to which you have demonstrated understanding of the material and completed the assigned work. The base level grade will be a "B" which indicates that the basic objectives on homework, exams and project have been met. A grade of an "A" will indicate significant achievement beyond the basic objectives. A grade of a "C" will indicate not all basic objectives were met, but work was satisfactory for credit. No incomplete grades will be assigned unless there exist exceptional, extenuating circumstances. Similarly, no makeup exams will be given unless there exist exceptional, extenuating circumstances.

    Policies: Attendance
    • Regular class attendance (and active participation) is expected.
    • If you have an unavoidable need to be absent from the lecture, you do not need special permission, but you are responsible for the work covered.
    Late Homework
    • All homework should be submitted via Web Turn-In by midnight on the due date.
    • Homework turned in after midnight on the due date will immediately be penalized 50% of total assignment value. No credit will be given for homework submitted more than 24 hours after midnight on the due date.
    • Taking credit for work you did not do or getting unauthorized help on assigments or exams is cheating. If you are in doubt, ask the instructor first!
    • Cheating is a serious offense, punishable by an automatic NR for the course.
    • Institute policy on academic honesty will be followed in all cases.

    Acknowledgement I would like to thank Robin Burke for his advice and the use of his materials (especially source code for tournament play) in planning and preparing materials for this course.