Final Project - Game Development

Important Dates

Mini-Proposal due: February 17 (start of class)
Formal Proposal due: March 2, 11:59pm
Milestone 1 due: April 6, 11:59pm
Milestone 2 due: April 20, 11:59pm
Launch: Monday, May 10 01:00pm - WEH 7500
Postmortem due: Tuesday, May 11, 11:59pm


Index of Project Websites

 
Overview

The objective of the course final project is to design and implement a complete game from the ground up. You have the option to work either in a group of two or individually. We strongly encourage working in a pair rather than by yourself, both because you will be able to take on a much more ambitious project and because the experience of collaborating on such a significant project is an excellent one to have. Your group will design and implement a game of your choice in terms of genre, style, content, and technical aspects. You are free to develop your game on any platform, but if the final version you submit does not run on the WeH 5336 lab computers, you must provide a machine which will run it for the final demonstration at our launch event.

Launch demos will be held during our final exam slot at the end of the semester, time and place TBA. Your team will get a chance to give a brief (3-5 minute) explanation of your game to the class.  All students will vote for their favorite games, and prizes (TBA) will be awarded to the best games.

Five phased deliverables are required to complete this project:

  1. An informal "mini-proposal" for your game
  2. A formal, complete project proposal
  3. A progress report reflecting your first development milestone
  4. A second report showing another project milestone
  5. The finalized game software and a final postmortem report

The project milestones provide status updates so the course instructors can evaluate your progress up to and including your present status. You MUST have a playable prototype of your game by the first milestone, and by the second milestone all major game features must be in place. The final software demonstrations represent your game launch, and your postmortem will provide a summary of your project and reflections on the development process.

Focus your efforts toward an interesting, challenging, and substantial development effort that is achievable given the time allotted.

 

Electronic Submission

The mini-proposal (described below) is the ONLY paper document you will submit relating to your game. It will be used to register your team's CVS repository which will be used for all subsequent submissions. Beginning with the formal project proposal, all writings related to your project will be submitted electronically. Your team's dedicated CVS repository will contain a module called yourgamename-web which holds a public web page maintained by your team to document your game. Each "submission" will consist of updating this web page by the deadline with required content. We will take a snapshot of your web site at the deadline, and use this to evaluate your submission. When you update, do not discard previous content--the idea is for your game's page to illustrate the progression of your project through time, starting with your formal proposal, proceeding through your milestones, and ending with your game's postmortem.

The style and layout of your page are mostly up to you. As long as navigation to the content we require is intuitive, anything goes, with the following exceptions:

You may use many different pages linked to from your index.html file, or document your entire project in one long file with updates added to it as you go. Feel free to include additional screenshot images to show off your game.

 

Mini-Proposal

The mini-proposal is the ONLY paper document you will submit relating to your game. It will be collected at the start of class on February 17.

The mini-proposal can be seen as a "registration" of your team and game idea. It is a listing of the vital information about your group, plus a brief, informal characterization of your game idea. The objective of the mini-proposal is not to fully specify your game, but simply to make sure that you have formed your team and thought of an initial game idea. We will use the proposals to register your team, and to evaluate and provide feedback on your early game idea before you create your formal proposal. The entire document should be between half a page and one page in length--do not submit more than one side of a page. Here is an example mini-proposal:

Game Name: Diablo II
Development Team: Joe Blizzard (jobz@andrew.cmu.edu) Jane Blizzard (jabz@andrew.cmu.edu)
Game Genre: "Hack-and-slash RPG"
Brief Description: Diablo II will be a hack-and-slash game with an overhead perspective, where the player controls a character that journeys through many areas and kills monsters for experience and treasure. There will be many different types of monsters, and several character classes, each with different abilities and paths of development. Characters will gain strength through the standard RPG experience system in addition to having a system of branching "tech trees" where they must fill prerequisites to get more advanced abilities.
Significant Technical Features:
  • Isometric world view providing a quasi-3D perspective
  • True transparency, colored light sources used in rendering
  • Motion capture data clips used for animating character navigation and battle moves
  • Enemy AI using multi-resolution pathfinding on the world, town, or dungeon grid 
  • Customizable, data-driven combat engine for calculating attacks, defense, and damage totals
  • Game state data compression for networked, multi-player game updates

Please use the same headings when creating your team's mini-proposal.

 

Formal Project Proposal

The formal proposal is a more detailed description of your proposed game, the technical challenges it entails, and your plan to successfully complete its development in the time provided.

