CSE 348 - AI Game Programming
Spring 2008
| When and where |
Tue & Thur, time: 14:35-15:50, room Christmas Saucon XS 201 |
| Instructor |
Héctor Muñoz-Avila, munoz@cse.lehigh.edu, |
| Instructor's office hours |
Wednesdays 4:00-5:00PM, Room 252 Packard Lab |
Announcements
** Our schedule for the whole semester is now complete.
Each of you have several tasks (class presentation; projects as slave or master). Note
that some of you have assignments as early as this Tuesday
and that class presentations start in early February.
Make sure that you are prepared with your tasks at the due date.
These cannot be postponed. Please make sure that when you
schedule outside events (e.g., interviews) these do not
collide with the dates when you have an assigned task.
** Please read carefully the updated guidelines
below for presentations and for projects (slave and master).
Students must ensure that they fulfill
these tasks at the scheduled dates
** Hall of Fame
- Project # 1. Robocode.
Tournament winner: Aperture Science (Hinkey, Christopher M.; Karneeb, Justin T.;
Gillespie, Kellen J). Aperture Science team consisted of different kinds of bots
executing concrete strategies that in combination resulted in a solid team strategy
without the need of implementing an explicit coordination between the bots.
Aperture Science destroyed the competition in this 2-bracket tournament.
- Project # 2. Unreal Tournament.
- Tournament winner: Aperture Science (Hinkey, Christopher M.; Karneeb, Justin T.;
Gillespie, Kellen J). The reigning champions, the Aperture Science team, keep
their throne for another tournament (is there anyone who can beat these guys?).
They developed a chatter class to allow communication
between bots. Bots follow initially a search strategy, followed by a dominations strategy
when all nodes are found. They encoded 11 different tactics (they called this "cases"),
and on-the-fly decide which tactic to follow.
- Innovation winner: Reretaliate (Brander, Greg; Moukhine, Nick; Wojciechowski, Chris).
Team Reretaliate carefully studied the retaliate algorithm that I had presented in
class. Observed a flaw in the way it operates (e.g., doesn't take into acount
the current's bot location). And went on to implement their own version of retalaite
that addresses this flaw!. Not only this but the actual implementation is much cleaner
than the original Retaliate.
- Project # 3. Call To Power 2.
- Tournament winner: Act-Fail (Morrison, J., Ziegler, J., Auslander, B.).
The new champions! Act-Fail had the best score (barbarian kills + summation of city sizes)
in the non-customized map. Act-Fail builds a civilization by constructing a series of
cities spawning in a balanced fashion from the starting city.
- Innovation winner: Aperture Science (Hinkey,
Christopher M.; Karneeb, Justin T.; Gillespie, Kellen J).
Aperture Science builds
an elegant solution for the game model and encapsulated low level
messages. This encapsulates low level details from the user and
allows the user to concentrate on high-level strategies.
We will be using their code as an starting point of future
iterations of this class.
- Project # 4. Wargus.
- Tournament winner: Gryphon Society (Moukhine, N., Brander, G., and Wojciechowski, C.).
Team Gryphon Society realized that mobility is a key for the game and no other unit
provides betetr mobility than the gryphon. A mass of gryphons destroyed the competition.
Description
Over the past 20 years computer games have gone through a remarkable
evolution in areas such as graphics and multi-player gaming. Another area where
some evolution has been made is in the quality of the computer opponent. Despite
this evolution, there is a big mismatch between what people in the game industry
refer to as the "AI" (roughly, the program controlling the computer opponent)
and what AI
actually is ("...technology can be controlled especially if it is
saturated with intelligence to watch over how it goes, to keep accounts, to
prevent errors, and to provide wisdom to each decision"- Allen
Newell, 1992). In this course, we will look at contemporary computer games,
explore techniques for implementing the AI (from the perspective of the game
industry) and study opportunities to use AI (from the
research perspective) to enhance the gaming experience. Here are some
of the topics that will be covered in the course:
* Pathfinding and Navigation Systems
* Group Movement, Tactics,
and Planning
* Applying Action Planning into Games
* Adaptive
Games
* FPS, Team-based RTS, and Turn-based games
* Machine
Scripting Language for Game Designers
* Player
Modeling
Prerequisites: CSE 327 or CSE 109.
Note: It is strongly recommended that you take (before, at the same time, or at least afterwards)
CSE 327 (AI)
because some concepts learned in the AI course are closely related to topics
covered in this course.
Trivia about Game AI
There is a technique for programming Game AI used in the game industry called "Kung-Fu Attack". It is
used not only in many combat games but also in FPS games.
Hint: check this clip from the immortal
Bruce Lee. Specifically the part where he fights the 10 or more bad guys at the same time.
How is he able to beat so many bad guys? (note: "because he is Bruce Lee!" is a plausible
answer but not the one I am looking for).
If you think you know the answer e-mail the instructor with subject "Kung-Fu Attack"
(e-mail must come from a Lehigh e-mail account, otherwise it will be ignored).
Reading Material
- Book: (recommended)
- Title: AI Game Programming
Wisdom series
- Author: Steve Rabin (Editor)
- Publisher: Charles River
Media
Communication
All announcements, handouts, etc. will be posted in this web site:
www.cse.lehigh.edu/~munoz/CSE348
Topics
- Introduction
- Tue. Jan 22.: Presentation Robocode project (Emily Cohen, John Mercer, and David Heefner)
AI Game Research at Lehigh and
Automated Planning
- Thur. Jan. 24: Automated Planning paradigm: HTN Planning
- Tue. Jan 29.: Machine learning
and a case study of using reinforcement
learning in games
- Thur. Jan. 31: Robocode project due;
- Tue. Feb. 5: Finite State Machines in Games (Stanislav Tsanev);
Presentation Unreal Tournament project (Bryan Auslander Jonathan M. Ziegler, and James Morrison)
- Thur. Feb. 7: Scripting languages (Karneeb, Justin T)
and expert systems
- Tue. Feb. 12: First Person Shooters (Xavier Otero Keil)
- Thur. Feb. 14: Squad tactics (Bryan Auslander)
- Tue. Feb. 19: Pathfinding with the A* algorithm (Joseph Siefers)
- Thur. Feb. 21: General Pathfinding: tables and navigation (Jeremy David Christman)
- Tue. Feb. 26: General Pathfinding: waypoints (Sarunac, Alexandar D. )
- Thur. Feb. 28: Unreal Tournament project due;
Presentation Call To Power 2 project (Responsible: Matt Dilts and Jeremy D. Christman)
- Tue. Mar. 4: Spring break
- Thur. Mar. 6: Spring break
- Tue. Mar. 11: Camera control (Christopher M. Hinkey)
- Thur. Mar. 13: Player Modeling (Jim Morrison)
- Tue. Mar. 18: Role Playing Games (Nick Moukhine)
- Thur. Mar. 20: Individual NPC behavior (Jonathan Michael Ziegler )
- Tue. Mar. 25: Real-Time Strategy games (Dave Heefner)
- Thur. Mar. 28: Achieving gaming goals (Kellen J. Gillespie)
- Tue. April 1: Call To Power 2 project due;
Presentation Wargus Project (Xavier Otero Keil, Joe Siefers, and Kristen Gardner)
- Thur. April 3: Map, World, Wall generation (Mercer, Jonathan C.)
- Tue. April 8: Story line, drama (Brander, Gregory M.)
- Thur. April 10: Crowd/swarm simulations (Kristen Gardner)
- Tue. April 15: Racing games (Emily Cohen )
- Thur. April 17: Sports Games (Chris Wojciechowski )
- Tue. April 22: Learning (Matt Dilts )
- Thur. April 24: Wargus project due; RECAP
- Last Day of Classes: April 25, Friday
Student's Work
This is a work-heavy course. The following activities will be performed by the students taking this
course:
- Oral presentations. Each student will prepare and present in
class sections from the book series AI Game Programming
Wisdom. Guidelines:
- The students are required to meet with the instructor 1 week before
the day of the presentation. For
this meeting, the student must have completed his/her presentation using MS
Powerpoint.
- The presentation should go beyond the assigned readings. It should include other sources.
Consult the references that are cited in the chapter(s). Find your own sources.
- If possible, it will include demo software (the CDs that come with the book are a good starting
point)
- Prepare for a 1 hour presentation. Presentations not well prepared are easy to spot. Start
going through the material sooner rather than later.
- Written report. Each student will prepare a written report (around 15 pages) about the topics covered in his/her class presentation. This report will be distributed
among classmates for reference material for the final exam together with the powerpoint
presentations (including the instructor).
Guidelines:
- Use own words. Do not copy-paste from sources
- due: the second class after your presentation
- be as clear as possible. This will be the main source for preparing the exam
- Class participation. Attendance to class is
required.
- Final exam. There will be a written exam about the topics
covered in the course. The exam will not be a problem solving
exam (e.g., write an algorithm to accomplish a certain task). Rather, the exam
will test the overall knowledge from the topics covered in the course (e.g.,
open questions about the material). The main source for this are your classmates
written reports, their class presentations, and
the instructor's class presentations. Here is the
first group and here is the second group of reports.
Here is the third group.
- Programming projects. We will implement various programing projects in groups of 2-3 depending
on enrollment, as follows:
- Project 1: Robocode (teams)
(due: January 31st; Responsible: Emily Cohen, John Mercer, and David Heefner)
- Project 2: Unreal Tournament - Tournament
(due: February 28; Responsible: Bryan Auslander Jonathan M. Ziegler, and James Morrison)
Updated
- Project 3: Call To Power 2
(due: April 1st; Responsible: Matt Dilts and Jeremy D. Christman)
- Project 4: Wargus
(due: April 24th; Responsible: Xavier Otero Keil, Joe Siefers, and Kristen Gardner)
Guidelines:
- Students will will form groups of 2-3 persons. We will try to
maintain the groups throughout the semester. For each project
there will be one and only one master group and the rest of the groups
will be slave groups.
- Master groups
will be responsible for all activities related to managing the project,
as follows:
- Setting up the software making sure that it runs
- Designing the competition (objective, scenario)
- Creating a web page describing the competition
- Presenting the project in class. This presentation should include a live
demo of the system
- Providing support to slave groups
- Administrating the gaming competition on the due date
- Master groups should not participate in the competition they are responsible for.
- No group should play the role of master group in more than one project
- Since not all will be able to be "master" groups, extra credit in the form of
additional points to the final exam will be given
to those who assume this role, if project was successfully lead by the master group. Some may required more effort than others
and therefore will get more points.
- In the remote event of an unsuccessful project because of omission of master group to accomplish the tasks indicated above, this will affect
negatively the score of the final exam for all members of that master group
(note: this have NEVER happened before)
- Slave groups will be responsible for working on the project and
participating in the competition.
- Projects should be e-mailed to the
master group on the due date (11:59PM EST), the day before
the competition is held in class.
- Presentation: In class I will select randomly one member of each slave
group to make the presentation of the project.
Bring powerpoint slides and if possible install them before the class starts. Do not explain
what is the project about. Explain your solution.
- A printout of the code, together with a 5-page report must be turned
in for the class competition.
Percentage distribution: presentation (13%), Written report (10%),
4 programming projects (13% each. Total: 52%), Final Exam (25%)
Last update: Fri. April. 25 11:00:33 EST 2008