Open main menu

CDOT Wiki β

Difference between revisions of "GAM666/DPS901 Project requirements 20103"

(Phase 1)
 
(44 intermediate revisions by 17 users not shown)
Line 1: Line 1:
 
{{GAM666/DPS901 Index | 20103}}
 
{{GAM666/DPS901 Index | 20103}}
= Appointment Schedule for Reviewing Game Development Progress =
 
{|  border="1"
 
|-
 
|Team Name
 
|Date and Time
 
|-
 
|-
 
|Andrei Kopytov
 
|Thursday November 4 9:50AM
 
|-
 
|
 
|Thursday November 4 10:00AM
 
|-
 
|
 
|Thursday November 4 10:10AM
 
|-
 
|
 
|Thursday November 4 10:20AM
 
|-
 
|
 
|Thursday November 4 10:30AM
 
|-
 
|
 
|Thursday November 4 10:40AM
 
|-
 
|
 
|Thursday November 4 10:50AM
 
|-
 
|Daniel
 
|Thursday November 4 11:00AM
 
|-
 
|
 
|Thursday November 11 9:50AM
 
|-
 
|
 
|Thursday November 11 10:00AM
 
|-
 
|
 
|Thursday November 11 10:10AM
 
|-
 
|
 
|Thursday November 11 10:20AM
 
|-
 
|
 
|Thursday November 11 10:30AM
 
|-
 
|
 
|Thursday November 11 10:40AM
 
|-
 
|
 
|Thursday November 11 10:50AM
 
|-
 
|
 
|Thursday November 11 11:00AM
 
|-
 
|Team Zombie
 
|Thursday October 21 10:00AM
 
|-
 
|Slap Your Grandma
 
|Thursday October 21 10:10AM
 
|-
 
|Daniel
 
|Thursday October 21 10:20AM
 
|-
 
|Randl
 
|Thursday October 21 10:30AM
 
|-
 
|Team Copycat
 
|Thursday October 14 10:00AM
 
|-
 
|Team GG
 
|Thursday October 14 10:20AM
 
|-
 
|Wild Sparrows
 
|Thursday October 14 10:40AM
 
|-
 
|Double Tap
 
|Thursday October 14 11:00AM
 
|-
 
|Slap Your Grandma
 
|Thursday October 7 10:00AM
 
|-
 
|Hic Sunt Dracones
 
|Thursday October 7 10:20AM
 
|-
 
|Team Mutalisk
 
|Thursday October 7 10:40AM
 
|-
 
|Team 10th Floor
 
|Thursday October 7 11:00AM
 
|-
 
|Team Blam
 
|Thursday September 30 10:00AM
 
|-
 
|Team Zombie
 
|Thursday September 30 10:20AM
 
|-
 
|Team Sheetbrix Robotix
 
|Thursday September 30 10:40AM
 
|-
 
|Cerebral Thought
 
|Thursday September 30 11:00AM
 
|-
 
|}
 
<br />
 
 
 
= Due Dates =
 
= Due Dates =
 
{|  border="1"
 
{|  border="1"
 
|-
 
|-
 
|Proposal outline and team members selected
 
|Proposal outline and team members selected
|September 21
+
|September 29
 
|-
 
|-
 
|Proposal completed and members roles selected
 
|Proposal completed and members roles selected
|September 28
+
|October 11
 
|-
 
|-
 
|Member branches with updated 15-Controller sample ready
 
|Member branches with updated 15-Controller sample ready
|September 30
+
|October 11
|-
 
|Research into game requirements begins
 
|September 30
 
 
|-
 
|-
 
|Approval meeting with instructor
 
|Approval meeting with instructor
|Weeks of October 3 and October 10
+
|October 11-14
 
|-
 
|-
|Draft game submission and project review
+
|Project Review meeting with instructor
|November 16
+
|November 15-18
 
|-
 
|-
 
|Final game presentation
 
|Final game presentation
|December 7
+
|December 6 and 8
 
|}
 
|}
 
<br />
 
<br />
Line 135: Line 26:
 
= Project Requirements =
 
= Project Requirements =
  
Your game involves a real-time audio-visual experience in some sort of 3-D world. The user must be able to control at least some aspects of the game with a controller, and there must be some use of sound, both in the background and in response to some action in your game. The user should have control over which display devices, resolution and input devices are used at any time during the game. Your game may however offer only a subset of the available resolutions and input devices. Finally, your design code must differ significantly from the samples presented in class and you must identify the unique elements of your code in your submissions. Each game is a team effort.  The structure of each team is up to the team members.  Each member must contribute their own work in a selected area or areas of their choosing.  All members should contribute to the design part of the assignment.
+
Your game involves a real-time audio-visual experience in some sort of 3-D world. The user must be able to control at least some aspects of the game with a controller, and there must be some use of sound, both in the background and in response to some action in your game. The user should have control over which display devices, resolution and input devices are used at any time during the game. Your game may however offer only a subset of the available resolutions and input devices. Finally, your design code must differ significantly from the samples presented in class and you must identify the unique elements of your code in your submission logs. Each game is a team effort.  The structure of each team is up to the team members.  Each member must contribute their own work in a selected area or areas of their choosing.  All members should contribute to the design part of the assignment.
  
 
== Phase 1 ==
 
== Phase 1 ==
  
The first phase is a 200-300 word informal, written proposal of what you intend to implement in your game: what you imagine your game doing. Your description should identify the objects in your game and include one or more illustrations of your design. The illustrations may be hand-drawn and scanned. Included in your illustrations should be a map of what you envisage the 3D world of your game will look like, with 3-dimensional coordinates of all of the major points in the world.  Your map should include all of the "actors" (moving objects) in the world.  You should identify the coordinates as realistically as possible, being aware that you may need to scale them up or down as you implement your design in code.
+
The first phase is a 200-300 word informal, written proposal of what you intend to implement in your game: what you imagine your game doing. Your description should identify the objects in your game and include one or more illustrations of your design. The illustrations may be hand-drawn and scanned. Include in your illustrations a map of what you envisage the 3D world of your game will look like, with 3-dimensional coordinates of all of the major points in the world.  Your map includes all of the "actors" (moving objects) in the world.  Identify the coordinates as realistically as possible, being aware that you may need to scale them up or down as you implement your design.
  
 
Submit the written proposal on your wiki team-page under '''Proposal''' and '''Map of the World of the Game'''.
 
Submit the written proposal on your wiki team-page under '''Proposal''' and '''Map of the World of the Game'''.
Line 147: Line 38:
 
# Update your team's wiki page with your team's repository path information under '''Repo Path'''
 
# Update your team's wiki page with your team's repository path information under '''Repo Path'''
 
# Create a directory with your seneca id under the branch sub-directory of your team's repository. This will be your home directory for development; for details see: [http://zenit.senecac.on.ca/wiki/index.php/Hints_for_Using_SVN_to_collaborate_on_school_projects#Directory_Structure Directory Structure]
 
# Create a directory with your seneca id under the branch sub-directory of your team's repository. This will be your home directory for development; for details see: [http://zenit.senecac.on.ca/wiki/index.php/Hints_for_Using_SVN_to_collaborate_on_school_projects#Directory_Structure Directory Structure]
# One of the team members should volunteer to export svn://zenit.senecac.on.ca/dpsgam/trunk/15-Controller into the trunk of your team's repository
+
# One of your team members should export svn://zenit.senecac.on.ca/dpsgam/trunk/Framework into the trunk of your team's repository
#: For hints see [[Hints for Using SVN to collaborate on school projects#Start_the_project_by_continuing_an_existing_work | Start the project by continuing an existing work]]
+
#: For detailed steps see [[Hints for Using SVN to collaborate on school projects#Start_the_project_by_continuing_an_existing_work | Start the project by continuing an existing work]]
  
Each team member should have their own successfully compiled version of the 15-Controller sample in their own workspace in the branch sub-directory of their team's repository.
+
Each team member should have their own successfully compiled version of the Framework sample in their own workspace in the branch sub-directory of their team's repository.
Branch submission path: svn://zenit.senecac.on.ca/dps901_103rep??/branches/SenecaID/15C 
+
Branch submission path: svn://zenit.senecac.on.ca/gam666dps901_113??/branches/SenecaID/Framework
  
: ''Start doing the above by branching the 15-Controller into svn://zenit.senecac.on.ca/dps901_103rep??/branches/SenecaID/15C. See here for help: [http://zenit.senecac.on.ca/wiki/index.php/Hints_for_Using_SVN_to_collaborate_on_school_projects#Preparing_Branches.2Fworkspace_for_development Preparing Branches/workspace for development]''
+
: ''Start doing the above by branching the Framework into svn://zenit.senecac.on.ca/gam666dps901_113??/branches/SenecaID/Framework. See here for help: [http://zenit.senecac.on.ca/wiki/index.php/Hints_for_Using_SVN_to_collaborate_on_school_projects#Preparing_Branches.2Fworkspace_for_development Preparing Branches/workspace for development]''
  
  
The source code for the upgraded 15-Controller sample should include the following updates:
+
The source code for the upgraded Framework sample should include the following updates:
* add your own name to the caption for the dialog box
+
* your own name in the caption for the dialog box
* change the window title to include the name of the team
+
* your team name in the window title
  
  
Merge all of the team members' 15C workspaces back to trunk so that the caption of the dialog box shows all of the names of the team members. See  [http://zenit.senecac.on.ca/wiki/index.php/Hints_for_Using_SVN_to_collaborate_on_school_projects#Merging_your_work_back_to_trunk Merging your work back to trunk] for detail
+
Merge all of the team members' Framework workspaces back to trunk so that the caption of the dialog box shows all of the names of the team members. See  [http://zenit.senecac.on.ca/wiki/index.php/Hints_for_Using_SVN_to_collaborate_on_school_projects#Merging_your_work_back_to_trunk Merging your work back to trunk] for details
  
  
 
The purpose of this first phase of the project is twofold:
 
The purpose of this first phase of the project is twofold:
* to define your game in both scope and detail and thereby to give your instructor some idea of your design: whether what you intend is too simple, too complex or about right
+
* to define your game in both scope and detail and thereby to give your instructor some idea of your design, so that your instructor can give you some feedback whether what you intend is too simple, too complex, or about right
* to ensure your instructor that you are ready to work with your own branch of your team's repository and ready to start modifying the framework to suit your team's design.
+
* to show your instructor that you are ready to work with your own branch of your team's repository and ready to start modifying the framework to suit your team's design.
Your submission should enable your instructor to give you feedback and to discuss your proposal in some detail.
 
  
 
Your team should decide its own group to individual ratio for grading purposes and post the agreed ratio on its project page.
 
Your team should decide its own group to individual ratio for grading purposes and post the agreed ratio on its project page.
  
Your team must arrange a time and date to meet with your instructor to discuss the proposal and to commit the different responsibilities of the team members. This meeting should take place no later than week 6 of the semester, preferably earlier.
+
Your team should arrange a time and date to meet with your instructor to review your proposal and to identify the different responsibilities of the team members. This meeting should take place during week 6 of the semester.
  
 
== Phase 2 ==
 
== Phase 2 ==
Line 177: Line 67:
 
The second phase releases a draft of your game without sound or input control.   
 
The second phase releases a draft of your game without sound or input control.   
  
This is your last opportunity to amend your proposal, modify your design and obtain your instructor's approval to any changes.
+
This is your last opportunity to amend your original proposal, modify your design, and obtain your instructor's feedback on your progress.
  
 
== Phase 3 ==
 
== Phase 3 ==
  
The third phase presents your completed game with sound and input control to the class.  Your presentation includes a demonstration of how the game plays along with an explanation of the innovative aspects that your team members have implemented.  Each team has no more than 20 minutes to showcase its game.
+
The third phase presents your completed game with sound and input control to the class.  Your presentation includes a demonstration of how the game plays along with an explanation of the innovative aspects that your team members have implemented.  Each team has no more than 30 minutes to showcase its game.
 
<br />
 
<br />
 
<br />
 
<br />
 
<br />
 
<br />
  
= Some Suggested Upgrades to the Framework =
+
= Suggested Upgrades to the Framework =
  
The Framework in its final stage consists of 12,000 source lines of code.  The Framework is only a starting point and fallback position for the design of your game.  There are numerous opportunities to refactor different parts depending upon what your game requires and what your personal interests are.  Decisions to focus on certain parts should reflect the areas with which you wish to become more familiar.  Listed below are some areas that you should consider in deciding where to devote your energy.  If you wish to add items to this list, consult your instructor.
+
The Framework that you download from the course repository consists of around 12,000 source lines of code.  This version of the Framework is only a starting point and provides a set of fallback/default positions for your course project.  There are many opportunities to refactor different parts depending upon what your game design requires and what your personal interests are.  Decisions to focus on certain parts reflect the areas with which you wish to become familiar.  Listed below are some areas that you should consider in deciding where to devote your energy.  If you wish to add items to this list, consult your instructor.
 
   
 
   
 
Each team will introduce its own upgrades to the Framework. The nature of these upgrades will vary from team to team. Each team member is responsible for a thorough understanding of at least one particular upgrade.
 
Each team will introduce its own upgrades to the Framework. The nature of these upgrades will vary from team to team. Each team member is responsible for a thorough understanding of at least one particular upgrade.
Line 196: Line 86:
 
* challenging upgrades are followed by an *
 
* challenging upgrades are followed by an *
  
== Modeling (Design Component) ==
+
== Design Class ==
 
#  '''game play logic'''
 
#  '''game play logic'''
# import a model script
+
 
+
== Object Class Hierarchy ==
== Design Units (Scene Component) ==
+
# '''design new objects'''
# '''design new objects for the scene'''
+
# import a model script from GAM667
# create billboards – clouds, smoke, vapor trails
+
# create billboards – clouds, smoke
# add stock objects (requires changes to GraphicsCard Component also)
+
# add stock objects
# detect collisions between objects in a scene *
+
# detect collisions between reference frames *
+
 
== Viewpoints (Viewing Component) ==
+
== Camera Class ==
 
# comprehensive camera motion
 
# comprehensive camera motion
  
== 3D Graphics (GraphicsCard Component) ==
+
== Display Class ==
 +
# introduce fog
 +
# change render state
 +
 
 +
== Light Class ==
 +
# introduce emissive light
 +
 
 +
== Graphic Class ==
 
# improve texturing
 
# improve texturing
# introduce fog, emissive light
+
# create new graphic representation for new objects
# create new graphics representation for new objects in the scene
+
 +
== SoundCard Class ==
 +
# sound effects on buffers and optimizing performance
 +
 
 +
== Window API Branch ==
 +
# improve controller input and user dialog
 +
# replace DirectInput with XInput *
 +
 +
== Direct API Branch ==
 
# implement an OpenGL 3.0 version *
 
# implement an OpenGL 3.0 version *
 +
# create an Open Audio version *
 
# use Direct2D for fonts *
 
# use Direct2D for fonts *
 
# replace Direct3D9 with Direct3D10 *
 
# replace Direct3D9 with Direct3D10 *
 
# replace Direct3D9 with Direct3D11 *
 
# replace Direct3D9 with Direct3D11 *
+
# COLLADA
== Sound (SoundCard Component) ==
+
 
# sound effects on buffers and optimizing performance
+
== Framework ==
# replace DirectMusic with DirectSound only
+
# context – implement a database *
# replace DirectMusic and DirectSound with Xaudio2 *
 
# create an Open Audio version *
 
 
== User Interface (Input and UserDialog Components) ==
 
# improve controller input and user dialog
 
# action mapping *
 
# replace DirectInput with Xinput *
 
 
== Framework (Cross-Component) ==
 
# context – implement a database
 
 
# save the current state of the model to a file and restore from a file
 
# save the current state of the model to a file and restore from a file
 +
# implement a scene graph
 
# performance optimizations *
 
# performance optimizations *
 +
 +
