Game AI, Summer 2013:
Project 4. Capstone
Due: 7/28/13 at 11:55pm
This project is designed to allow students to delve deeper into Game AI development by designing a game that has AI as a core aesthetic component (e.g. Nero, Spy Party, Black and White, etc.). Being creative about how to employ AI in games so that it is not simply used to provide intelligent opponents but becomes an intrinsic part of the game mechanics is a difficult task. For example, designers like Ken Stanley and Peter Molyneux have been leaders in the field of taking risks and incorporating real time machine learning into gameplay. Even more importantly, the ML techniques used are core to the experience their games provide. Your task is to design (or extend) a game such that AI is incorporated as a key element in the gaming experience.
This is an opportunity to take risks, to try new things, and approach game design in a fundamentally different way. This will be a joint effort executed by you and your teammates. Implementation can be done in any platform in any language as long as (a) the source code can be turned in to us and (b) we can access the hardware needed to run it. I encourage all groups to shoot for projects that focus on interesting user interactions and experiences that are created by the AI and game interactions rather than focusing on being flashy, 3D visuals, 5.1 surround sound, mega-tastic networked FPS, etc. etc. games. Scoping your work is heavily important here.
Flash (e.g. tutorial), Unity, and Processing have been common environments in the past.
You will be given until the final exam period on July 29. Note that for grading, I expect thorough documentation of both the evolution of your design as well as technical decisions, so keep good notes as you go along. The following are the weekly (but strongly) suggested milestones:
- By W0 [6/28 Friday]: Pick your team; this will be self-organized on Piazza. Teams have a max size of 3. When your team is assembled, put it on the wiki page called "Final project team list" with each team member's first and last name, and the team name. Any unteamed class members will be randomly assigned to groups after 11:55pm on Friday night, 6/28. You can use the "Search for Teammates!" note to help in this process.
- By W1 [7/1 Monday]: Choose your game, or have the design of your own game finished. At this point you MUST understand, and be able to tell everyone, how your AI functions as a core aesthetic component that is a key element in the gaming experience.
- By W2 [7/8 Monday]: Have a completion plan for your work, including what algorithms you will use, and be ready to do a 2-minute "pitch" in class on Tuesday (firm 2 min limit). If you haven't even set up your environment and began coding by now, you are in trouble. If you are making your own game from scratch, the non AI elements should be complete.
- By W3 [7/15 Monday]: If your game doesn't run by now, even with massive bugs or somewhat naive AI, you're probably going to fail. Your target should be to have all the AI-related code (structure) in place, but possibly needing to be refactored and extended. You should be able to do a rough, runnable demo in class on Thursday.
- By W4 [7/22 Monday]: Your implementation is finished. You're only changing code to add polish (and squashing occasional, minor bugs).
- By 7/28 (Sunday) 11:55pm: Turned in. Recall that no late submissions will be accepted.
Suggestions
- Implement or choose your game ASAP. For example, it is non-trivial to implement a board game and will take at LEAST a full week of hard work to do.
- Consider implementing the game (and consequently the AI) in stages of complexity.
- Use simple visualizations to represent the game. Text is not a horrible option, though the game must be accessible and comprehensible for others to play it.
Some game ideas:
- Characters that learn, as in Black and White
- Quest generation in a role-playing game
- Dynamic difficulty adjustment in a platformer or shooter
- Reactive character behavior in open-ended, emergent game play
Writeup
Include a .doc or .txt file that describes the following:
- Exact instructions for how to run your game (if these are not included, you may receive an F).
- The algorithmic approach you used.
- The major challenges you met during the project and how you overcame them.
- Make clear what your goal was in creating your algorithms, why that goal was a reasonable one, and how well you achieved it.
- Thorough documentation of both the evolution of your design as well as technical decisions.
Submission
Submit via T-Square everything needed to run your game, and your writeup.
Grading
This project is worth 40% of your final grade, and be graded along the final criteria:
- Game incorporates AI as a key element in the gaming experience; the AI is not simply used to provide intelligent opponents but becomes an intrinsic part of the game mechanics (P/F).
- Creativity: How interesting, innovative and, most importantly, well thought out is your design? Does it make sense and is it consistent?
- Incorporation: What is the relationship between AI and the user experience? Is there a deep connection?
- Appropriateness: Does the choice of algorithm match your design?
- Software design & execution (absence of bugs, rationale & execution of design): How well does the final game work? The AI? Are there any major bugs?
- Documentation (clarity, coverage): Thorough documentation of both the evolution of your design as well as technical decisions.