The proposal should be approximately 2 to 3 pages if printed out (it won't be), and must be submitted as outlined in Electronic Submission. It should use the following outline:

A sample project proposal is given below. Note this is just an example drawn from the Diablo II postmortem. Of course a game with the scale of Diablo II is far too much to accomplish in the time allotted. So if your proposal starts to look like the one below (in terms of scale and scope), please rethink your game or plan for your proposal to be rejected by the course instructors.

Game Name: Diablo II
Development Team: Joe Blizzard (jobz@andrew.cmu.edu) Jane Blizzard (jabz@andrew.cmu.edu)
Game Description: In Diablo II, the user controls one of five character types as he or she explores a world of dark fantasy.  Characters must journey across distant lands, fight villains, discover treasures, and uncover ancient mysteries, all in the quest to stop Diablo, the Lord of Terror.  The overall development objective for Diablo II is to improve upon the original Diablo without losing the fun and gameplay balance. The Diablo II computer game will run on PC and Macintosh computers.
Game Features:
  • Single, or Multi-player modes
  • Four towns to explore in the game
  • Five character classes
  • Large dungeon maps and vast wilderness tile sets
  • Variety of items, magic, and skills
  • Many different armor looks for the players character
  • Randomly generate thousands of unique boss monsters
  • Factor the story in from the very beginning of game design so that it has an influence on player quests
Technical Features:
  • Isometric world view providing a quasi-3D perspective
  • True transparency and colored light sources used in rendering
  • Motion capture data clips used for animating character navigation and battle moves
  • Enemy AI using multi-resolution pathfinding on the world, town, or dungeon grid 
  • Customizable, data-driven combat engine for calculating attacks, defense, and damage totals
  • Game state data compression for networked, multi-player game updates
Implementation Plan: Original source code and content for Diablo II that will be newly developed during the semester will include the following:
  • Character animation routines
  • All artificial intelligence routines
  • Save/load game routines
  • All game maps, models, textures, animation, sounds, and other game data (except some textures noted below)
Source code and content acquired and used from outside sources include the following:
  • OpenGL model loading library from www.sourceforge.net
  • OpenGL particle effects library from www.sourceforge.net
  • Battle.net software which will be acquired from Blizzard Irvine.
  • Outdoor textures from www.texturefree.org
Source and content previously developed:
  • My own quaternion library which was used in Diablo I and includes common operations, matrix conversions, and SLERP functionality.
  • Terrain and dungeon generation routines which create worlds as seen in Diablo I using 2D isometric maps.
Schedule: The Diablo II project will begin at the end of March of 2004 and is planned to be completed in 5 weeks to meet a May 2004 rollout. The major milestones of the project are the following:
  • 29 Mar: Project kickoff meeting
  • 06 Apr: Milestone 1: Playable game prototype (map and player moving) checked in to CVS along with web page update.
  • 11 Apr: Begin internal testing (town 1 and town 2 finished)
  • 20 Apr: Milestone 2: "Feature-complete" game, all major functionality in place. Checked in to CVS along with web page update.
  • 29 Apr: Feature freeze (no new ideas...time to finish-up!)
  • 05 May: Game complete. Go home and get some sleep before launch day.

 

Milestones

The project milestones provide status updates so the course instructors can evaluate your progress up to and including your present status. You must have a playable prototype of your game by the first milestone, and by the second milestone all major game features must be in place. You MUST have a playable version of your game checked into your team's CVS repository for evaluation by the milestone deadline. You must also have checked in an update to your webpage which is the equivalent of a short 1 to 3 page document. The update must summarize your progress so far, including:

  1. Representative screenshots
  2. Work completed
  3. Work remaining
  4. Current bottlenecks
  5. Realistic timeline for finishing up your game before the game launch in May.

 

Game Launch and Postmortem (final report):

All games will be demonstrated in a public launch session. In addition, each project team or individual should prepare a postmortem. 


Launch


The moment you've been working and waiting for! All games will be demonstrated in a public game launch session which is the climax of the semester and gives your team a brief moment of glory in return for all the hard work you've put into your game. Launch is a one-time event, and thus represents a hard deadline for your game's completion. No late games will be accepted, so it's a good idea to plan for your game to be functionally complete around a week before launch with only minor tweaks and changes to art and content leading up to launch day.

Your team will get a chance to give a brief (5 minute) explanation and demonstration of your game to the class. Afterwards, all students will have a chance to play and evaluate each other's games. Everyone will vote for their top 5 favorite games in a few different categories including innovation, quality of design, technical excellence, and best overall. The instructors will evaluate and grade games along similar lines, considering mainly technical merits and effort required, but not ignoring great design and overall impression. Please make sure to check before your demo to make sure there are no problems with your game setup.

AWARDS and PRIZES: There will be awards and prizes given to the best games as voted by the instructors and your fellow students. Prizes and the place and time of award presentation will be announced as they are confirmed.


Postmortem

This will be the final update to your team's website, and describes the final state of the game you submitted. It must be completed by midnight of the night after launch day. You will summarize your project development efforts, including:

  1. Overview:
    Provide a brief description of your game, including:
    • game concept and goals
    • features of your game (both general and technical) 
    • description of user controls
  2. Development Summary:
    Summarize all development efforts, including:
    • CODE: outline of code structure, including a clear description of all original code written, as well as an indication of any external code or libraries used.
    • CONTENT: summarize game models, textures, sounds, level data, or other project resources. As with code, please include a clear description of all original content created, as well as an indication of any external models, textures, or other content used.
  3. Key Technical Challenges:
    • Select 3 technical aspects of your game that were the most challenging to develop and explain your approach to solving them.
  4. Reflections:
    Finally, you should reflect on the entire development cycle of your game and identify:
    • at least three things that went right
    • at least three things that went wrong
    • any lessons learned or things you would have done differently


Have Fun

There's no way around it: The project is a significant endeavor. It is made to reflect the development cycle of a "real" commercial game, and like a commercial game it requires careful planning and a good, consistent effort throughout the entire development process. There's a lot of work required, but we think you'll find that the effort you put in is more than worth the reward of having a solid product at the end of the semester that you can show off to your friends.

Game development is not an easy thing, but it can be a ton of fun, and in the process of making your game you should learn a lot of things that you can use for any kind of application development. Think big, and think new--if you come up with something spectacular and unheard of you might be able to sell it! USE CVS often. It's not just for submission. If working with a partner, you should perform daily checkins as an absolute minimum to make sure you are well-synchronized, and check in even more frequently when you are adding many features in a short period of time. Consider working in the cluster, and if you don't, make sure to talk with your classmates regularly as you go along. Seeing what other people are doing and bouncing ideas around can be a great help. Above all, be excited about what you're doing--this is your game!

Have fun, and see you at launch day.


GOOD LUCK!
-the Gamedev admins


Page last updated on $Date: 2004/02/12 02:46:13 $.
Webmaster: