Game AI, Summer 2015:
Capstone Option 1: Open ended
Due: 7/24/2015 at 11:55pm. NO LATE SUBMISSIONS.
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 may also use pygame, the game engine we have used for the homeworks, or MarioPCG (but this better be interesting!). The Unreal Engine is also freely available. You should feel free (via piazza) to share with one-another links to other good engines for modification. In the past, students have also interfaced with a Pokemon engine, a railroad sim engine, and others. Whatever you choose, please remember to spend your time on the game AI bits (interesting user interactions and experiences), not the game itself.
You will be given until the final exam period on July 24. 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/26 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 Saturday night, 6/27. You can use the "Search for Teammates!" note to help in this process.
- By W1 [6/30 Tuesday]: 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. 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 5 min limit).
- By W2 [7/9 Thursday]: 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. 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 Tuesday 7/14.
- By W3 [7/21 Tuesday]: Your implementation is finished. You're only changing code to add polish (and squashing occasional, minor bugs).
- By 7/24 (Friday) 11:55pm: Turned in. Recall that no late submissions will be accepted.
Suggestions
- If you can avoid implementing the game yourself and instead use one off the shelf, do so. This will save you heaps of time and risks.
- 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 AI in stages of complexity. Start simple.
- Should you choose to implement a game, 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 sample 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).
- Is there procedurally generated content? (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? If there is a graduate student in your group, did the work achieve the agreed-upon higher-level of expectations (e.g. use of player models)?
- 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.