Difference between revisions of "DPS901/Woolooloo"

From CDOT Wiki
Jump to: navigation, search
(Proposal)
(Progress Pictures of Game)
 
(57 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{GAM666/DPS901 Index | 20123}}
 
{{GAM666/DPS901 Index | 20123}}
= Starbox =
+
= Spacelizard : Sliddy's Adventure =
 
== Project Marking Percentage ==
 
== Project Marking Percentage ==
 
<big>
 
<big>
Line 11: Line 11:
 
== Repository ==
 
== Repository ==
 
=== Repo ID ===
 
=== Repo ID ===
 +
dps901_123arep1
 +
 
=== Trunk Status ===
 
=== Trunk Status ===
committed by [NAME] / being committed by [NAME]
+
*Initial Commit to trunk October 9th
 +
 
 +
*<u>'''Revision 1 commit October 25th'''</u>
 +
**Flying ship with user movement
 +
**Rail cam
 +
 
 +
 
 +
*<u>'''Revision 2 commit November 9th'''</u>
 +
**Introduced moving objects
 +
**Tunnel level (stage 1)
 +
**Ship can shoot bullets
 +
**new and improved object Cross-hair, drawn on top of everything
 +
**Ship tilting (actual ship movement sensation (roll, pitch, yaw))
 +
 
 +
 
 +
*<u>'''Revision 3 commit November 22nd'''</u>
 +
**sound effects are almost fully implemented
 +
**collision with bounding shapes is implemented
 +
**models for enemies have been added
 +
**level has been redesigned, including some ship models
 +
 
 +
 
 +
 
 +
*<u>'''Revision 4 commit November 26th'''</u>
 +
**Sound effects fully implemented
 +
**First person camera fully implemented
 +
**Enemies fully implemented
 +
**HUD partially implemented
 +
**Special effects implemented ( stars, asteroids, burner, level form )
 +
**Game data mostly implemented ( score and health )
 +
**Game over screen, player death
 +
 
 +
 
 +
*<u>'''Revision 5 commit December 2nd'''</u>
 +
**Mini-boss implemented
 +
**Dialog box is changed a bit
 +
**Respawn/restart added
 +
**Power-ups implemented
 +
**Level layout changed slightly
 +
**Frustum culling modified
 +
**Improved enemy "AI" (enemies shoot and move around and have formations)
 +
**Volume control implemented
 +
**Pause screen implemented
 +
**Fog and background change
 +
**Minor bugs fixed (flame, bullets, etc.)
 +
**Ship movement smoothing
 +
**HUD implemented with dynamic text
 +
**Found more sound effects
 +
**Fixed HUD texture/sprites from not displaying
 +
 
 +
 
 +
*<u>'''Revision 6 commit December 5th'''</u>
 +
**Boss implemented
 +
**Dialog box complete
 +
**In-game menu complete
 +
**Sound effects nearly complete (missing mini-boss attack/entrance)
 +
