Instructor:
Dr. John R. Sullins
Office hours:
Monday
Wednesday
Friday
Or by appointment
Office: 307A Meshel Hall
Phone: (330) 941-1806
Email:
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:
Either 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).
Graduate Students:
If you wish to take this course for graduate credit, you will need to register for my section of CSCI 6996: Independent Study (I can set up a permit). As is required in a graduate course, you will need to do extra work beyond the requirements for undergraduates, such as to research an AI technique and present in class how that technique is used in a specific game.
Textbook:
Artificial
Intelligence for Games, Second Edition
Ian Millington, Morgan Kaufmann, ISBN 978-0-12-374731-0.
Programming Assignments:
There will be a few small
programming assignments during the first half of the course covering topics
such as finite state machines, intelligent movement, and terrain analysis. I
tentatively plan to provide you with a partial game engine for those
assignments (in C++), 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/29 |
Introduction to AI and gaming: problems and basic approaches |
|
9/5 |
Representing simple NPCs as
finite state machines and decision trees |
|
9/12 |
Fuzzy logic and fuzzy state machines for realistic character states; Robotics-based approaches to character movement |
|
9/19 |
Path following and complex character movement; Cooperative NPC movement in groups |
|
9/26 |
Waypoint and tile generation; Path planning with the A* algorithm |
|
10/3 |
Dynamic path planning; Path planning in racing games |
|
10/10 |
Terrain analysis and influence maps |
|
10/17 |
Decision making with influence maps |
|
10/24 |
Goal-oriented behavior and action planning; Smart terrain |
|
10/31 |
Simple learning and iterative approaches for predicting player actions |
|
11/6 |
Board games and the MinMax algorithm; Designing board game heuristics |
|
11/13 |
Keyword analysis and simple grammars for NPC/player interaction |
|
11/20 |
Practical issues: Messaging, execution and sense management |
|
11/28 |
Designing game AI; Game design for specific genres |
|
12/5 |
Off-line parameter learning; Project beta tests |
|
12/12 |
Project presentations |