This will be the 4th iteration of the course. Students evaluated, on average,
the previous iterations of the course with a 4.55 out of 5.
** Hall of Fame (Spring 2008; list of projects for 2010 updated below)
- Project # 1. Robocode (team-based arcade shooter)
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 (team-based first-person shooter)
- 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 reinforcement learning algorithm, retaliate, 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 (empire building game similar to Civilization)
- 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.
- Project # 4. Wargus (real-time strategy game similar to Warcraft)
- 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 better mobility than the gryphons. 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. In addition, some level of programming proficiency is desirable
as there are 4 programming projects in the 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 and RTS games.
Hint: check this clip from the immortal
Bruce Lee. Specifically the part where he fights the 20 or more opponents at the same time.
How is he able to beat so many opponents? (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
- Will be listed here as we cover them
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. Reports will be posted here.
- Programming projects (updated for Spring 2010). We will implement various programing projects in groups of 2-3 depending
on enrollment, as follows:
- Project 1: Robocode (tank simulation) (teams)
(due: TBD; Responsible: TBD)
- Project 2: Special forces (team-based arcade shooter)
(due: TBD; Responsible: TBD)
- Project 3: DOM (emphasizes strategic aspects of team-based FPS games such as Unreal Tournament)
(due: TBD; Responsible: TBD)
- Project 4: Wargus (real-time strategy game similar to Warcraft)
(due: TBD; Responsible: TBD)
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 final grade 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: Mon. October 12 11:00:33 EST 2009