Instructor:
Dr. John R. Sullins
Office hours:
Monday
Wednesday
Friday 11:00 – 12:00
Or by appointment
Office: 333 Meshel Hall
Phone: (330) 941-1806
Email: john@cis.ysu.edu
Web site: http://cis.ysu.edu/~john/
Check
the web site regularly, as assignments and announcements will be posted here.
Description:
This course will cover artificial
intelligence techniques for designing
and programming intelligent non-player characters (NPCs)
for a variety of different types of game genres, including finite and fuzzy
state machines, terrain analysis and path planning, board games, language
understanding, and learning.
Objectives:
Prerequisitses:
Etiher CSCI 6901, CSIS 3726, or CSIS 2617 and at least 3 s.h. of upper division CSIS courses. There will be some programming assignments in C++ or Java, and a substantial implementation project (in the language of your choice).
Textbook:
Artificial
Intelligence for Games
Ian Millington, Morgan Kaufmann, ISBN 978-0-12-373661-3.
Programming Assignments:
There will be a few small
programming assignments during the first half of the course covering topics
such as finite and fuzzy state machines, intelligent movement, and terrain
analysis. I tentatively plan to provide you with a partial game engine for
those assignments (in both C++ and Java), and you will add the
“intelligence” to the system.
As with any other programming course, Work on these assignments must be
your own. See the policy sheet for more details.
Game Programming Project:
The latter portion of the course will involve applying one of the AI-based techniques covered in the course to a game of your own choosing (or design), possibly as part of a group. More details will be provided later.
Grading:
Exam 1 (date
TBA)
|
15% |
Exam 2 (date TBA) |
15% |
Exam 3 (date
TBA)
|
15% |
|
Programming Assignments |
30% |
|
Final Project (due final week) |
25% |
Last day to withdraw with a "W":
Thursday, November 2.
The course grade will be based on the required material:
Tentative Course Outline:
|
WEEK |
TOPICS |
|
8/25 |
Introduction to AI and gaming: problems and basic approaches |
|
9/1 |
Representing simple NPCs as
finite state machines and decision trees |
|
9/8 |
Temporal, hierarchical and probabilistic finite state machines |
|
9/15 |
Fuzzy logic and fuzzy state machines for realistic character states |
|
9/22 |
Robotics-based approaches to character movement |
|
9/29 |
Complex character movement; Coordinating multiple NPCs |
|
10/6 |
Path planning, waypoint creation, and the A* algorithm |
|
10/13 |
Influence maps, Terrain/battlefield analysis, “Smart” terrain |
|
10/20 |
Implementing NPC goals and planning using search |
|
10/27 |
Board games and the MinMax algorithm |
|
11/3 |
Simple learning and iterative approaches for predicting player actions |
|
11/10 |
Keyword analysis and simple grammars for NPC/player interaction |
|
11/17 |
Game design for specific genres |
|
11/24 |
Practical issues: Messaging, execution and sense management (no class Friday) |
|
12/1 |
Project beta tests; Advanced topics (time permitting) |
|
12/8 |
Project presentations |