Advanced Game AI Assigments

Home Schedule Reading Assignments Piazza Flyer

Presentations and Discussions

Students will be asked to assist with the presentation of course material from the conference and journal papers on the reading list. Students may also be asked to help facilitate a discussion about the course material that is presented. Presentations will be short ~ 5-7 minute powerpoint presentations. The purpose is of the presentation and discussion is not to cover all the details of the paper, but to lay out the relevant points at a high level of detail, going into low level detail only when necessary to make a point.

Each student should expect to present at least twice.

Consider the following questions for your presentation and discussions:

  • What is the problem the paper is trying to solve?
  • What is the motivation for doing the work?
  • What approach did they adopt to solve the problem?
  • Did they solve the problem, and what evidence do they give?
  • What alternative approaches were available and why did they discard them?
  • What is interesting to you about this paper?
  • What is troubling to you about this paper?
  • What questions do you have that you wish you could ask the authors (maybe we can figure out the answers in class)?
  • Will this work for other domains, applications, games?
  • Should the approach be considered for commercial applications?
  • How does this compare to other work that you are familiar with?
  • Is the work good?
  • Even if not, does it get the job done?
  • Can you use it in your class projects?

It is good have an opinion and to share it.

I recommend preparing questions for the class--that will make discussion more effective.

Presentations that merely present the paper without raising any of the points suggested above will not be accepted. I assume everyone has read the material so a lecture is not necessary.

To ensure everyone is prepared for class discussion, I will prepare several critical thinking questions per reading and call on individuals to answer. Thus each reading can also be a pop-quiz.

Grading:

Full credit will be received for presenting on the questions suggested above (not all are necessary or relevant--use your best judgement).

Projects

The course consists of developing a complete computer game using state-of-the-art artificial algorithms. The project is broken up into three phases. In the first phase, you will build a simple lock-and-key adventure game with no AI. In the subsequent phases, you will be required to design and implement two AI algorithms that control anonymous NPCs in various ways.

Project 1

Due: September 17, 2012

Design and create a lock-and-key adventure game. A lock-and-key adventure game is a Zelda-like game in which the player must perform certain tasks in order to proceed. The game progression is controlled by "locks", which are points that cannot be passed until certain conditions are met. The conditions that allow the game to continue are "keys". A literal interpretation of lock-and-key structure is a game in which there are periodic doors that are locked and the player must find one or more keys for each door. Lock-and-key structures can also be metaphorical: delivering an object to a character, solving a puzzle, killing a certain monster, etc. Lock-and-key will be discussed more in class.

Your goal for this project is to develop enough a a lock-and-key adventure game to demonstrate comprehension of the lock-and-key concept. You should have a minimum of 3 locks. At least one "lock" must require two "keys" that can be obtained in parallel (i.e., there is no necessary order in which the keys are obtained.). I encourage you to do more than the minimum and to think about longer quests and possibly even branching.

Later we will be incorporating artificial intelligence into the lock-and-key structure for your game, so you may want to read ahead about the expectations of projects 2 and 3. Although you do not need to implement any AI in this project, designing for the eventual incorporation of AI into your game will minimize the possibility that you will need to re-write significant portions of your game.

Game Engines:

To make development easier, you will be provided with 4 options for how to proceed.

1. XNA Game engine

A game engine atuned to adventure games built on the XNA platform.

  • Pros: The game engine provides a lot of support for adventure style games and is well-engineered for moving character sprites and procedural layout of environments.
  • Cons: It provides relatively low level support of adventure game activities.

2. Unity3D Game engine

A game engine atuned to adventure games build on the Unity3D platform.

  • Pros: Very good support of non-player characters and path finding.
  • Cons: It assume a relatively sophisticated understanding of Unity3D development practices. It also uses some 3rd party packages that have a learning-curve to master.

This engine makes heavy use of the Rain{one} AI middleware.
Rain{one}behavior trees cannot be used to implement and of the subsequent AI implementations. Rain{one} behavior trees can be used for aspects of the project that are necessary for game-play mechanics that are not related to project AI assignments. A license has been extended to the class, but usage for beyond the scope of class projects may require you to obtain a new license.

3. Twig