= Appointment Schedule for Proposal Acceptance =
 +
{|  border="1"
 +
|-
 +
|Team Name
 +
|Date and Time
 +
|-
 +
|
 +
|Tuesday October 11 11:40AM
 +
|-
 +
|
 +
|Tuesday October 11 12:00PM
 +
|-
 +
|
 +
|Wednesday October 12 11:40AM
 +
|-
 +
|
 +
|Wednesday October 12 12:00PM
 +
|-
 +
|
 +
|Thursday October 13 11:40AM
 +
|-
 +
|
 +
|Thursday October 13 12:00PM
 +
|-
 +
|
 +
|Friday October 14 11:40AM
 +
|-
 +
|}
 +
<br />
 +
 +
= Appointment Schedule for Reviewing Progress =
 +
{|  border="1"
 +
|-
 +
|Team Name
 +
|Date and Time
 +
|-
 +
|
 +
|Tuesday November 15 11:40AM
 +
|-
 +
|
 +
|Tuesday November 15 12:00PM
 +
|-
 +
|
 +
|Wednesday November 16 11:40AM
 +
|-
 +
|
 +
|Wednesday November 16 12:00PM
 +
|-
 +
|
 +
|Thursday November 17 11:40AM
 +
|-
 +
|
 +
|Thursday November 17 12:00PM
 +
|-
 +
|
 +
|Friday November 18 11:40AM
 +
|-
 +
|}
 +
<br />
 +
 +
= Presentation Schedule =
 +
{|  border="1"
 +
|-
 +
|Team Name
 +
|Date and Time
 +
|-
 +
|-
 +
|
 +
|Tuesday December 6 8:15AM
 +
|-
 +
|
 +
|Tuesday December 6 8:45AM
 +
|-
 +
|
 +
|Tuesday  December 6 9:15AM
 +
|-
 +
|
 +
|Thursday December 8 8:15AM
 +
|-
 +
|
 +
|Thursday December 8 8:45AM
 +
|-
 +
|
 +
|Thursday December 8 9:15AM
 +
|-
 +
|}
 +
<br />

Latest revision as of 14:05, 27 September 2011

Due Dates

Proposal outline and team members selected September 29
Proposal completed and members roles selected October 11
Member branches with updated 15-Controller sample ready October 11
Approval meeting with instructor October 11-14
Project Review meeting with instructor November 15-18
Final game presentation December 6 and 8



Project Requirements

Your game involves a real-time audio-visual experience in some sort of 3-D world. The user must be able to control at least some aspects of the game with a controller, and there must be some use of sound, both in the background and in response to some action in your game. The user should have control over which display devices, resolution and input devices are used at any time during the game. Your game may however offer only a subset of the available resolutions and input devices. Finally, your design code must differ significantly from the samples presented in class and you must identify the unique elements of your code in your submission logs. Each game is a team effort. The structure of each team is up to the team members. Each member must contribute their own work in a selected area or areas of their choosing. All members should contribute to the design part of the assignment.

Phase 1

The first phase is a 200-300 word informal, written proposal of what you intend to implement in your game: what you imagine your game doing. Your description should identify the objects in your game and include one or more illustrations of your design. The illustrations may be hand-drawn and scanned. Include in your illustrations a map of what you envisage the 3D world of your game will look like, with 3-dimensional coordinates of all of the major points in the world. Your map includes all of the "actors" (moving objects) in the world. Identify the coordinates as realistically as possible, being aware that you may need to scale them up or down as you implement your design.

Submit the written proposal on your wiki team-page under Proposal and Map of the World of the Game.

Before continuing phase 1, please do the following

  1. Read Hints for Using SVN to collaborate on school projects
  2. Update your team's wiki page with your team's repository path information under Repo Path
  3. Create a directory with your seneca id under the branch sub-directory of your team's repository. This will be your home directory for development; for details see: Directory Structure
  4. One of your team members should export svn://zenit.senecac.on.ca/dpsgam/trunk/Framework into the trunk of your team's repository
    For detailed steps see Start the project by continuing an existing work

Each team member should have their own successfully compiled version of the Framework sample in their own workspace in the branch sub-directory of their team's repository. Branch submission path: svn://zenit.senecac.on.ca/gam666dps901_113??/branches/SenecaID/Framework

