(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.
Object-Oriented Design Concepts (CS 2102),
Systems Programming Concepts (CS 2303),
Algorithms (CS 2223)
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.
I would also like to thank the following for providing their AI middleware free of charge:
||Mon/Tues/Thurs/Fri, 10:00am - 11:00am
||Fuller Labs, Room 320
||(Required) Mat Buckland, Programming Game AI by Example, Wordware, 2005.
(Reference) Ian Millington and John Funge, Artificial Intelligence for Games (Second Edition), Morgan Kaufmann, 2009. (electronic copy available from Gordon Library)
||The proceedings of the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment contain many interesting articles describing the research frontier of AI in games and interactive media.
Also see the website of the AI Game Programmers Guild.
||Hongzhu Cui (hcui2), Office Hours: FL A22, Tues/Fri 5-6pm
Richard Hayes (rhhayes), Office Hours: FL A22, Weds/Thu 5-6pm
(Floor A in Fuller Labs is the first floor down, entering at the ground level at the back, i.e., Salisbury Street, side of the building.)
||Lectures, Reading & Homework (Schedule is subject to change!)
Lecture notes will be posted after lectures.
||myWPI (Please subscribe to all forums!)
Download the zip file file containing all the source code that will be discussed in class and used for the homework assignments. This code has been tested in Microsoft Visual Studio 2015, which is installed on all lab and public WPI machines. Other versions of Visual Studio will not be supported! You can download and install the free Community Version of Visual Studio 2015 to your personal computer here. (It is a big download, so a high-speed connection is recommended.)
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.
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 (or 6pm---see below) every Wednesday and Sunday of the term, except for before and after Thanksgiving break and before the final exam (see schedule).
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 zipping and uploading (they will be recreated next time you build your project):
- The Debug folder
- The .vs folder
- The ...VC.db file
- an optional 'README.txt' file in the same directory, which briefly explains any problems or special features to the TAs and instructor
55% Programming Homework Assignments
5% Class Preparation/Participation
- everyone must be prepared to be called on in class
- read assigned chapter (see syllabus) before class to be prepared
10% AI Middleware Presentation
- By the third week of the term, you will be assigned to a team to research and evaluate
an AI middleware system
- you will give a short in-class presentation during 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
- 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.
- All homework should be submitted via Web Turn-In by midnight on the due date, except for second tournament homework (see above), which is due at 6pm (in order to give instructor time to set up the tournament software).
- Homework turned in after 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 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 integrity will be followed in all cases.