**Other stuff done (can't remember)
 +
**Finished the game for presentation
 +
 
 
== Team Members' Emails ==  
 
== Team Members' Emails ==  
 
# [mailto:nbguzman@learn.senecac.on.ca?subject=dps901 Neil Guzman]
 
# [mailto:nbguzman@learn.senecac.on.ca?subject=dps901 Neil Guzman]
Line 20: Line 80:
  
 
== Proposal ==
 
== Proposal ==
Our game will be a 3D rail shooter/shoot 'em up set in space. Objective is to reach the end point without dying to space debris, obstacles, and enemies.
+
The basic idea of our game is that you are in a flying spaceship. The way the game works is by having a camera which is moving on a fixed path along with a spaceship which you control on the screen that is unable leave the camera`s view. You are able to move the spaceship either up or down, left or right. The camera moves forward along with your ship. Along the way, you may encounter enemies which may or may not shoot at you and/or make your progress more difficult (crashing into you or shooting you down, forcing you to restart the game). You may also encounter moving or static obstacles such as asteroids or pillars/buildings. Your goals is to reach the end of the level without your health/shield falling below 0% and get as many points as possible by avoiding getting hit and destroying enemies.
 +
 
 
=== Group Member Roles ===
 
=== Group Member Roles ===
  
 
====Alex====
 
====Alex====
 
*Collision Detection
 
*Collision Detection
*
+
*Game Play Data (damage received, enemy/environment damage)
 +
*Enemy and Object Movement/Physics
 +
*Ship shooting and upgrades
  
*
 
 
====Neil====
 
====Neil====
* Camerawork (3rd person camera)
+
*Camerawork (1st person & 3rd person camera)
OR
+
*<s>Mini Map (almost impossible to do in the span of Monday December 3rd to Tuesday December 4th)</s>
* Modelling (COLLADA and stuff)
+
*Background Music & Sound Effects
 +
*HUD with game related information (scores, etc.)
 +
*Improved Controls
 +
*Improve Dialog control box
 +
*Pausing game
  
 
====Mark====
 
====Mark====
*Improve Texturing
+
*Created models and textures for the game
OR
+
*Level effects ( asteroids, stars, explosions, fog, etc)
*Interface
+
*Reset function
 +
*Ship animation ( afterburner, smooth movement )
 +
*Start Game Menu
  
*
+
== Framework and Our Project==
 +
{| class="wikitable" border="1"
  
== Must Have ==
+
! Feature !! Framework !! Priority !! Assigned to
 +
|-
 +
| Changeable resolution ||  style="background: greenyellow; color: black" | In framework || - || -
 +
|-
 +
| <s>Directionaly fixed moving camera</s> ||  style="background: green; color: white" | '''Added''' || High || Neil
 +
|-
  
*
+
| <s>Control sound</s> ||  style="background: green; color: white" | '''Added'''  || Medium || Neil
  
*
+
|-
  
*
+
| Hide HUD ||  style="background: greenyellow; color: black" | In framework  ||  - || -
  
== Good to Have ==
+
|-
  
*
 
  
*
+
| <s>Improved UI(Shield, score, etc)</s> || style="background: green; color: white" | '''Complete'''  || Medium || Neil
  
*
+
|-
  
== Add if Time Permits ==
+
| <s>Enemies</s> ||  style="background: green; color: white" | '''Added'''  || High || Alex and Mark
*
 
  
*
+
|-
  
*
+
| Controller support ||  style="background: greenyellow; color: black" | In framework  || - || -
 +
 
 +
|-
 +
 
 +
| Mouse support ||  style="background: greenyellow; color: black" | In framework  || - || -
 +
 
 +
|-
 +
 
 +
| <s>Crosshair</s> ||  style="background: green; color: white" | '''Added'''  || High || Mark
 +
 
 +
|-
 +
 
 +
| Highscore for points|| Need to add  || Low || Alex
 +
 
 +
|-
 +
 
 +
| <s>Debris/Obsticals</s> ||  style="background: limegreen; color: white" |  Need to '''add more''' || High || Mark
 +
 
 +
|-
 +
 
 +
| <s>Fireable weapons</s> ||  style="background: green; color: white" |  '''Added''', currently ship shoots limited amount of bullets || High || Alex
 +
 
 +
|-
 +
 
 +
| <s>Collision</s> || style="background: green; color: white" | '''Added''' || High || Alex
 +
 
 +
|-
 +
 
 +
 
 +
 
 +
| Rings to fly through for points || Need to add || low || ?
 +
 
 +
|-
 +
 +
|}
  
 
== Map of the World of the Game ==
 
== Map of the World of the Game ==
 +
Click on the links to go to the picture.
 +
 +
[http://zenit.senecac.on.ca/wiki/index.php/File:Map.png Link]
 +
== Other objects in our game ==
 +
=== Main Ship (player) ===
 +
[http://zenit.senecac.on.ca/wiki/index.php/File:Player_ship.jpg  Link]
 +
=== Enemies ===
 +
==== Peon ====
 +
[http://zenit.senecac.on.ca/wiki/index.php/File:Peon.jpg Link]
 +
==== Sentinel ====
 +
[http://zenit.senecac.on.ca/wiki/index.php/File:Sentinel.jpg Link]
 +
 +
==== Boss ====
 +
===== Top =====
 +
[http://zenit.senecac.on.ca/wiki/index.php/File:TopBoss.jpg Link]
 +
 +
===== Side =====
 +
[http://zenit.senecac.on.ca/wiki/index.php/File:SideBoss.jpg Link]
 +
== Progress Pictures of Game ==
 +
==== <u>'''Revision 1 commit October 25th'''</u> ====
 +
 +
==== <u>'''Revision 2 commit November 9th'''</u> ====
 +
 +
==== <u>'''Revision 3 commit November 22nd'''</u> ====
 +
 +
==== <u>'''Revision 4 commit November 26th'''</u> ====
 +
 +
==== <u>'''Revision 5 commit December 2nd'''</u> ====
 +
 +
==== <u>'''Revision 6 commit December 5th'''</u> ====
 +
''final milestone, ready for presentation''
 +
<gallery widths=150px heights=150px perrow=7>
 +
File:Woolooloo_DialogBox.png|Dialog box & option menu
 +
File:Woolooloo_GameMenu.PNG|Ingame menu
 +
</gallery>
 +
 +
== Things We Learned and Tips ==
 +
=== Mark ===
 +
*If you decide on doing modeling for the framework, you will need to create a method for importing models into the framework. Chris' recommends using Collada loading, which may be difficult. There are also some code snippets in some of the older frameworks that use directX mesh loading which can also be used.
 +
*If you decide on modeling, start early. This will give you more time to get familiar with a modeling software that you can pick and can give you more time in case you find that the software you picked does not meet the needs of your specifications. If you are new to modeling, try using some less professional modeling software like: AC3D, Blender, or 3DSMax studio. This will help you get familiar with a 3D modeling environment.
 +
*If you plan on doing textures, remember to do research on alpha channels and how to make them in programs like Photoshop or gimp.
 +
**Here is quick tutorial on how to do it in Photoshop http://www.youtube.com/watch?v=0Es3w5oYxJY
 +
*When working with a modeling program, make sure you know your where your normals are facing or else the model may not show up in your game
 +
*When using a modeling software, try to take advantage of the multiple views, such as top, side, front, back, etc.
 +
*When using a modeling software, try to learn the hot keys for that software, as it will make your process in making objects much quicker.
 +
*For making a menu for the game, you can use models and textures in game to display your interface.
 +
 +
=== Alex ===
 +
*In Chris's framework, there is a function for collision, it is just being able to implement it is incomplete (need to make iObject inhereit from Shape)
 +
*Bounding spheres works properly, but you will need to change his code to track the vectors for axis aligned boxes
 +
*If you want to do things over time, treat update like a while loop, make counters for things and test if they are larger than a certain number
 +
 +
=== Neil ===
 +
*When changing the dialog box images, make sure to look at APIUserInput and not in APIWindows for handling dialog controls. APIUserInput is the file that handles the dialog box display (HINT: use WM_PAINT messages)
 +
*If you ever want to add minimaps learn some of these concepts (texture rendering, viewport rendering, multiple swapchains, how to display textures on top of things on the screen)
 +
*Sound effects: know how xwma and wav buffers differ from each other
 +
*From what i researched, .bmp images are the easiest to use for displaying images (using BitBlt)
 +
*Working in milestones is the way to go (establish an easy goal and work from there)
 +
**for us our first milestone was to have a ship moving forward in the z axis with random objects around
 +
*scene animation is hard so if you plan on doing that, do it in the beginning
 +
*pausing the game will require to stop rendering, not the suspending of the window

Latest revision as of 12:30, 6 December 2012


GAM666/DPS901 | Weekly Schedule | Student List | Project Requirements | Teams and their Projects | Student Resources


Spacelizard : Sliddy's Adventure

Project Marking Percentage

Group work:      40%   
Individual work: 60% + 
-------------------------
Total           100%

Repository

Repo ID

dps901_123arep1

Trunk Status

  • Initial Commit to trunk October 9th
  • Revision 1 commit October 25th
    • Flying ship with user movement
    • Rail cam


  • Revision 2 commit November 9th
    • Introduced moving objects
    • Tunnel level (stage 1)
    • Ship can shoot bullets
    • new and improved object Cross-hair, drawn on top of everything
    • Ship tilting (actual ship movement sensation (roll, pitch, yaw))


  • Revision 3 commit November 22nd
    • sound effects are almost fully implemented
    • collision with bounding shapes is implemented
    • models for enemies have been added
    • level has been redesigned, including some ship models


  • Revision 4 commit November 26th
    • Sound effects fully implemented
    • First person camera fully implemented
    • Enemies fully implemented
    • HUD partially implemented
    • Special effects implemented ( stars, asteroids, burner, level form )
    • Game data mostly implemented ( score and health )
    • Game over screen, player death


  • Revision 5 commit December 2nd
    • Mini-boss implemented
    • Dialog box is changed a bit
    • Respawn/restart added
    • Power-ups implemented
    • Level layout changed slightly
    • Frustum culling modified
    • Improved enemy "AI" (enemies shoot and move around and have formations)
    • Volume control implemented
    • Pause screen implemented
    • Fog and background change
    • Minor bugs fixed (flame, bullets, etc.)
    • Ship movement smoothing
    • HUD implemented with dynamic text
    • Found more sound effects
    • Fixed HUD texture/sprites from not displaying


  • Revision 6 commit December 5th
    • Boss implemented
    • Dialog box complete
    • In-game menu complete
    • Sound effects nearly complete (missing mini-boss attack/entrance)
    • Other stuff done (can't remember)
    • Finished the game for presentation

Team Members' Emails

  1. Neil Guzman
  2. Alex Craig
  3. Mark Aronin
  4. eMail All

Proposal

The basic idea of our game is that you are in a flying spaceship. The way the game works is by having a camera which is moving on a fixed path along with a spaceship which you control on the screen that is unable leave the camera`s view. You are able to move the spaceship either up or down, left or right. The camera moves forward along with your ship. Along the way, you may encounter enemies which may or may not shoot at you and/or make your progress more difficult (crashing into you or shooting you down, forcing you to restart the game). You may also encounter moving or static obstacles such as asteroids or pillars/buildings. Your goals is to reach the end of the level without your health/shield falling below 0% and get as many points as possible by avoiding getting hit and destroying enemies.

Group Member Roles

Alex

  • Collision Detection
  • Game Play Data (damage received, enemy/environment damage)
  • Enemy and Object Movement/Physics
  • Ship shooting and upgrades

Neil

  • Camerawork (1st person & 3rd person camera)
  • Mini Map (almost impossible to do in the span of Monday December 3rd to Tuesday December 4th)
  • Background Music & Sound Effects
  • HUD with game related information (scores, etc.)
  • Improved Controls
  • Improve Dialog control box
  • Pausing game

Mark

  • Created models and textures for the game
  • Level effects ( asteroids, stars, explosions, fog, etc)
  • Reset function
  • Ship animation ( afterburner, smooth movement )
  • Start Game Menu

Framework and Our Project

Feature Framework Priority Assigned to
Changeable resolution In framework - -
Directionaly fixed moving camera Added High Neil
Control sound Added Medium Neil
Hide HUD In framework - -
Improved UI(Shield, score, etc) Complete Medium Neil
Enemies Added High Alex and Mark
Controller support In framework - -
Mouse support In framework - -
Crosshair Added High Mark
Highscore for points Need to add Low Alex
Debris/Obsticals Need to add more High Mark
Fireable weapons Added, currently ship shoots limited amount of bullets High Alex
Collision Added High Alex
Rings to fly through for points Need to add low  ?

Map of the World of the Game

Click on the links to go to the picture.

Link

Other objects in our game

Main Ship (player)

Link

Enemies

Peon

Link

Sentinel

Link

Boss

Top

Link

Side

Link

Progress Pictures of Game

Revision 1 commit October 25th

Revision 2 commit November 9th

Revision 3 commit November 22nd

Revision 4 commit November 26th

Revision 5 commit December 2nd

Revision 6 commit December 5th

final milestone, ready for presentation

Things We Learned and Tips

Mark

  • If you decide on doing modeling for the framework, you will need to create a method for importing models into the framework. Chris' recommends using Collada loading, which may be difficult. There are also some code snippets in some of the older frameworks that use directX mesh loading which can also be used.
  • If you decide on modeling, start early. This will give you more time to get familiar with a modeling software that you can pick and can give you more time in case you find that the software you picked does not meet the needs of your specifications. If you are new to modeling, try using some less professional modeling software like: AC3D, Blender, or 3DSMax studio. This will help you get familiar with a 3D modeling environment.
  • If you plan on doing textures, remember to do research on alpha channels and how to make them in programs like Photoshop or gimp.
  • When working with a modeling program, make sure you know your where your normals are facing or else the model may not show up in your game
  • When using a modeling software, try to take advantage of the multiple views, such as top, side, front, back, etc.
  • When using a modeling software, try to learn the hot keys for that software, as it will make your process in making objects much quicker.
  • For making a menu for the game, you can use models and textures in game to display your interface.

Alex

  • In Chris's framework, there is a function for collision, it is just being able to implement it is incomplete (need to make iObject inhereit from Shape)
  • Bounding spheres works properly, but you will need to change his code to track the vectors for axis aligned boxes
  • If you want to do things over time, treat update like a while loop, make counters for things and test if they are larger than a certain number

Neil

  • When changing the dialog box images, make sure to look at APIUserInput and not in APIWindows for handling dialog controls. APIUserInput is the file that handles the dialog box display (HINT: use WM_PAINT messages)
  • If you ever want to add minimaps learn some of these concepts (texture rendering, viewport rendering, multiple swapchains, how to display textures on top of things on the screen)
  • Sound effects: know how xwma and wav buffers differ from each other
  • From what i researched, .bmp images are the easiest to use for displaying images (using BitBlt)
  • Working in milestones is the way to go (establish an easy goal and work from there)
    • for us our first milestone was to have a ship moving forward in the z axis with random objects around
  • scene animation is hard so if you plan on doing that, do it in the beginning
  • pausing the game will require to stop rendering, not the suspending of the window