Advanced AI in Games
[Course Plan][Projects][Literature][F.E.A.R. Platform Demos]
Lectures: Tuesdays (and Wednesdays), Fall 2008 - 10:00-12:00 room 4A22
Lab (Exercise) Sessions: Wednesdays
13:00-15:00 @ "small" GameLab (2A54)
Teachers: Georgios Yannakakis (yannakakis[at]itu[dot[dk)
(office: 4B09, phone: 7218 5078)
Teaching assistants:
André T. Johansen (atjo[at]itu[dot]dk)
Course Description:
The primary goal of the course is the understanding, design, implementation and
use of nouvelle AI techniques for generating efficient intelligent behaviors in
games. Additional focus will be given to state-of-the-art AI algorithms for
improving gameplay experience.
During the course students will learn to
The hand-in: The final product for this course is a written project that includes:
Examination: External examiner, 7-point marking scale, B4: Oral examination with written work but without time for preparation at the exam. The hand-in must be submitted by 17-Dec at the Exam Office no later than 15:00. Exams then take place 21-Jan 2009.
Students Eligible for the Exam:
Morten Silcowitz Antonio Albuquerque Leitao Patryk Makowski Jens Peter Rosenkvist Kevin Hejn
| Week | Date | Lectures | Readings | Individual Assignments (Production Tasks) | Group Project (Production Tasks) |
| 1 | 26-Aug |
Introduction - Lecturer: Georgios Yannakakis
|
|
|
|
| 2 | 02-Sep |
The Real Introduction
- Lecturer: Georgios Yannakakis
|
|
|
|
| 03-Sep | Introduction to Artificial Neural Networks - Lecturer: Georgios Yannakakis |
|
|
||
| 3 | 09-Sep | Multi-Layered Artificial Neural Networks - Lecturer: Georgios Yannakakis |
|
|
none |
| 10-Sep | Genetic Algorithms - Lecturer: Georgios Yannakakis |
|
|
none | |
| 4 | 16-Sep | Fuzzy Logic - Lecturer: Georgios Yannakakis |
|
|
none |
| 17-Sep | Reinforcement Learning - Lecturer: Georgios Yannakakis |
|
|
none | |
| 5 | 23-Sep | Top 5 reasons not to use AI in Games and Next-gen Turing Tests - Lecturer: Peter Andreasen, IO-Interactive |
|
|
none |
| 24-Sep | Hybrids - Lecturer: Georgios Yannakakis |
|
|
none | |
| 6 | 30-Sep | Advanced Topics 1 - Lecturer: Georgios Yannakakis |
|
|
none |
| 01-Oct | Good Experimental Methodology - Lecturer: Prof. John Hallam, University of Southern Denmark |
|
|
none | |
| 7 | 07-Oct | LUDO Tournament/Competition - Organizers: André T. Johansen/Georgios Yannakakis | Hand-In Guidelines and Report template [Word, LaTeX] |
|
|
| 8 | 14-Oct |
Autumn Holiday Week |
|||
| 9 | 21-Oct |
Advanced Topics 2 - Lecturer: Georgios Yannakakis
Notification of LUDO report decision |
|
|
|
| 10 | 28-Oct | Project Work (TA available during lab session hours to assist) |
|
||
| 11 | 4-Nov | Project Work (TA available during lab session hours to assist) |
|
||
| 12 | 11-Nov |
Project Work (TA available during lab session hours to assist) |
|
||
| 13 | 18-Nov | Project Work (TA available during lab session hours to assist) |
|
||
| 14 | 25-Nov | Project Work (TA available during lab session hours to assist) |
|
||
| 15 | 2-Dec | Project Work (TA available during lab session hours to assist) |
|
||
| 16 | 9-Dec | Project Work (TA available during lab session hours to assist) | Hand-In Guidelines and Report template [Word, LaTeX]. |
|
|
| 17 | 16-Dec | Project Work (TA available during lab session hours to assist) |
|
||
| 17-Dec | Hand-In due (before 15:00) | ||||
| t.b.a. | Play Day/Competition | ||||
| 21-Jan | Exam | ||||
There are two classes of student projects for this course; individual mandatory assignments and group projects. Individual assignments involve the well-known LUDO (developed by David Christensen and Kasper Stoy) game. Each student has to generate three (3) different LUDO players to compete against the hand-crafted agents that come with the LUDO software (see details below).
There are two alternatives for group projects
(see section Group Projects below) Individual (Mandatory) Assignments: LUDOLUDO is well-documented and implemented in java. Download the source code, the instructions of the game simulator as well as the NeuralNet and EA (GA) template classes.
You have to generate three different intelligent LUDO players
using the following approaches:Multi-Layer Perceptron (back-propagation/supervised learning)
Genetic Algorithms
Reinforcement Learning
Competition
There will be a competition day where all generated agents will compete against each other. Students will have to report on their methodology and results by evaluating each approach used. See hand-in guidelines.
Group Projects Groups can choose among the following alternatives regarding their project 1. Own Game: Built two levels of advanced AI (Fuzzy, Neural Networks, GA, RL, hybrids) control in a game platform of your choice. 2. Ms. Pac-Man: Built two efficient Ms Pac-Man players.Own Game
1. Choose a game platform/framework among the following
Unreal Engine 3 (highly recommended - technical support provided through the game development class webpage and the TA)
XNA
Source (not recommended)
.NET
Java
Other (you may propose any platform/framework/language you are most familiar with)
N.B. For any platform used you have to demonstrate demos of successful previous work.
2. Built 2 different levels of control using any advanced AI techniques covered in class. More specifically, the game:
3. Your hand-in report should include results from testing and evaluation experiments as well as a video trailer of the obtained behavior
(see hand-in guidelines)The Microsoft Ms Pac-Man version (installed in all machines of Game Lab) and the screen-capture software developed by Jonas Flensbak will be used for your experiments. Download Jonas' .NET framework and documentation from here. Jonas can provide technical support if required.
Although computational intelligence methodologies (GAs, ANNs, Fuzzy, RL) are encouraged, groups can choose any two advanced AI approaches covered in the class (combinations are also possible, e.g. an RBS with an ANN). Other methodologies beyond the material covered in the class can also be proposed and discussed.
The best Ms. Pac-Man controller will enter the competition at the next Computational Intelligence and Games (CIG) Symposium. There will eventually be a first prize for the winner of the competition (that was 500 $ (!) at the Congress on Evolutionary Computation 2007). Fame is also included in the prize :)
Your hand-in report should include results from testing and evaluation experiments as well as a
comparative study among the two Ms. Pac-Man behaviors obtained (see hand-in guidelines). A trailer video of the two obtained behaviors should accompany the report.Game AI behaviors can be observed using the FEAR platform for Quake 2 which accompanies the book "Alex J. Champandard, AI Game Development: Synthetic Creatures with Learning and Reactive Behaviors, New Riders Publishing, 2004.". Further on-line AI game development guidelines can be found in the book's website.
The online guide for setting up and using the FEAR platform.
Quick Guide (FEAR Platform Installation for watching animat demos)
Download the FEAR SDK, the Binary FEAR demo, the Quake 2 Demo and the latest Quake 2 binary patch.
Install Quake 2 demo: Click on the executable, and follow the on screen instructions to place the demo in C:\Games\Quake2
Install Quake 2 patch: Be sure to install the patch exactly in the same location as the Quake 2 game. By default this is C:\Games\Quake2 (just copy the extracted files in that directory).
Install the full FEAR SDK: Click on the executable, and follow the on screen instructions.
Extract the Binary FEAR demo in your desktop
Right click on My Computer, then select . From there, there should be an Advanced tab --> . Set a new variable QUAKE2 (if it does not exist) to the value C:\Games\Quake2.
Game DLL: Copy the gamex86.dll from the extracted binary FEAR demo subdirectory \aigd-1.0.0-demo\Quake2\fear and paste it in C:\Games\Quake2\fear
Copy all .dll "brain" files from the extracted binary FEAR demo subdirectory \aigd-1.0.0-demo\Quake2\fear\modules and paste them in C:\Games\Quake2\fear\modules
Create a server: Create a shortcut of c:\Games\Quake2\quake2.exe in your desktop (or wherever you like), right-click it --> properties --> Shortcut tab --> Target : C:\Games\Quake2\quake2.exe +set game fear +set dedicated 1 +set deathmatch 1 +map q2dm1
Player mode: Follow 9 and set Target : C:\Games\Quake2\quake2.exe +set game fear +connect 127.0.0.1
Spectator mode: Follow 9 and set Target : C:\Games\Quake2\quake2.exe +set game fear +connect 127.0.0.1 + set spectator 1
Run the server.
You can add a Number of animats by writing sv add AnimatName Number on the server window. You can set the Number of animats through the bots Number command.
Run either player or spectator mode to see how your animats behave.
|
| | | |