Start doing the above by branching the Framework into svn://zenit.senecac.on.ca/gam666dps901_113??/branches/SenecaID/Framework. See here for help: Preparing Branches/workspace for development


The source code for the upgraded Framework sample should include the following updates:

  • your own name in the caption for the dialog box
  • your team name in the window title


Merge all of the team members' Framework workspaces back to trunk so that the caption of the dialog box shows all of the names of the team members. See Merging your work back to trunk for details


The purpose of this first phase of the project is twofold:

  • to define your game in both scope and detail and thereby to give your instructor some idea of your design, so that your instructor can give you some feedback whether what you intend is too simple, too complex, or about right
  • to show your instructor that you are ready to work with your own branch of your team's repository and ready to start modifying the framework to suit your team's design.

Your team should decide its own group to individual ratio for grading purposes and post the agreed ratio on its project page.

Your team should arrange a time and date to meet with your instructor to review your proposal and to identify the different responsibilities of the team members. This meeting should take place during week 6 of the semester.

Phase 2

The second phase releases a draft of your game without sound or input control.

This is your last opportunity to amend your original proposal, modify your design, and obtain your instructor's feedback on your progress.

Phase 3

The third phase presents your completed game with sound and input control to the class. Your presentation includes a demonstration of how the game plays along with an explanation of the innovative aspects that your team members have implemented. Each team has no more than 30 minutes to showcase its game.


Suggested Upgrades to the Framework

The Framework that you download from the course repository consists of around 12,000 source lines of code. This version of the Framework is only a starting point and provides a set of fallback/default positions for your course project. There are many opportunities to refactor different parts depending upon what your game design requires and what your personal interests are. Decisions to focus on certain parts reflect the areas with which you wish to become familiar. Listed below are some areas that you should consider in deciding where to devote your energy. If you wish to add items to this list, consult your instructor.

Each team will introduce its own upgrades to the Framework. The nature of these upgrades will vary from team to team. Each team member is responsible for a thorough understanding of at least one particular upgrade.

Two upgrades are mandatory, while some are challenging:

  • mandatory upgrades are in bold
  • challenging upgrades are followed by an *

Design Class

  1. game play logic

Object Class Hierarchy

  1. design new objects
  2. import a model script from GAM667
  3. create billboards – clouds, smoke
  4. add stock objects
  5. detect collisions between reference frames *

Camera Class

  1. comprehensive camera motion

Display Class

  1. introduce fog
  2. change render state

Light Class

  1. introduce emissive light

Graphic Class

  1. improve texturing
  2. create new graphic representation for new objects

SoundCard Class

  1. sound effects on buffers and optimizing performance

Window API Branch

  1. improve controller input and user dialog
  2. replace DirectInput with XInput *

Direct API Branch

  1. implement an OpenGL 3.0 version *
  2. create an Open Audio version *
  3. use Direct2D for fonts *
  4. replace Direct3D9 with Direct3D10 *
  5. replace Direct3D9 with Direct3D11 *
  6. COLLADA

Framework

  1. context – implement a database *
  2. save the current state of the model to a file and restore from a file
  3. implement a scene graph
  4. performance optimizations *

Appointment Schedule for Proposal Acceptance

Team Name Date and Time
Tuesday October 11 11:40AM
Tuesday October 11 12:00PM
Wednesday October 12 11:40AM
Wednesday October 12 12:00PM
Thursday October 13 11:40AM
Thursday October 13 12:00PM
Friday October 14 11:40AM


Appointment Schedule for Reviewing Progress

Team Name Date and Time
Tuesday November 15 11:40AM
Tuesday November 15 12:00PM
Wednesday November 16 11:40AM
Wednesday November 16 12:00PM
Thursday November 17 11:40AM
Thursday November 17 12:00PM
Friday November 18 11:40AM


Presentation Schedule

Team Name Date and Time
Tuesday December 6 8:15AM
Tuesday December 6 8:45AM
Tuesday December 6 9:15AM
Thursday December 8 8:15AM
Thursday December 8 8:45AM
Thursday December 8 9:15AM