Twig is a procedural animation package built on top of XNA developed by Dr. Ian Horswill at Northwestern University. It has been used for a variety of research projects.

  • Pros: It does character animation instead of sprites. It readily supports certain types of symbolic AI.
  • Cons: It is a research prototype so there is no technical support. It may be harder to implement lock-and-key structures.

4. Unity3D demo project

Build off any of the demo games provided at http://unity3d.com/gallery/demos/demo-projects.

  • Pros: Much more polish and better art assets.
  • Cons: Requires greater knowledge of Unity3D. Requires reverse engineering projects that were not crafted specifically for lock-and-key adventure games.
 

Teamwork:

Individual or team project. Teams should be 2-3 people.

Milestones and submission:

Project 1 will be demoed in class.

Grading:

I will establish a baseline for the class and evaluate each project accordingly (one baseline for grad students and one baseline for undergrads). Since the project can be performed by individuals or by teams, I will also establish separate baselines for individual and team efforts.

Project 2

Due: November 5, 2012

Projects 2 build off project 1 and involves the design and implementation of AI algorithms. Pick a project type from column 1 and pick a project topic from column 2.

Project type Project topic
  1. Create an autonomous companion character that accompanies and helps the player progress through the game. This companion character should implement one AI topic from the right-hand column.
  2. "Deep integration" of an AI topic into the lock-and-key structure of the game. Deep integration means that AI processing must be used to determine if a "lock" is passable. For example, if you choose "emotion" as a topic, then you might need to develop a lock-and-key structure in which the player must manipulate a character's emotions to proceed. Note that not all project topics will make sense. You are encouraged to discuss your choice with the instructor.
  1. Emotion
  2. Personality
  3. Culture
  4. Dialogue generation
  5. Social simulation
  6. Collaboration (i.e. based on Collagen)
  7. Learning from humans

Your implementation must be non-trivial. That is, finite state machines and behavior trees are not allowed. A good strategy for proceeding with project 2 is to base your project on techniques covered by the literature we cover in class. Note however, that you may need to simplify many aspects of the literature for feasibility in the available time frame.

Teamwork:

Teams of 2 or 3 are required

Milestones and submission:

  1. Project 2 must be "pitched" to class as an oral presentation. You should describe briefly the project you intend to complete. What project type? What project topic? How do you intend to proceed with respect to algorithm and any design considerations for how to use the algorithm in the context of your game.
  2. [UPDATED] A project status report provided in written form part way through the alotted project 2 time frame.
  3. Project 2 will be demoed live in class.

Grading:

I will establish a baseline for the class and evaluate each project accordingly (one baseline for grad students and one baseline for undergrads).

Project 3

Due: December 14, 2012

Project 2 builds off project 1 and 2 and involves the design and implementation of AI algorithms. Pick a project type from column 1 above and pick a project topic from column 2 above. Your choices from both columns must be different than from project 2.

Teamwork:

Teams of 2 or 3 are required. The teams must be the same as from project 2.

Milestones and submission:

  1. Project 3 must be "pitched" to class as an oral presentation. You should describe briefly the project you intend to complete. What project type? What project topic? How do you intend to proceed with respect to algorithm and any design considerations for how to use the algorithm in the context of your game.
  2. A project status report will be given as an oral presentation part way through the alotted project 3 time frame.
  3. Project 3 will be demoed live in class.

Grading:

I will establish a baseline for the class and evaluate each project accordingly (one baseline for grad students and one baseline for undergrads).

Additionally, there will be a competition for the best game in the class as determined by anonymous voting. The best game will win an award but will not be incorporated into the final grade.

Project Critiques

Teams will be asked to report on the designs and implementation of other teams. Pretend that each project is an independent game development company and that you are helping a major game distributor determine whether to continue investing in a project or not and how the project might be altered to better meet its objectives. For each other project, write 2+ pages that includes the following elements:

  • A brief description of the problem the team is trying to solve.
  • A summary of their algorithmic approach and how they incorporate algorithm into the game design. Provide sufficient detail to describe the technique to someone who might not have been present for the presentation.
  • Any concerns or risks that you might foresee.
  • Any suggestions that might mediate the risks or concerns.
  • Any suggestions on how they can modify their technique to better meet the problem they are trying to solve.