GAM666/DPS901 Victorious Secret

From CDOT Wiki
Revision as of 19:02, 30 October 2011 by Minooz (talk | contribs) (4.7.0 Camera)
Jump to: navigation, search


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


Victorious Secret

A team created solely on pure awesome? Say it ain't so!

Game Name Goes here

1.0 Project Marking Percentage

Group work:      50%
Individual work: 50% +
----------------------
Total           100%

2.0 Repository

2.1.0 Repo ID

svn://zenit.senecac.on.ca/dps901_113rep4

2.2.0 Trunk Status

committed by [NAME] / being committed by [NAME]

3.0 Team Members

Team Member Role Status
Ozzy Mirza GUI (Menus, Heads Up Display) -
Victor Tran UI (Inputs, Input Configuration) -
Minoo Ziaei Graphics (Lights and Cameras) -
Chi Lea Tran Graphics (Models and Textures) -
Alex Chung Audio (Sound Effects, Background Music) -
Bryce Harmidy Physics (Collision, Projectile Motion) -
  • Physics will most likely require an extra to help out

eMail All

4.0 Proposal

4.1.0 Objective

The purpose of this project is to create a simple 3D game using the DirectX framework in 8 weeks.

4.2.0 Concept

Our idea consists of launching a block in the air and landing it in a target area. Launching the block will consist of a spring mechanism similar to what is observed in a pinball machine. The user will control the power by holding down a button and releasing it at the desired time. The launcher will be aimed diagonally to allow the projectile to move in a forward motion and be pulled down by gravity.

Sketch of Front view
Sketch of Top view (Arrows only indicate ability to rotate launcher)

4.3.0 Controls

We plan to use one button on the controller (2 on a gamepad) to control the power of the launcher. With time permitting, we may include the use of the analog stick to determine the direction of the projectile.

Layout of the controls

4.4.0 GUI Elements

4.4.1 Menu

The In-Game Menu will allow the user to start a new game, quit, or resume game.

4.4.2 Heads Up Display

The game will have two main elements for the HUD. One is the current player score, and the other is the power meter.

4.4.2.1 Score

The score will be positioned on the top right corner of the screen. Each time the player lands a block on a target, the respective amount will be added and displayed on this counter. This will be used for the player to gauge how well they're doing.

4.4.2.2 Power Meter

The power meter will be positioned on the bottom left of the screen. When the player presses the launch button, the power bar will start to grow until the player lets go of the button or it reaches it's maximum. This will give the player an idea of how much power they're using, aiding them in hitting the targets.

4.4.2.3 Targeting Aid

Time permitting, there will be a dotted line extending outwards from the launcher that will aid the player when aiming. It will be a straight line that represents roughly where the block will go, but not where it will land.

4.5.0 Audio

Sound effects and background music will be used to create a more full experience.

4.5.1 Sound Effects

Sound effects will play when:

  • the player is holding down the button
  • the projectile is launched
  • when the projectile lands
  • a rewarding sound when the projectile lands in the target
  • a disapproving sound when the projectile misses the target.


4.5.2 Background Music

This is to be determined. We will require music that we can rightfully use, for example, the unique and majestic musical stylings of saraJ00n: http://www.youtube.com/watch?v=QH2-TGU1wu4

4.6.0 Lighting

Our basic lighting set up will involve one large light source representing the sun. This light source will need to be able to light all of the core elements (launcher, target pads).

Time permitting, each target pad will emit a coloured light, and a red or a green light will emit where the block lands signifying a target hit or a target miss.

4.7.0 Camera

Camera will be set-up at the shooting location, pointing diagonally to the direction of the target.

  • 30/Oct/2011
In addition to the instructor's suggestion we can consider the third option. So, the first two options will be included in the game, the third option will be as well, if time and the potential of the framework permits:
1.a - Static -> Will be set-up with a default slight distance behind the launch location.
1.b - Static -> Will be set-up with a default slight distance behind the target location.
2 - Dynamic -> Will be attached to each projectile when they are created.
We can either give control of the camera (which direction to look) to the player or we can just give the zoom-in and zoom-out control to the player and have the default direction of view toward the target.
Sketch of the Demo Camera
3 - Dynamic (Demo) -> This will be just a demo camera, which will cycles around a circle which has a diameter equal to the distance between launcher and the target. (not sure if we this is possible here, needs more thought and help)
Questions:
Where to set the specific speed based on the distance?
Should the transformation matrix be set in the update() function in Design.cpp?
Should we store this distance somewhere in Desing.cpp?



5.0 Map of the World of the Game

Instructor's Comments

Page sections don't require numbering on a wiki

Undiscussed issues

  • nothing on repo yet
  • is the in game menu separate from the configuration dialog
    • do you intend to use splash screens
  • controls
    • you should have enough time to incorporate the analog stick
  • heads up display
    • use a texture and scale it
  • lighting
    • add emissive component to light - simple
    • simple to attach a light to an object
  • other notes
    • many projectiles
    • steering them in flight - camera attached
    • fading lights on hit targets
    • what happens when sun is off

Suggestions

  • make sure that each of you is comfortable with svn - put in a small change to the framework - merge back into trunk - update
    • you will be doing this often as time goes by
  • code the core of the game first with existing elements of the framework
  • design and code new objects - like terrain and projectile - use create box as a template
  • separate textures and vertex structures as in the framework
  • divide responsibilities on different aspects of interest and code so that failure to debug new code does not close down the project
  • if you need math help ask me

Discussed

  • change the repo id to a link
  • shouldn't need extra physics help for this - could be kept quite simple
  • other notes
    • use many triangles for terrain to improve lighting effects
    • any model input - writing the interface could take some work
  • cameras
    • simple to attach a camera to an object
    • consider adding camera to each projectiles

Any other thing you find necessary