168
Production Document Operation Blast Bryan Solero [email protected] Dominic Santoro [email protected] Camron Weeks [email protected] Nicholas Guzman [email protected] TJ Farnie [email protected] Michael Herner [email protected] Kahran Ghosalkar [email protected] Alex Hernandez [email protected] Tristan Helmink [email protected] Andrew Kilmas [email protected] Hao Zhu Chen [email protected]

nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Production DocumentOperation Blast

Bryan Solero [email protected] Santoro [email protected] Weeks [email protected] Guzman [email protected] Farnie [email protected] Herner [email protected] Ghosalkar [email protected] Hernandez [email protected] Helmink [email protected] Kilmas [email protected] Zhu Chen [email protected]

Page 2: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms
Page 3: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Table of ContentsGame Charter……………………………………………………………………………1Interactivity……………………………………………………………………………….6Detailed Design Breakdown………………………………………………………….13Characters……………………………………………………………………………...19Weapons………………………………………………………………………………..31Power-ups……………………………………………………………………………...44Levels and Maps………………………………………………………………………49Combat System………………………………………………………………………..57Game Logic, Algorithms, and Rules…………………………………………………58Reference of Key Elements…………………………………………………………..67Art and Production Design……………………………………………………………69Technical Design Overview…………………………………………………………..84Milestone Deliverables………………………………………………………………..85Development Environment…………………………………………………………...86System Architecture…………………………………………………………………...87System Architecture Flow Chart……………………………………………………..88System Architecture Context Model Description…………………………………...89Module Breakdowns…………………………………………………………………..90FX Manager…………………………………………………………………………….91Memory Map……………………………………………………………………………93Code Review Plan……………………………………………………………………..94Integration Plan………………………………………………………………………...95Testing Plans…………………………………………………………………………..96Game Folder Hierarchy…...................................................................................97

Page 4: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Game Charter

Vision Statement

Our vision as team N Squared is to create a game that will serve to display the astonishing talents and skills in the areas of programming and art through the development of a creative and enjoyable game. To meet this goal, we plan to create a game that is innovative and of exemplary quality. Furthermore we will implement quality assurance, quality control, and frequent debugging to accomplish our goals as well as creating a feasible schedule and holding to it as well as we can. Through dedication and hard work we plan to achieve our goal and present a game worthy of presenting during Final Project Presentation and to GP Staff.

Meeting Schedule

The schedule will take into account for all the team including Internal Producer(s) during Month One of Final Project having a second class, Month Two of Final Project all art and programmers have a second class, online or on campus. Month Three of Final Project Internal Producer(s) have a second class and Month Four of Final Project all art team members have a second class.

During the pre-production phase, which includes development of the design document and technical document, we will meet at school in one of the Final Project rooms, Open Labs or available room designated by the Internal Producer(s) between four to eight hours six days a week. Task will be assigned at the beginning of the work day and will be submitted for review by the determined deadline. The whole team will put forth full effort during the meetings.

During the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms are available we will meet outside of school at a team member's house (TBD). We will meet eight hours a day at least six days a week. At least three times a week the leads will go to school to test the game build on the test machine. Sunday will be left free for all team members to go home and rest up unless the Internal Producer(s) deems it necessary to meet, or ask a team member to complete an assignment before the next meeting on Monday. All meetings will be presided over by one or more of the Internal Producer(s) and the team are expected to maintain a high level of productivity and efficiency during the meeting period.

 Hours Worked Per Week

1

Page 5: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Team N Squared will be meeting for the next five months, six days a week. The hours per week will be at least 48 hours, but will not exceed 60 hours. If the Internal Producer(s) deems working on the seventh day the team is expected to work 5 hours, max 8 hours. Teams are required to meet certain deadlines during the week; if a certain team member is behind he/she will be taking that assignment home and try to complete it before the next meeting. All team members are required to take a lunch/dinner break for one hour before the fifth hour of the work day. All team members can freely take small breaks on their own discretion between 10 to 15 minutes.

 Emergency Plans When Things Go Wrong

In the event of a team member becoming too ill to attend a meeting, the team member is to notify the Internal Producer(s) promptly by email, Skype, or a phone call. The team member is to maintain communication with the team though Skype and work from home. If the team member is too ill to work, the Internal Producer(s) will reassign the team member's tasks, if necessary.

In the event of a team lead becoming ill to attend a meeting, they will follow the above procedures. If the team lead is too ill to work at all, the Internal Producer(s) will either appoint an acting team lead or direct team member to report to the other team leads.

If the work location must be changed due to any circumstances, the Internal Producer(s) will procure a new location and inform all team members of the change.

In the event of a lag in the schedule, the Internal Producer(s) will notify the team that we have entered crunch time and will be meeting on the weekend, or for longer hours during the day.

Any team issue which occur during the project(ex. Lack of cohesiveness, miscommunication, subpar performance for any reason, etc.), the Internal Producer(s) will be notified by email or either in person and action will be taken by the Internal Producer(s) or the team leads to rectify the situation by sending documentation on what happened to the GP staff and External Producer(EP) and Art Director(AD).

Any weather related issues such as flood or a hurricane will be dealt with by the Internal Producer(s). If a new location must be found, the Internal Producer(s) will find it and notify the team. If the meeting must be rescheduled, the Internal Producer(s) will pick a new meeting time and notify the team as well as adjust the schedule accordingly.

2

Page 6: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

In the event the Internal Producer(s) had an emergency or fallen ill, they will follow the above procedures. If the Internal Producer(s) is too ill to work at all, the team leads will take over assigning task and keep constant communication with the Internal Producer(s).  Decision-Making Process

Any team decisions that need to be made for the game will be done in team meetings. Discussion during these meetings will be limited to 20 minutes per discussion point. If the team cannot come to a decision after 20 minutes of discussion, the Internal Producer(s) will make the final decision.

Any team member is allowed to dispute this final decision either in a subsequent meeting or by submitting a change request form to the team leads or the Internal Producer(s). It is up to each team member to voice their opinion on any given topic and they waive their right to complain constructively if they choose not to speak during a team meeting.

Rules of Conduct

When any team member doesn’t follow Rules of Conduct the Internal Producer(s) are subject to follow the disciplinary actions listed below in order of warnings:

1. For a first offense of a minor rule, such as tardiness or creating a distraction, the team member will be notified by the Internal Producer of the infraction and asked to curb that behavior. A repeat offense of a minor rule will be treated as a first major offense.

2. For the first major offense, the team member will be notified by the Internal Producer and be given a warning, and the action conducted will be documented and saved for future involvement.

3. If the team member infracts upon a major rule for a second time, he will be pulled outside with both Internal Producers notifying him of the ongoing problem; a document will also be written up and sent to the GP staff to advise them of a potential situation.

4. If the team member continues to infract upon the established rules for a third time, another document will be written up and sent to the GP staff requesting a meeting be held with the offending team member.

All Team members are expected to show respect to one another. Fighting, negative sarcasm, insulting is not to be tolerated and will be dealt with via appropriate channels. Any critiques given to any team member are to be constructive only and the person giving the critique should have a possible solution ready when making the critique.

3

Page 7: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

All team members are expected to show up on time to all meetings. If a team member is late they must have a valid excuse. With or without an excuse, the tardiness will be documented. If a team member knows ahead of time that they will be late, they must notify the Internal Producer(s) promptly.

All team members are expected to behave in a professional manner. Any issues related to anything outside the workplace are to be kept outside the workplace. If the issue is dire, the team member may approach the Internal Producer(s) for guidance and/or conflict resolution with the situation. Any grievances among the team member are to be kept civil during the work day. There will be no sabotaging of other team member's work or property; this will not be tolerated and will be dealt with via appropriate channels.

All team members are expected to work in a professional environment, not using YouTube unless it's work related, not playing games unless one is on break or lunch/dinner break, not surfing web sites that are not work related, idle chit-chat only if it involves work related topics, and not having loud music that will agitate all team members . All team members are not to abuse small or lunch/dinner breaks; this will not be tolerated and will be documented as tardiness or two hours out.

Team Roles

These are the roles that students in Final Project will have to take part in. Furthermore, given the team’s size, each student will have two or more roles in order to complete all tasks and complete the ultimate objective of creating a game.

Internal Producer: Santoro, Dominic and Solero, Bryan. Leads the team in each meeting, schedules project tasks and meeting times, manages all project risks and constraints, and maintains the morale and work ethic of each team member in order to lead them to success.

ArtistsArt Lead: Klimas, Andrew. Assist the Internal Producers in leadership and maintenance of the art team and relate information given by the Internal Producers and GP Staff to the artists.Environmental Artist: Herner, Michael. Model all 3D assets needed to lay out each level of the game.Technical Artist: Chen, Hao Zhu. Develop all rigs, scripts, and GUI for 3D assets that need to be animated in the game.Animator: Chen, Hao Zhu. Animate all 3D assets that need to be animated in the game.Character Artist: Chen, Hao Zhu. Create all 3D characters that will be featured in the game.

4

Page 8: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

UI Artist: Herner, Michael. Design and create all menus and HUD assets for the game to help the user be aware of and navigate through the game world.Effects Artist: Klimas, Andrew. Create all visual effects, weapon projectiles, and skybox assets for the game.Concept Artist: Chen, Hao Zhu; Herner, Michael; and Klimas, Andrew. Create all 2D conceptual art for the game to act as a guideline for how game’s art elements will look and feel.

ProgrammersTech Lead: Farnie, TJ. Assist the Internal Producers in leadership and maintenance of the development team and relate information given by the Internal Producers and GP Staff to the programmers.AI Programmer: Weeks, Camron “Dante”. Generate AI Logic for all not-player-controlled (NPC) assets such as enemies and remove any bugs or errors found during creation.Graphics/Rendering Programmer: Ghosalkar, Kahran. Create a functioning import and export system for all art assets and remove any bugs or errors found during creation.Tech Engineer: Ghosalkar, Kahran. Create a functional game engine for the entire game to run on, create collision boxes for all 3D art assets found in the game world that can be collided with, and remove any bugs or errors found during creation.Scripting Programmer: Farnie, TJ. Create all scripting events, gameplay triggers, and events, and remove any bugs or errors found during creation.UI Programmer: Guzman, Nicholas. Relay all statistical information to the user in real time via the HUD, and remove any bugs or errors found during creation.Animation Programmer: Helmink, Tristan. Create an exporter for all animations and remove any bugs or errors found during creation.Special FX Programmer: Ghosalkar, Kahran. Create all effects and shaders in the game world and remove any bugs or errors found during creation.Gameplay Programmer: Hernandez, Alex. Create a front-end audiovisual feedback system for the game including a camera system and audio manager.

5

Page 9: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Interactivity Summary

Operation BLAST is a competitive sidescroller with tons of shoot 'em up action. In the game, the player runs and guns through hordes of enemies while evading their attacks. To add to the action, players will split up and compete in their own separate planes, trying to best each other's scores.

Goal

The goal of the game is to best your opponent's score and complete the level. As you kill enemies, your score increases. Faster killing also allows for a score multiplier to build up, further increasing the points awarded for killing an enemy.

Defeat the end boss

Interface

1. Score - The current amount of points the player has received. This number will change when certain actions have been completed (See Reference of Key Elements pg.62). At pre-determined point amounts; 100, 500, 1000, 5000, 10000 etc. the score will render twice as large to alert the player of their accomplishment and fade away after a second.

6

Page 10: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

2. Lives – Shows the number of lives the player has. When a player has died, if they have a life they may use it to return to the game where they left off, with 3 second invulnerability. This will use one of the lives. When the player uses up their 3 lives without successfully completing the level they trigger the lose condition.

3. Health Bar - One bar represents 1 hit for the player. When hit, one bar will be destroyed via an explosion. And the player flashes for 2 seconds with invulnerability.

4. Weapon – Displays the current weapon of the player. This image only changes when the player receives a pickup or the current pick up expires. Also displayed is the current amount of ammunition for the current weapon.

5. Player Identifier/Combo Multiplier - Shows the current multiplier of the specified player. It is shown under the player identifier symbol. When the multiplier changes a larger number flashes on the screen and scales down as it sets to its location, this process will only take a second. See (Reference of Key Elements pg.62).

6. Ultimate Bar - Applies to pickups. It is a way for players to clear the screen yet also attempt to hinder the other player. A bar underneath the player’s health will fill up over time at a rate of 2% per second times the current multiplier, when the bar fills up it will flash to indicate that an ultimate is ready to be used. If a player has one of the 4 obtainable weapons they may activate the attack that will do damage and if the other player is hit by the attack they will lose half their multiplier and will be affected by an affect.

MenusThe Main Menu presents a conveyer belt that carries enemy robots

to the foreground on the right side of the screen. On the torso of the robot will be the selectable options. On the bottom left the title of the menu will be displayed. A selection option will be a cursor looking like a bullet on the left side of the selectable option, when the player presses up or down the bullet moves in the appropriate direction, signifying the highlighted option; the audio associated with this action is a single bullet being fired lasting 1 second. Any additional information pertaining to the highlighted option explaining what the option is will be displayed in the bottom left under the title of the menu. When an option has been selected bullets will fill the foremost “enemy” option screen, the sound associated with this is a machine gun bullets hitting a metal surface, lasting for 1.5 seconds. The enemy falls forward and under the viewable screen, at the same time as the enemy is falling off screen the conveyer belt moves and the next enemy is brought to the foreground presenting the selected menu, a 2 second transition. This same procedure will be used for all menu transitions

7

Page 11: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

including the back option, with the only exception being the Start option. When the Start option has been selected, the same sound effect of a machine gun will play. Explosions will begin to fill the entire screen, accompanied by explosion sounds. After the screen has been completely filled, the explosions will fade revealing the character select screen.

Main Menu

High Score Table

8

Page 12: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Options Menu

9

Page 13: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Control Menu

Character Select

10

Page 14: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Pause Menu

Controls

11

Page 15: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Combat Controls Keyboard Player 1

A - Move Left D – Move Right S - Crouch or Prone W – Jump Q - Aim Up-Left E - Aim Up-Right Z- Aim Down Left C – Aim Down Right F- Alt Fire Space – Fire 1 – Ultimate

  Player 2

I - Jump J - Left L - Right K - Crouch or Prone U - Aim Up-Left O - Aim Up-Right M – Aim Down-Left ; - Aim Down-Right N – Fire H – Alt Fire 8 - Ultimate

Controller Left Joystick - Movement Right Joystick - Aiming Right Trigger – Shoot Left Trigger – Alt Fire A Button - Jump X Button - Ultimate

Interactive Rhythm

A typical play session should last 6-8 minutes. A level of the game should last 6-8 minutes as well. Play is broken down to three phases that either the player and AI or two players will experience: light wave, heavy wave, and rest period. The light wave is a wave of enemies that will contain 3-6 enemies of both types (melee and ranged) on the screen at once. A heavy wave contains 6-10 enemies of both types (melee and ranged) on the screen at once. A light wave of enemies should take 10 seconds to kill, while a heavy wave will take 20 seconds. Single enemies should take the player 2 seconds to kill. Depending on the weapon, groups of enemies would take the same time to kill due to AoE

12

Page 16: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

damage. The rest period will be an area of the level that does not spawn enemies, allowing the player reprieve or the opportunity to clean up any remaining enemies.

 At pre-designated parts in the level, the players will split up and take

separate paths on different planes. Immediately after this, the players will enter a shooting gallery area. Here the players will compete to see who can clear their screen of enemies faster. After this section, the rhythm of light, heavy, and rest will resume until the players hit a pre-designated merge point, and rejoin each other on the same plane. . As players progress further into the game the spawn timer between enemies will decrease, which will result in an increase of enemies. Enemy health will also increase as the players get further into the level.

 The rhythm then resumes in this manner until the end of the level is

reached. Here the player will fight the end boss

The waves of enemies will spawn from both the front and back of the screen. Both enemy types will spawn, and while it will be random, it will always be in the ratio of 2:1 melee to ranged.

How the Player Marks Progress

Players progress by moving right on the screen. The player’s score or multiplier increases as the player gets more kills thus showing progression. As the multiplier increases, enemies are worth more points. A player regresses as the player loses lives and their score is reduced.

13

Page 17: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Detailed Design Breakdown

Front End Flow Chart

Game Flow Chart

14

Page 18: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Glossary of Terms

Characters Player characters

Attributes Height – Height of the character Width – Width of the character Speed – Rate at which the character moves Jump Height – Height the character may jump Health – The amount of damage the player can take

before dying Lives – The amount of times that the player can lose all

their health before the game ends Charge – The amount of charge the character has.

When full, the player may use their ultimate move if they have collected a weapon

Behaviors Run - Move at the Speed of the character Jump – Move vertically until the player reaches the

Jump Height. While jumping, the player is still free to move laterally in either direction at Speed.

Shoot – Fire the currently equipped weapon Go Prone – Lie on the ground with the weapon pointed

forward Aim – Align the weapon forward, 45 degrees up, 45

degrees down, straight up, or straight down Collect Pickup – When colliding with a weapon pickup,

receive the associated weapon type that the pickup represents

Enemies Melee

Attributes Height – Height of the enemy Width – Width of the enemy Speed – Rate at which the enemy moves Health – Amount of damage the enemy can sustain

before dying Jump Height – Height the enemy may jump Damage – Amount that the enemy’s attack will

remove from the player’s life bar Behaviors

Run – Move horizontally at the Speed of the enemy Explode – Suicide attack when colliding with player

15

Page 19: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Jump – Move vertically until the enemy reaches the Jump Height. The enemy will continue in the direction they were previously moving at Speed

Range Attributes

Height – Height of the enemy Width – Width of the enemy Health – Amount of damage the enemy can sustain

before dying Projectile Speed – How quickly the enemy’s bullet

will travel Damage – Amount that the enemy’s attack will

remove from the player’s life bar Behaviors

Shoot – Fire a projectile at the targeted player Flying

Attributes Height – Height of the enemy Width – Width of the enemy Health – Amount of damage the enemy can

sustain Speed – Rate at which the enemy moves

Behaviors Shoot- Fire a projectile at the targeted player Move – Move at Speed Projectile Speed – How quickly the enemy’s

bullet will travel Damage – Amount that the enemy’s attack will

remove from the player’s life bar Boss

Attributes Phase – The current phase the boss is in, three

different Rocket Speed – Speed the projectile travels at Debris Speed – Speed the projectile falls down the

screen Smart Laser Speed – Speed the projectile travels

at Smart Laser Pause – Length of time the smart

laser pauses before resuming movement towards player

Laser Speed – Speed the projectile travels at Stomp Speed – Velocity that the enemy stomps

their foot down at Smash Speed – Velocity that the enemy smashes

their fist at

16

Page 20: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Health – Damage the enemy can take before dying Height – Height of the enemy Width – Width of the enemy Speed – Rate at which the enemy moves Damage – Amount that the enemy’s attack will

remove from the player’s life bar Behaviors

Change Phase – The enemy changes phases, granting access to a new set of moves as well as a full life bar

Shoot Rocket – Fire a rocket at the player at Rocket Speed

Shoot Smart Laser – Fire a laser at the player at Smart Laser Speed, which will track the player for 3 seconds, then delay for Smart Laser Pause, then head towards the player again. This process repeats 4 times

Stomp – The enemy thrusts his foot down at the player at Stomp Speed

Drop Debris – The enemy drops items from the top of the screen down at the player, which fall at Debris Speed. The items will start at the far left, then the center, then the right. At this point it will go back to center then far left, creating a back and forth wave

Smash – The enemy raises his fist and smashes it at the player at Smash Speed

Shoot Laser – The enemy fires a projectile at the player that travels at Laser Speed

Move – Move at Speed towards the player Weapons

Attributes Rate of Fire – How quickly the weapon fires per second Alt Rate of Fire – How quickly the weapon can use its

alternate firing method Range – Distance that the weapon will be able to deal

damage Alt Range – Distance that the weapon’s alternate fire will be

able to deal damage Damage – Amount of damage the weapon deals Alt Damage – Amount of damage the weapon’s alternate fire

deals Ammo – Amount of ammunition the player starts with after

pick up of weapon Alt Ammo Usage – Amount of ammunition the weapon’s

alternate fire consumes

17

Page 21: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Projectile Speed – How fast a bullet moves across the screen

Alt Projectile Speed – How fast the alternate fire moves across the screen

Kill Box – The collision box of a weapon Alt Kill Box – The collision box of the alternate fire Alt Fire – The secondary fire of the weapon. Differs for each

weapon AoE – Area that the weapon may damage enemies with one

shot Ultimate – A powerful move, able to kill multiple enemies at

once and lower the other player’s combo multiplier should they be hit. Differs for each weapon

Ultimate Effect – The effect that the ultimate will apply to the other player, should they be hit by the ultimate

Behaviors Shoot – The process of firing a bullet that travels at Projectile

Speed Fire Alternate – The process of firing the weapon’s alternate

fire Fire Ultimate – The process of firing the weapon’s ultimate

move Objects

Crate Attributes

Position – Where the crate starts on the screen Contents – Weapon pickup the crate contains Height – Height of the crate Width – Width of the crate

Behaviors Explode – Explodes when the player shoots it, dropping

a weapon pickup Floating Crate

Attributes Position – Where the crate starts on the screen Contents – Weapon pickup the crate contains Fall Speed – How quickly the crate floats downward Move Speed – How quickly the crate moves left and

right Height – Height of the crate Width – Width of the crate

Behaviors Move – The crate moving horizontally at Move Speed Fall – The crate dropping vertically at Fall Speed Land – The crate colliding with the ground or a platform,

becoming a normal crate

18

Page 22: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Explode – Explodes when the player shoots it, dropping a weapon pickup

Flamethrower Pickup Attributes

Position – Location of the pickup Lifetime – The time until the pickup despawns Height – Height of the pickup Width – Width of the pickup

Behaviors Collect – Giving the player the associated weapon

Rocket Launcher Pickup Attributes

Position – Location of the pickup Lifetime – The time until the pickup despawns Height – Height of the pickup Width – Width of the pickup

Behaviors Collect – Giving the player the associated weapon

Shotgun Pickup Attributes

Position – Location of the pickup Lifetime – The time until the pickup despawns Height – Height of the pickup Width – Width of the pickup

Behaviors Collect – Giving the player the associated weapon

Lightning Pickup Attributes

Position – Location of the pickup Lifetime – The time until the pickup despawns Height – Height of the pickup Width – Width of the pickup

Behaviors Collect – Giving the player the associated weapon

Explosive Barrel Behaviors

Explode – After being shot twice, explode Levels

Behaviors Plane Swap – Forcing the players to separate on to different paths,

one in the foreground, one in the background

19

Page 23: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Characters

Name/IDo Barron (The Bulk)

 Brief Description

o Hot headed war veteran, who loves to see things blow up Visual Design

o Exaggerated proportions, leg length is the same head height; torso slightly longer than legs, also the widest part of the body. On top, Barron, wears an unfastened Kevlar helmet. He has high cheek bones and a wide jaw, with black mutton chops that frame his cleft chin. Barron is not wearing a shirt displaying the definition of his muscles. Stretching from the upper right pectoral to the bottom right pectoral stretches an old battle scar. Hanging from his left shoulder, laying across his chest he has an ammo strap fully loaded. On his left arm he wears a rust colored armband around his bicep. On both hands he has black fingerless gloves. Barron wears ACU Trousers, black combat boots. The trousers are accompanied by a black belt. The right trouser leg is tucked in; the left trouser leg is not. Around his left thigh Barron wears a grey holster with a black strap.

 Behaviors

o Runo Jump

20

Page 24: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

o Shooto Go Proneo Aimo Collect Pickup

 Attributes

o Height: 2 unitso Width: 1 unito Speed: 3 units/secondo Jump Height: 3 unitso Health: 3o Lives: 3

 

Name/IDo Claire (Sassy Lass)

 Brief Description

o Rogue militant, enjoys long walks on the beach Visual Design

o Clair has a round face with black hair framing the right side of her face. Her eyes are elongated and larger proportioned with high arching eyebrows. Claire has a band-aid on her right cheek. On top of her head she is wearing a green beret with a single gold armed forces crest. Claire is wearing a white fitted tank top with, a black ammo strap across her left shoulder. She has a slim torso, and exaggerated hips. A white bandana is tied around her left bicep. She is wearing blue cargo pants tucked into

21

Page 25: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

black combat boots. There is a wide black belt holding her pants up, with a utility holsters attached. Around her left leg she carries a knife.

 Behaviors

o Runo Jumpo Shooto Go Proneo Aimo Collect Pickup

 Attributes

o Height: 2 unitso Width: 1 unito Speed: 3 units/secondo Jump Height: 3 unitso Health: 3o Lives: 3

 

 

22

Page 26: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Name/IDo Weebos Striker

 Brief Description

o Primary soldier of the robot army Visual Design

o Weebos Striker is a white humanoid cyborg. Every section of the Weebos Striker is a capsule with one side wider than the other, progressing outward from the torso. The head is smooth with a single red circular lens centered where the face would be. The torso is split in two sections; from the head the torso is wide then becomes thin about two thirds of the torso, this section sits on a sphere. Where the hand would be are three exaggerated claw shaped blades.

 Behaviors

o Runo Explodeo Jump

 Attributes

o Height: 1.5 unitso Width: 1 unito Speed: 2 units/secondo Health: 2o Jump Height: 3 units

23

Page 27: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

o Damage: 1

 Name/ID

o Weebos Assaulter Brief Description

o Support soldier of the robot army Visual Design

o Weebos Assaulter is similar to the Weebos Striker. The color of the Assaulter is Bright red, and the proportions of the capsule sections are slightly more exaggerated than the Striker. Instead of claw shaped blades for hands, the Assaulter only has wide wrists. There is a yellow ring around the wrist.

 Behaviors

o Shooto Explode

Attributeso Height: 2 unitso Width: 1 unito Health: 1o Projectile Speed: 4 units per secondo Damage: 1

24

Page 28: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Name/IDWeebos Helios

Brief Descriptiono Aerial unit of the robot army

Visual Designo Silver Egg shaped robot with propeller blades extending from the top.

There is a cross section hatch on the bottom.

Behaviorso Shooto Explodeo Move

Attributeso Height: 1 unito Width: 1 unito Health: 1o Speed: 3 units per secondo Projectile Speed: 4 units per secondo Damage: 1

25

Page 29: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

 

 Name/ID

o Weebos Ultimus Brief Description

o General and leader of the robot army Visual Design

o The Weebos Ultimus is broken into three parts, first the head; second the torso and arms, and the third part being the hips and legs. The face of the Ultimus has a single red lens in the center. The torso appears in three parts, a thin frame with large shoulder plates that overlap other metal plates appearing staggered and angular, rounding out just above the hips. The biceps are sleek and then, while the forearms are thicker and angular.

26

Page 30: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

The hands are two thirds the length of the forearm and are sharp claws. Below the torso begins the hips, this connection is exposed and very mechanical looking with overlapping sheets of metal, the thigh is half as long as the calf of the Ultimus. Beginning at the knee the calf bells out until the foot. The foot is slightly wider than the widest part of the leg and thins as it approaches the heel. The foot is slightly longer than the diameter of the base of the leg.

Boss Phases

27

Page 31: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

28

Page 32: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

29

Page 33: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Behaviorso Change Phaseo Shoot Rocketo Shoot Smart Lasero Stompo Drop Debriso Smasho Shoot Lasero Move

Attributeso Phase: 1 through 3o Rocket Speed: 2 units per secondo Debris Speed: 3 units per secondo Smart Laser Speed: 4 units per secondo Smart Laser Pause: 1 secondo Laser Speed: 10 units per secondo Stomp Speed: 4 units per secondo Smash Speed: 3 units per secondo Health: 80 per phaseo Height: 7.5 unitso Width: 10 unitso Speed: 5 units per secondo Damage: 1

30

Page 34: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

31

Page 35: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Weapons

Name/IDMachine Gun

Brief DescriptionA rapid fire automatic gun, with unlimited ammo

Visual DesignThe female character holds an Mp5. The male character holds a M60.Well used metal shows the wear and tear of constant use. 

Behaviorso Shoot

Attributeso Damage - 2o Rate of Fire – 3 per secondo Range –16 unitso Ammo – Unlimitedo Kill Box – See graph diagram below concept arto AoE – Noneo Projectile Speed – 4 units per second

TransitionsWhen a player picks up another weapon, this weapon will disappear and the new weapon will flash into the characters hands with its appropriate sound effect. If that weapon runs out of ammo that will disappear out of player’s hands and the machine gun will return to their hands with Sfx_CockingGun.* .

32

Page 36: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Machine Gun Kill Box

1 Box = 1 Unit

33

Page 37: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Name/IDFlamethrower

Brief DescriptionA short-range weapon that deals incredible AoE damage.

Visual DesignEither character can hold this backpack fueled M2A1-7

Behaviorso Shooto Fire Alternateo Fire Ultimate

Attributeso Damage – 2o Alt Damage - 2o Rate of Fire – 10 per secondo Alt Rate of Fire – 1 per secondo Range – 6 unitso Alt Range – 16 unitso Ammo – 100o Alt Ammo Use – 20 o Killbox – See graph diagram below concept arto Alt KillBox – See graph diagram below concept arto AoE – Attack passes through all enemies, dealing equal damage to all

affected targets and lighting them on fire. o Alt Fire - Creates a large fire ball that moves across the screeno Projectile Speed – 6 units per secondo Alt Projectile Speed – 3 units per secondo Ultimate – Two waves of flame spawn at the player, each traveling

towards opposing edges of the screen. The waves follow the ground, destroying all enemies in their path, and reducing the other players’ score multiplier should he be hit

o Ultimate Effect – The player will be slowed, having their movement speed cut in half, and their rate of fire cut in half

Transitionso When a player picks up the flamethrower, the weapon in the player’s

hands will disappear and this one will flash into the characters hands with its Sfx_flamethrower.* sound effect. If this weapon runs out of ammo that will disappear out of player’s hands and the machine gun will return to their hands with Sfx_CockingGun.* . When using the ultimate fire it will switch the skybox to something flashy to catch the player’s eye for a quick second.

34

Page 38: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Flame Thrower Hit Box

35

Page 39: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

1 Box = 1 Unit

Alternate Fire Kill Box

1 Box = 1 Unit Name/IDShotgun

Brief DescriptionA short range multi-shot, stock pump weapon

Visual DesignMilitary M-4.

Behaviorso Shooto Fire Alternateo Fire Ultimate

Attributeso Damage – 5o Alt Damage - 5o Rate of Fire – 1.3 times per secondo Alt Rate of Fire – 1.3 times per secondo Range – 16 unitso Alt Range – 16 unitso Ammo – 25

36

Page 40: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

o Alt Ammo Usage - 5o Killbox – See graph diagram below concept arto Alt Killbox – See graph diagram below concept arto AoE – 5 bullets arc out from the gun, expanding until they go off screen.

The bullets will start at the barrel of the gun in a tight formation, widening the arc as they travel further away from the gun

o Alt Fire – Fires a slug that will pierce through several enemies.o Projectile Speed – 3 units per secondo Alt Projectile Speed – 6 units per secondo Ultimate – The bullets of the shotgun do not dissipate, but instead bounce

around the screen, reflecting the vector when proper collision occurs, for the next 5 seconds. They will destroy any enemy they collide with, and reduce the other players’ score multiplier by 2 should he be hit

o Ultimate Effect – The player will have their left and right lateral movement controls switched

TransitionsWhen a player picks up the shotgun, the weapon in the player’s hands will disappear and this one will flash into the characters hands with its Sfx_GunPump.*. If this weapon runs out of ammo that will disappear out of player’s hands and the machine gun will return to their hands with Sfx_CockingGun.* . When using the ultimate fire it will switch the skybox to something flashy to catch the player’s eye for a quick second.

 Shotgun Hitbox

37

Page 41: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

1 Box = 1 Unit

Shotgun Projectile Spread

1 Box = 1 Unit

Alternate Fire Kill Box

38

Page 42: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

1 Box = 1 Unit

Name/IDLightning Gun

Brief DescriptionAn auto target weapon, low in damage, and range, but arcing over multiple enemies in rapid succession with a max of 3 enemies. The arc will collide with one enemy and checks a perimeter of 2 units. An enemy in the perimeter will be hit and then pass on to the next enemy. The lightning gun fires off a bolt of lightning, when the bolt hits an enemy, it will be an electricity line from the player to the enemy. Once it arcs to the next target, the line will be reset and will be between the two targets only. This process will repeat. The lightning arc will only ever be between two points on the screen at once.

Visual DesignThe lightning gun is a futuristic weapon with simple a form. The handle is smooth black, with no protection around the trigger. A trigger that when pulled retracts inside the handle. The barrel is twice as long as the grip is long; the grip extends at an angle causing the grip to extend behind the length of the barrel. Protruding out of the barrel is a metal rod the same length as the barrel. Near the end of the rod it begins to expand to become wider, creating a flat circular surface. A short tiered cone sits on the flat surface.

Behaviorso Shooto Fire Alternateo Fire Ultimate

39

Page 43: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Attributeso Damage – 1.5, 1.0, 0.5o Alt Damage - 2o Rate of Fire – 2 per secondo Alt Rate of Fire – 10 per secondo Range – 8 units with consecutive hits increasing range up to a max of 14o Alt Range – 8 unitso Ammo – 75o Alt Ammo Usage - 15o Killbox – See graph diagram below concept arto Alt Killbox - See graph diagram below concept arto AoE – After making contact with the initial target, the bullet will find the

next closest enemy within a 4x5 unit area centered around the target. It does this twice for a total of 3 potential hits. Each jump decreases the damage.

o Alt Fire – Fires a sustained lightning bolt that functions like the flamethrower’s primary fire

o Projectile Speed – 6 units per secondo Alt Projectile Speed – 14 units per secondo Ultimate – A single bolt of lightning strikes the ground at a designated

spot. The spot will be shown as a blue-lit area, and after a delay of 0.5 seconds, the lightning will strike. A new bolt will strike immediately. This behavior is repeated for the next 5 seconds, with the bolts becoming quicker and quicker. Each bolt will lower the time between the next bolt by 0.05 seconds. They will destroy any enemy they collide with, and reduce the other players’ score multiplier by 2 should he be hit

o Ultimate Effect – The player is grounded, and can’t jump for 4 seconds

TransitionsWhen a player picks up the Lightning Gun, the weapon in the player’s hands will disappear and this one will flash into the characters hands with its Sfx_Lightning.*. If this weapon runs out of ammo that will disappear out of player’s hands and the machine gun will return to their hands with Sfx_CockingGun.*. When using the ultimate fire it will switch the skybox to something flashy to catch the player’s eye for a quick second.

40

Page 44: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

 Lightning Gun Killbox

1 Box = 1 Unit

Lightning Gun Ricochet Effect

41

Page 45: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

1 Box = 1 Unit

Alternate Fire Kill Box

1 Box = 1 Unit

Name/IDRocket Launcher

42

Page 46: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Brief DescriptionA low ammo weapon that fires a low moving projectile that explodes, highly damaging a large area

Visual DesignRPG-7

Behaviorso Shooto Fire Alternateo Fire Ultimate

Attributeso Damage – 5o Alt Damage - 5o Rate of Fire – 1 per secondo Alt Rate of Fire – 1 per secondo Range – 16 unitso Alt Range – 16 unitso Ammo – 5o Alt Ammo Usage - 2o Killbox – See graph diagram below concept arto AoE – After making contact with a target, the rocket explodes in a blast

radius of a 6x7 unit centered on the point of impact. This deals the full 5 damage to all enemies within the blast radius.

o Alt Fire – Fires the rocket in a curved fashiono Projectile Speed – 3 units per secondo Alt Projectile Speed – 3 units per secondo Ultimate – An air raid is called in. The entire ground except for one 1 unit

wide will be covered in bright red X markers. After a delay of 2 seconds, bombs will be dropped on the marked spots. They will destroy any enemy they collide with, and reduce the other players’ score multiplier by 2 should he be hit

o Ultimate Effect – For the next 5 seconds, any kills made by the player have their point value given to the other player

TransitionsWhen a player picks up the Lightning Gun, the weapon in the player’s hands will disappear and this one will flash into the characters hands with its Sfx_Explosion#.*. If this weapon runs out of ammo that will disappear out of player’s hands and the machine gun will return to their hands with Sfx_CockingGun.*. When using the ultimate fire it will switch the skybox to something flashy to catch the player’s eye for a quick second.

43

Page 47: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

44

Page 48: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Rocket Launcher Kill Box

1 Box = 1 Unit

Rocket Launcher Explosion Box

45

Page 49: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

1 Box = 1 Unit

Alternate Fire Kill Box

1 Box = 1 Unit

Power-ups

Note: All Pickups have a lifetime of 10 seconds. When the pickups lifetime is at 5 sec will begin to flash. The pickups will flash at a rate of 1 second, meaning they will be visible for 1 second, then invisible for 1 second, alternating until they despawn.

Note: All Crates exist until destroyed by player. Crate content will be specific to the area in level that they are spawned. The contents will all be predetermined. (see Map & Intensity Timeline pg.xx).

Name/IDCrate

Brief DescriptionA crate that is placed in the level, which when destroyed will produce a power up

Visual DesignA wooden crate

Behaviorso Explode

46

Page 50: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Attributeso Position – On ground plane, coming in from the screen on the right.

Determined by level placement.o Contents – Random weapon pickup of four possible oneso Height – 2 unitso Width – 2 units

Name/IDFloating Crate

Brief DescriptionA crate that floats to the ground (and becomes stationary) from the top of the screen using a parachute. As the crate falls, it will move at a low lateral speed, so that it travels in a diagonal towards the ground. This crate will not be collidable with anything except for the level and bullets.

Visual DesignWooden crate with parachute

Behaviorso Moveo Fallo Lando Explode

Attributeso Position – Top of screen, centeredo Contents – Random weapon pickup of four possible oneso Fall Speed – 2 units per secondo Move Speed – 2 units per secondo Height – 2 unitso Width – 2 units

Name/IDFlamethrower Pickup

Brief DescriptionWhen this pickup collides with a player that player gets the Flamethrower weapon at full ammo (see Combat System pg.47)

Visual DesignThe Flamethrower pickup is a 3-D rectangle with a red “F” on the front. There is a fire particle effect emitting from it.

Behaviors

47

Page 51: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

o Collect

Attributeso Position – Location of spawning crateo Lifetime – 10 secondso Height – 1 unitso Width – 1 units

Name/IDRocket Launcher Pickup

Brief DescriptionWhen this pickup collides with a player that player gets the Rocket Launcher weapon at full ammo(see Combat System pg.47)

Visual DesignThe Rocket Launcher pickup is a 3-D rectangle with a white “R” on the front. There is particle effect of explosions emitting from it.

Behaviorso Collect

Attributeso Position – Location of spawning crateo Lifetime – 10 secondso Height – 1 unitso Width – 1 units

48

Page 52: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Name/IDShotgun Pickup

Brief DescriptionWhen this pickup collides with a player that player gets the Shotgun weapon at full ammo

Visual DesignThe Shotgun pickup is a 3-D rectangle with a yellow “S” on the front. There is particle effect of shotgun shells emitting from it.

Behaviorso Collide and be picked up by player

Attributeso Position/Orientationo Lifetime

 

Name/IDLightning Pickup

Brief DescriptionWhen this pickup collides with a player that player gets the Lightning weapon at full ammos

Visual DesignThe Lightning pickup is a 3-D rectangle with a blue “L” on the front. There is particle effect of sparks emitting from it.

Behaviorso Collide and be picked up by player

Attributeso Position/Orientationo Lifetime

49

Page 53: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

50

Page 54: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Levels and Maps

Name/ID

Beach\Jungle\City Level

Goal

Get more points than your companion at the end of the level, by gaining points, by killing minions and gaining point multipliers for multiple kills in a short period.

Level Travel

RunJump1 second to traverse screen-height3 seconds to traverse screen-length

Scale

12 Units Height672 Units Width

Environmental Interactions - Behaviors

Exploding BarrelsSpawning MinionsPlane SplitsShooting GalleriesRest PeriodsBoss Fight

Attributes

Spawn Points

Ambient Environmental Aspects / Objects in the Level

PlatformsExploding Barrels

Time

2-3 minutes to traverse level unimpeded by combat8-10 minutes to traverse level with combat, shooting galleries and rest periods

51

Page 55: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Map & Intensity TimelineKey

SG: Shooting Gallery/Split (Not the first one) Light: Light ActionHeavy: Heavy ActionRest: Period of clean up

Start ---->

52

Page 56: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

53

Page 57: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

54

Page 58: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Level Walkthrough – Verbal MapTutorialo Enter The level

Player(s) will have full health, and have the machine gun (infinite ammo)

o The Player(s) will be temporarily "trapped" in a Shooting Gallery They will learn movement controls

Move left Move right Jump Prone Down Jump (through platforms) And the fact that they can stand on platforms

They will learn firing controls Angular aim

Up Left

55

Page 59: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Down Left Up Right Down Right

Shoot They will see Crates, power ups, and Explosive Barrels which they

mist destroy/collect to continue to the right Crates will drop power ups that when the player touches will

change their current weapon These power ups will have an ammo counter so we will

introduce the Weapon Type & Ammo Remaining visuals These will give them points and we will introduce the Score &

Multiplier visuals This will also demonstrate the Continue Forward visual If a single player is playing an AI companion will accompany

them, and act as the second player. The AI will not complete the Tutorial area For you

o The Player(s) will walk to the right They will be introduced to melee enemies

These will run to and damage the player and we will introduce the Health Bar & Lives visual

The player, using their weapon, may damage the melee enemies and gain points

The Player(s) will be introduced to ranged enemies These will fire bullets that travel across the screen toward the

player, that they can avoid The player, using their weapon, may damage the ranged

enemies and gain points The Player(s) will be introduced to flying enemies

These will fire bullets down that travel down the screen toward the player, that they must avoid

The player, using their weapon, may damage the flying enemies and gain points

o The Players Will encounter Light Resistance Melee, Ranged, and Flying enemies

o The players Will Experience Heavy Resistanceo The number of enemies that appear in a zone is described in Interactive

Rhythmo The Player(s) will continue to the Right while enemies continue to be

spawned and try to damage the playero The Player(s) will come to an area, where they must clear any previously

spawned enemies before continuing, A Rest Areao The Player(s) avatars will pose and say a line, and the two players will be

moved to separate planes, A Plane Split One Player cannot directly affect the others plane, while on split planes

o The Player(s) will be temporarily "trapped" in a Shooting Gallery, each on their own planes

56

Page 60: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

The a certain number of enemies will be spawned When either side is cleared the other side is cleared The first person to clear their side gets a large point bonus Once both sides are cleared the Player(s) may continue to the right

o The players will continue on the separate planes Meeting Light and Heavy resistance

o The Player(s), on their separate planes, will encounter a Rest Period where the must clear any enemies that have been previously spawned

o When no enemies remain The Player(s) avatars will pose and then will be moved to the same plane again, A Plane Merge

Repeated Zoneso The Player(s), continuing to the right will encounter varying patterns of Light,

Heavy, Plane Split sections, Shooting Galleries, and Rest Periods as displayed in the Intensity Timeline

Bosso The Player(s) (If they have survived) will come to the Bosso This is a Shooting Galleryo The players will be riding motorcycles

This is only a visual(motorcycle model) and somatic(motor sound effects) change as game play will remain the same

o The Boss has 3 Phases Each phase has its own health bar

The Death of one triggers the next phase Phase 1

The Player(s) must avoid Falling Debris Debris (Enemy Spawned Bullets of large size, and slow

movement) Crates (Mixed in with the falling Debris)

The Player(s) must avoid the Feet of the Boss Stomping (Enemy Spawned Explosions of large size)

The Player(s) must damage the Legs of the Boss Phase 2

The Player(s) must avoid Debris in the road by jumping Debris (Enemy Spawned Bullets of large size, and faster

movement) Crates (Mixed in with the road debris)

The Player(s) must avoid Eye Lasers from the Boss's Eyes Eye Blasts (Enemy Spawned Explosions of large size)

The Player(s) must avoid the Hands of the boss Smashing (Enemy Spawned Explosions of large size)

The Player(s) must damage the Torso of the Boss Phase 3

Crates fall from sky The Player(s) must avoid Missiles from the Bosses Head

Missiles (Enemy Spawned Bullets of large size, that spawn explosions on collision)

57

Dominic Santoro, 04/15/11,
Clarify how many of which enemies are spawned where and when. It might be worthwhile to make a table to this end that explains the spawns by section. That’s in the Interactive Rhythm Already for heavy and light
Page 61: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

The Player(s) must avoid Eye Lasers from the Boss's Eyes Eye Blasts (Enemy Spawned Explosions of large size)

The Players(s) must Avoid Smart Lasers Smart Lasers (Similar to the Lighting Gun's discharge, but

each lasers lives longer and only spawns another when they die)

The Player(s) must damage the bosses head When the final phase is defeated the Game goes to the Game

Score screenDeath, Dying, End Conditiono When a player is damaged they lose a portion of healtho When they have no health they dieo When a player dies they lose a life and re-spawn near their death positiono When the player loses all their lives they remain out of the combato When both players lose all lives(or the single player loses all lives) the game

goes to the Game Score Screen

58

Page 62: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Combat System1. Player combat is all ranged

Attacking is handled by pressing the fire or alt. fire button (see Controls pg.8)

Five weapon types Default machine gun Shotgun Lightning gun Flamethrower Rocket launcher

All weapons aside from default have limited ammo All weapons aside from default have an alternate fire All weapons aside from default have an ultimate Weapon pickups received via floating crates or stationary creates

dropped by an off-screen plane or placed in the level Aiming is in one of the 8 cardinal directions

Up Down Left Right Up-Right Up-Left Down-Right Down-Left

  

59

Page 63: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Game Logic, Algorithms, and Rules

Interaction Component Matrix

Chart does not account for ownership of bullet or explosion

Part 1 Player Platform Crate Power Up

Player NA NA NA Collides/ Changes players weapon (2)

Platform Collides (1) NA Collides (9) Collides (9)

Crate NA NA Collides (9) NA

Power Up Collides/Picks Up/Changes held weapon (2)

NA NA NA

Weapon Holds NA NA Changes (2)

Bullet Creates (3) Conditionally stops (7)

Collides/Stops/Takes damage (10)

NA

Explosive Barrel

NA NA Collides (9) NA

Explosion NA Conditionally blocks (8)

NA NA

Melee Enemies

Collide/Takes Damage (4)

NA NA NA

Ranged Enemies

Collide/Take Damage (4)

NA NA NA

Flying Enemies

Collide/Takes Damage (4)

NA NA NA

Triggers Trigger (Position) (5)

NA Trigger (Death) Trigger (Pick Up)

60

Page 64: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Boss Collides/Takes Damage (6)

NA NA NA

Part 2 Weapon Bullet Explosive Barrel Explosion

Player Is Held by Damages (11) NA Damages (12)

Platform NA Conditionally Collides (7)

Collides (9) NA

Crate NA Damages (11) Collides (9) NA

Power Up Changed by (2)

NA NA NA

Weapon NA Produced by(3) NA NA

Bullet Produces (3)

TBD Collides/Stops/Takes damage (10)

NA

Explosive Barrel

NA Damages (11) Collides (9) Damages (12)

Explosion NA NA Produces (8) NA

Melee Enemies

NA Damages (11) NA Damages (12)

Ranged Enemies

Is Held by Damages (11) NA Damages (12)

Flying Enemies

NA Damages (11)   Damages (12)

Triggers NA NA Trigger (Death) NA

Boss NA Damages (11) TBD Damages (12)

61

Page 65: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Part 3 Melee Enemies

Ranged Enemies

Flying Enemies

Triggers

Boss

Player

Collide/Damage(4)

Collides/Damages (4)

Collides/Damages (4)

NA Damages (4)

Platform

Collides(13) Collides (13) NA NA NA

Crate NA NA NA Produce

NA

Power Up

NA NA NA Produce

NA

Weapon

NA Holds Holds NA TBD

Bullet Collides/Stops/Takes damage (11)

Collides/Stops/Takes damage(11)

Collides/Stops/Takes damage(11)

Produce

Collides/Stops/Take damage (11)

Explosive Barrel

NA NA NA Produce

NA

Explosion

Collides/ Takes Damage (12)

Collides/ Takes Damage (12)

Collides/Takes Damage (12)

Produce

Collides/ Takes Damage/TBD(Produce?)

Melee Enemies

Collides (13) Collides (13) Collides (13) Produce

TBD (Produce?)

Ranged Enemies

Collides (13) Collides (13) Collides (13) Produce

TBD (Produce?)

Flying Enemies

Collides (13) Collides (13) Collides (13) Produce

TBD (Produce?)

Triggers

TBD(Trigger(Death)?)

TBD(Trigger(Death)?)

TBD(Trigger(Death)?)

NA TBD(Trigger(Death)?)

62

Page 66: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Boss TBD TBD TBD Produce

TBD (Produce?)

Interaction Matrix Assets Required Keyo 1)

Sounds Sfx_footstep.*,

Animations Anim_Male.* & Anim_Female.*

Prone Run Jump Stand/Idle

o 2) Specific Weapon Transitions are described in the Weapon

Description Sound

“Time to Rock-IT” – Sfx_pUp_Rockit.* “I Call Shotgun” – Stx_pUp_Shotgun.* “Shocking” – Sfx_pUp_Shocking.* “I’m On Fire” – Sfx_pUp_Fire.* “Awwww” – Sfx_pUp_Basic.*

o 3) Sounds

Sfx_machinegun.* Sfx_shelldrop.* Sfx_shotgun.* Sfx_electricity.* Sfx_flamethrower.*

Particles Muzzle_D.* Muzzle_smk_D.* Smoke_D.* Explo_D.* BulletMG_D.* BulletSG_D.* Rocket_D.* Flame_D.* Elect_D.*

Animations Anim_Male.* & Anim_Female.*

Shooto 4)

Sounds Sfx_female.*

63

Page 67: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Sfx_male.* Sfx_robot.*

Animations Anim_Enem.*

Take damage Anim_Helio.*

Take damage Anim_Male.* & Anim_Female.*

Take Damageo 5)

Sounds Sfx_male_d1.* Sfx_male_d2.* Sfx_male_d3.* Sfx_male_d4.* Sfx_male_d5.* Sfx_male_d6.* Sfx_female_d1.* Sfx_female_d2.* Sfx_female_d3.* Sfx_female_d4.* Sfx_female_d5.* Sfx_female_d6.*

Animations Anim_Male.* & Anim_Female.*

Specialo 6)

Sounds Sfx_female.* Sfx_male.*

Animations Anim_Male.* & Anim_Female.*

Take Damageo 7)

Sounds Sfx_mbullet.* Sfx_rbullet.* Sfx_wbullet.*

Particles BulletMG_D.* BulletSG_D.* Rocket_D.*

o 8) Sounds

Sfx_explosion_#.* Particles

64

Page 68: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Explo_D.*o 9)

Animations Crate_float.* Crate_static.* Pow_machine.* Pow_shotgun.* Pow_lightning.* Pow_flame.* Pow_rocket.* Explo_Barrels.*

o 10) Sounds

Sfx_mbullet.* Sfx_rbullet.* Sfx_wbullet.*

Particles BulletMG_D.* BulletSG_D.* Rocket_D.*

Animations Crate_float.* Crate_static.* Explo_Barrels.*

o 11) Sounds

Sfx_explosion_#.* Sfx_mbullet.* Sfx_rbullet.* Sfx_wbullet.* Sfx_female.* Sfx_male.* Sfx_robot.*

Particles BulletMG_D.* BulletSG_D.* Rocket_D.* Muzzle_D.* Muzzle_smk_D.* Smoke_D.* Explo_D.* BulletMG_D.* BulletSG_D.* Rocket_D.* Flame_D.* Elect_D.*

65

Page 69: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Animations Crate_float.* Crate_static.* Explo_Barrels.* Anim_Enem.*

Take damage Anim_Helio.*

Take damage Anim_Male.* & Anim_Female.*

Take Damageo 12)

Sounds Sfx_explosion_#.* Sfx_female.* Sfx_male.* Sfx_robot.*

Particles Explo_D.*

Animations Anim_Enem.*

Take damage Anim_Helio.*

Take damage Anim_Ultimus.* Anim_Male.* & Anim_Female.*

Take Damageo 13)

Sounds Sfx_robot.* Sfx_footstep.*

Animations Anim_Enem.*

Jump Shoot Run

Key Game Algorithms

Special AI conditions:In the event both the player and ranged enemy are on the same platform, and the ranged enemy’s firing line is blocked by platform geometry.

66

Page 70: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

FAQ

What’s the overall objective of the game?The main objective is to beat your opponent’s score by killing enemies and stealing pickups

How many enemies are in the game?We will have 3 different types of enemies: a melee type, a range type and an aerial type. We also have a final boss that appears at the end of the level.

How many weapon types will be in the game?There will be 5 different weapon types: Machine gun, Flamethrower, Shotgun, Rocket Launcher, and a Lightening gun

How high can the player jump?1.5 times their height

Can a player gain extra lives?No, there aren’t any extra life pickups or any ways to get more lives. How do we handle the plane-swapping events?

67

Page 71: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Plane swapping will be handled with a simple cutscene animation that lasts approx. 2-3 seconds where the players will break off and head towards their respective planes.

What happens when the player AI dies on the second plane?They re-spawn from their location

Can enemies shoot towards the Z-Plane?No just along the X and Y-Plane

What will happen if one of the players goes inactive in multiplayer?The AI player will take over the character

Are all projectile speed the same?No, they vary between each weapon type.

Do all enemies have an AOE effect after their deaths?No, they just do a death animation.

How much damage does a player take when they are hit with either a melee attack or ranged attack?The player will only ever lose 1 bar from their life.

When a player is hit can they immediately be hit again?No, the player will have invincibility for 2 seconds.

Can I pick up more than one weapon? No, the weapon you currently have equipped will be replaced with the new weapon.

Can I run out of ammo?Yes, there are four weapon types that can. The Flamethrower, Shotgun, Lightning Gun and Rocket Launcher.

If I run out of ammo what happens?Your weapon will switch back to the default weapon, the Machine Gun.

How is the difficulty?The level will increase in enemies as the players progress further into it.

68

Page 72: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Reference of Key Elements

Scoring

Each player receives points by completing actions. When a player completes an action the value of the action is added to their score and displayed to the player in the HUD. The “Lives left” point value will be calculated when the player meets a win/loss condition. All actions are worth positive points with “Death” being the only exception. The actions that are worth points are as listed below:

Item / Action Score

Collecting Pickups +500

Kill Melee Enemy +50

Kill Range Enemy +100

Kill Boss +750

Death -1000

Lives left +1000 per life Action Combo Increase

Hits +(Hits * Weapon Damage)

Multiplier The max level is 4. The combo multiplier affects all scores i.e. If you are level 3 and you kill a melee enemy, your score increase will be 3 x 100. Your combo will decrease at a rate of 10% per second per level if you do not hit an enemy.

 Winning/Losing

Winning the game is achieved by beating your opponent's score after level completion. When all lives have been lost or the end boss has been beaten, the level is completed and the score is tallied with the winner being displayed and the loser being shown crying. Completion:After the final boss has been defeated, we go into a cut scene where the boss will fall to the ground and create a massive explosion completely obliterating him all of his robot minions, sending a shower of metal and machinery flying

69

Page 73: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

everywhere. Barron and Clair high five each other, climb back onto their Harleys and ride into the sunset as the credits slowly roll onto the screen.

Death:If both players lose their lives, the screen will slowly fade to black. Both Barron and Claire will be on the screen bloodied and bruised, hanging their heads in shame while the “Game Over” text is displayed above them. 

Transitions

Saving and loading in the game will primarily only consist of the scores for the characters. The score will be saved when a win/loss condition has been met and the score has been tallied up. The player will not be able to save their progress throughout the level. Loading of the game will only include the leader board. Upon loss of life for the player the player will return to the screen from where they were killed, the player will be given invulnerability for 2 seconds before being able to receive damage again.In between game states there will be a transition state in which required assets will be loaded, and a simple animation will be displayed to inform the user the application has not ceased running. The transition screen will also include a progress bar that will inform the user how much has already been loaded. This transitional period will not exceed GRC standards.

Rewards

We reward our players with points throughout the level by killing enemies, getting weapon pickups, finishing the shooting gallery (reference pg.45) first, and doing more damage to the boss. Upon level completion you will gain points for each extra life.

70

Page 74: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Art and Production Design

3D Art & Animation Deliverables

o Explosive Bombs - Orange barrels with a warning label Explo_Barrel.*

o Decorative signs - Subtle signs that lead the player Deco_Sign.*

o Small plants Grass - luscious green

Grass_sm.* Grass_tall.*

Vines - rich green Vine_hori.* Vine_diag.*

o Medium plants Bushes - medium tropical plant

Plant_trop.* Ferns - large tropical fern

Plant_fern.*o Large plants

Trees - ficus Tree_ficus.*

Tropical - tropical tree Tree_trop.*

o Three types of rocks Boulder - large debris from rock formation

Rock_bould.* Cliff - large rock formation

Rock_cliff.* Large flat rocks

Rock_flat.*o Platforms

Metal - robotic platform Platform_metal.* Platform_msupport.*

Wood Platform_wood.* Platform_wsupport.*

Stone Platform_stone.* Platform_ssupport.*

o Accessories Sailor

o Acc_sail.*

71

Page 75: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Top hato Acc_top.*

Militaryo Acc_milit.*

Vikingo Acc_vik.*

Trucker hato Acc_truc.*

Foam cowboyo Acc_cow.*

Drinking cup hato Acc_cup.*

Sombreroo Acc_somb.*

Biker helmeto Acc_bike.*

Fedorao Acc_fedora.*

Southern belleo Acc_belle.*

Bombardier goggleso Acc_bomb.*

Bald cap with moustacheo Acc_bald

Tiarao Acc_tiara.*

Powdered wigo Acc_wig.*

Pirate hato Acc_pirate.*

Rice Farmero Acc_rice.*

Eye patcho Acc_eye.*

Animal earo Acc_animal.*

Yakuza Pompo Acc_yaku.*

o Catwalk Wooden

Catwalk_wood.* Catwalk_wsupport.*

Metal Catwalk_metal.* Catwalk_msupport.*

o Crates

72

Page 76: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Crate_float.* Crate_static.*

o Pick ups Pow_machine.* Pow_shotgun.* Pow_lightning.* Pow_flame.* Pow_rocket.*

o Freight Container Container_1.* Container_2.* Container_3.*

o Trains Train segment

o Train_seg.*o Train_head.*

o Train tracks Train_track.*

o Train platform Train_platform.*

o Bridge Bridge surface

o Bridge_surface.* Bridge support

o Bridge_support.* Bridge arch

o Bridge_arch.*o Buildings

Beach hut/house, small and mediumo Building_sm_beach.*o Building_md_beach.*

City building, large and mediumo Building_md_city.*o Building_lg_city.*

o Robot enemies Melee - Striker

Enem_striker.* Ranged - Assaulter

Enem_assaulter.* Flying – Helios

Enem_helio.* Boss - Ultimus

Enem_ultimus.*o Destroyed buildings - City and Jungle

Dbuild_city.* Dbuild_jung.*

73

Page 77: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

o Robot structures Capsule - Large

Robostruct_caps.* Building - Medium

Robostruct_build.*o Back drops

City Bdrop_city.*

Beach Bdrop_beach.*

Mountain Bdrop_mount.*

Jungle Bdrop_jungle.*

o Animated backdrops Animated objects

Bprop_anim_city.* Bprop_anim_beach.* Bprop_anim_jungle.* Bprop_anim_mount.*

Scenery Bdrop_anim_city.* Bdrop_anim_beach.* Bdrop_anim_jungle.* Bdrop_anim_mount.*

o Male character animations Male

Prone Run Jump Stand/Idle Shoot Take damage Respawn SpecialA SpecialB SpecialC Victory Cry

o Anim_Male.*o Female character animations

Female Prone Jump Run Stand/Idle

74

Page 78: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Shoot Take damage Respawn SpecialA SpecialB SpecialC Victory Cry

o Anim_Female.*o Enemy robot animations

Robot Anim_Enem.*

o Jumpo Shooto Runo Take damage

Helio Anim_helio.*

o Flyo Take damageo Shoot

Ultimus Anim_Ultimus.*

o Runo Shooto Smasho Take damage

2D Art (HUD/Menu/Particle/Textures) Deliverables

o Particles Fire

Fire_D.* Muzzle flash - from gun barrel

Muzzle_D.* Muzzle smoke - from gun barrel

Muzzle_smk_D.* Smoke

Smoke_D.* Explosion - barrel and rocket

Explo_D.* Steam

Steam_D.* Water

Water_D.* Bullet - Machine gun and shotgun

75

Page 79: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

BulletMG_D.* BulletSG_D.*

Rocket Rocket_D.*

Flame - Flamethrower Flame_D.*

Electricity - Electricity gun Elect_D.*

o Textures Explo_barrel_D.* Deco_sign_D.* Grass_sm_D.* Grass_tall_D.* Vine_hori_D.* Vine_diag_D.* Plant_trop_D.* Plant_fern_D.* Tree_ficus_D.* Tree_trop_D.* Rock_bould_D.* Rock_cliff_D.* Rock_flat_D.* Platform_metal_D.* Platform_msupport_D.* Platform_wood_D.* Platform_wsupport_D.* Platform_stone_D.* Platform_ssupport_D.* Catwalk_wood_D.* Catwalk_wsupport_D.* Catwalk_metal_D.* Catwalk_msupport_D.* Crate_float_D.* Crate_static_D.* Pow_machine_D.* Pow_machine_S* Pow_shotgun_D.* Pow_shotgun_S.* Pow_flamethrower_D.* Pow_flamethrower _S* Pow_lightning_D.* Pow_lightning_S.* Pow_rocket_D.* Pow_rocket_S.* Container_1_D.* Container_2_D.*

76

Page 80: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Container_3_D.* Train_seg_D.* Train_head_D.* Train_track_D.* Train_platform_D.* Bridge_surface_D.* Bridge_arch_D.* Bridge_support_D.* Building_sm_beach_D.* Building_md_beach_D.* Building_md_city_D.* Building_lg_city_D.* Enem_striker_D.* Enem_assaulter_D.* Enem_helios_D.* Enem_ultimus_D.* DBuild_city_D.* DBuild_jung_D.* Robostruct_caps_D.* Robostruct_build_D.* Bdrop_city_D.* Bdrop_jung_D.* Bdrop_mount_D.* Bdrop_beach_D.* Bprop_anim_city_D.* Bprop_anim_beach_D.* Bprop_anim_jungle_D.* Bprop_anim_mount_D.* Scene_anim_city_D.* Scene_anim_beach_D.* Scene_anim_jungle_D.* Scene_anim_mount_D.* Acc_sail_D.* Acc_milit_D.* Acc_vik_D.* Acc_truc_D.* Acc_cow_D.* Acc_cup_D.* Acc_somb_D.* Acc_bike_D.* Acc_fedora_D.* Acc_belle_D.* Acc_bomb_D.* Acc_bald_D.* Acc_tiara_D.* Acc_wig_D.*

77

Page 81: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Acc_pirate_D.* Acc_rice_D.* Acc_eye_D.* Acc_animal_D.* Acc_yaku_D.* Explo_barrel_S.* Deco_sign_S.* Grass_sm_S.* Grass_Sall_S.* Vine_hori_S.* Vine_Siag_S.* Plant_Srop_S.* Plant_fern_S.* Tree_ficus_S.* Tree_Srop_S.* Rock_bould_S.* Rock_cliff_S.* Rock_flat_S.* Platform_metal_S.* Platform_msupport_S.* Platform_wood_S.* Platform_wsupport_S.* Platform_stone_S.* Platform_ssupport_S.* Catwalk_wood_S.* Catwalk_wsupport_S.* Catwalk_metal_S.* Catwalk_msupport_S.* Crate_float_S.* Crate_static_S.* Container_1_S.* Container_2_S.* Container_3_S.* Train_seg_S.* Train_head_S.* Train_Srack_S.* Train_platform_S.* Bridge_surface_S.* Bridge_arch_S.* Bridge_support_S.* Building_sm_beach_S.* Building_md_beach_S.* Building_md_city_S.* Building_lg_city_S.* Enem_striker_S.* Enem_assaulter_S.*

78

Page 82: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Enem_helios_S.* Enem_ultimus_S.* DBuild_city_S.* DBuild_jung_S.* Robostruct_caps_S.* Robostruct_build_S.* Bdrop_city_S.* Bdrop_jung_S.* Bdrop_mount_S.* Bdrop_beach_S.* Bprop_anim_city_S.* Bprop_anim_beach_S.* Bprop_anim_jungle_S.* Bprop_anim_mount_S.* Scene_anim_city_S.* Scene_anim_beach_S.* Scene_anim_jungle_S.* Scene_anim_mount_S.* Acc_sail_S.* Acc_milit_S.* Acc_vik_S.* Acc_Sruc_S.* Acc_cow_S.* Acc_cup_S.* Acc_somb_S.* Acc_bike_S.* Acc_fedora_S.* Acc_belle_S.* Acc_bomb_S.* Acc_bald_S.* Acc_Siara_S.* Acc_wig_S.* Acc_pirate_S.* Acc_rice_S.* Acc_eye_S.* Acc_animal_S.* Acc_yaku_S.*

o Pause Menu Pause_menu_D.*

o Game Menu Menu_D.*

o HUD Life

o HUD_life_D.* Ammo

o HUD_ammo_D.*

79

Page 83: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Scoreo HUD_score_D.*

Multipliero HUD_multi_D.*

Sound Effects Deliverables

o Male hit – deep male voice, suggesting pain is inflicted, grunto Sfx_male.*

o Male dialogue – 6 different dialogueso “Did ya see that?” - Sfx_male_d1.*o “Boo-Yah” - Sfx_male_d2.*o “Haha” - Sfx_male_d3.*o Sfx_male_d4.*o Sfx_male_d5.*o “Maba-Sploom!” - Sfx_male_d6.*

o Female hit – mid-toned female shriek, suggesting pain is inflictedo Sfx_female.*

o Female dialogue – 6 different dialogueso “Did ya see that?” - Sfx_female_d1.*o “Boo-Yah” - Sfx_female_d2.*o “Haha” - Sfx_female_d3.*o Sfx_female_d4.*o Sfx_female_d5.*o “A little girl could do this… oh wait” Sfx_female_d6.*

o Motorcycleo Motor Hum – Sfx_motor_hum.*o Motor Rev – Sfx_motor_rev.*o Shift Gears – Sfx_motor_shift.*o Pop Clutch – Sfx_motor_pop.*

o Robot noise – hollow metallic sounding beeps and boopso Sfx_robot.*

o Weebo Ultimuso “BOOM” – Sfx_boss_stomp.*o Gears grinding – Sfx_boss_walk.*o “Crunch” – Sfx_boss_smash.*o Crawl Scrape – Sfx_boss_crawl.*o Missile Deploy – Sfx_boss_missile.*o Eyebeam – Sfx_boss_eyebeam.*

o Machinery sound – series of pumping pistons and some gearso Sfx_machine.*

o Footsteps – generic foot scuffling against the groundo Sfx_footstep.*

o Machine gun – intensified large bubble wrap being popped

80

Page 84: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

o Sfx_machinegun.*o Sfx_CockingGun.*

o Shell drop – thin empty metal tube hitting concrete surfaceo Sfx_shelldrop.*

o Shot gun – a gun pump followed by a quick, loud and full sounding burst then two shells hit the floor

o Sfx_shotgun.*o Sfx_GunPump.*

o Electricity – low buzz, a rumbling hum, a hint of mechanical whirlingo Sfx_electricity.*

o Flamethrower noise – amplified sound of tires leaking air, with a bit of crackling paper

o Sfx_flamethrower.*o Bullet contact –

o Metal – metallic thunko Rock – sound of two large rocks smacked togethero Wood – sound of a stake being impaled through plywood

o Explosion –o Sfx_explosion_1.*o Sfx_explosion_2.*o Sfx_explosion_3.*

o Power Up Collectiono “Time to Rock-IT” – Sfx_pUp_Rockit.*o “I Call Shotgun” – Stx_pUp_Shotgun.*o “Shocking” – Sfx_pUp_Shocking.*o “I’m On Fire” – Sfx_pUp_Fire.*o “Awwww” – Sfx_pUp_Basic.*

Character DIALOGUES:Shotgun:Claire: I’ve got shotgun.Either: Shotgun!

Flamethrower:Barron: Oh, a flamethrower. I used to have one of these; burned off all the hair on top of my head lighting a cigar.Claire: A flamethrower, lovely. This ought to be hot enough to melt solder.Either: Burnt it up! Flame on!

Rocket:Barron: HA! A rocket lawn chair! Now THIS is what I was looking for.Claire: Rocket-propelled grenades: a simple solution to a messy problem.Either: BOOM baby! They don’t stand a chance!

81

Page 85: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Lightning:Barron: Heh-heh, somebody tazed me with one of these lightning guns during a bar fight. I’ll bet that was the last time he ever thought of doing that.Claire: I wonder how our robotic friends will like a little power surge?Either: 1.21 gigawatts! Set phasers for death!

Ultimate moves: Flame

o I love the smell of napalm…. Period.o Heat Wave!

Lightningo You’re about to be thunder struck!o Lightning Storm!

Shotguno Let me show you a bullet storm…o Shotgun Barrage!

Rocket Launchero Calling down the thunder!o Airstrike!

General Pickups This is my kind of machine I usually don’t like machines, but this is an exception This must be my lucky day I have the POWER! (just like in he-man) Ooh shiny What does this button do? Hell yeah! Let’s do it! Rock and roll!

Plane swapping Sometimes being around you is too much Time to make like a banana and split I just work better alone If we were dating, here is where we would “Split-Up” Claire: I’ve got top!

Baron: Ha ha!Claire: Ugh.

Claire: Try not to miss me.Baron: You’re breakin’ my heart! (sarcastic)

Claire: Race ya’!Baron: You’re on!

Baron: First one to finish buys dinner!

82

Page 86: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Claire: Oh you’re taking me some place classy.

Attacking bots:Barron: I love bashing robots to bits! Just look at those parts fly! There goes an arm. And there’s a leg! Watch out for that head, looks like the eye is still glowing. Oh-ho! That one blew up completely!

Anyone need scrap metal If you were music, you would be heavy metal When I’m done you’re going to be one hell of a cheese grater You are now a holy robot....ha-ha My toaster hurts more than that My blender is scarier than you Kick down sparky! Ha ha! *hard/insane laughter* Oh man, I love this job! Take a seat! Mass produced morons! God bless cannon fodder!

Destroying objects:Barron: Smash! Bash!! BLAMMO!!!Claire: I wonder who’s trying to move all of this cargo through an open warzone.

Fireworks… check! Always lights up my mood Campfire songs anyone? Robots roasting on an open fire. Another generic crate… eh? Boom! It’s… beautiful… I love Lamp!

Final bossIntro:Baron: Let’s ride!Claire: How long have you been waiting to say that?Baron: Forever and a day!

83

Page 87: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Phase 1:Claire: Hey Barron, can you even reach the shift pedal with those stubby legs of yours?Barron: You know, Claire, I’m amazed you haven’t tipped over, being top-heavy and all. *Boss Crash* What in the unholy stromboli of Nick Nolte is that?Claire: Looks like we missed one: the big one.

Baron: Bigger they are…Claire: Harder they fall!

Phase 2:Barron: You see that? I blew his kneecaps clean off! All on my own!Claire: Regardless of the fact that what you just said is patently untrue, he’s not DEAD yet.

Claire: This guy’s more persistent than you!Baron: Tell me about it!

Transition:Both: YEEEEEEEEEEEEEEEEEEEEEEHAAAAAAAAAW! (Duke’s of Hazard yell as they ramp off in to the air)

Phase 3:Barron: Why won’t this motherf*explosion* die?Claire: Maybe it’s because he heard what you said about his sister.Barron: Hey! I saw what I saw. You can’t sit there and tell me that she wasn’t trying to su-WOAH! This guy really does not like me, does he?

Ending dialogue:Barron: Well, that’s the last of that now, isn’t it.Claire: Yup, looks like we finally put the Ultimus down for good. One thing still bothers me though.Barron: Oh yeah? What’s that?Claire: Terminal velocity is about 120mph, or 2 miles every minute, and we must have been in free fall for at least a good 3 to 5 minutes. That means we must have fallen for at least 6 to 10 miles: that’s the depth of the whole troposphere… and on top of that, we lived through it.Barron: So… what’s the problem?Claire: You really don’t understand anything, do you?Barron: I understand you think I’m hot.Claire: You wish!*fading banter and laughter as characters walk toward the setting sun*

84

Page 88: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Music Deliverables

Menu Screens Fast paced techno metal Example: Megaman X - Storm Eagle

In Game Fast paced hardcore metal Example: Contra Hard Corps: Uprising Stage 2 Jungle Theme

Boss Stage 1: Just Drums Stage 2: Drums and Bass Guitar Stage 3: Drums, Bass Guitar, fast paced heavy Guitar Example: Two Steps from Hell

Score Screen Fast paced cheery victory music Example: Song Of Storms Dubstep Mix - Ephixa

85

Page 89: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Technical Design Overview

The overall purpose of the Technical Design document will provide a roadmap on how the teams will layout the technical procedures and implement these modules for our game Operation B.L.A.S.T. The Technical Design document will guide the team in understanding technical aspect of the game, how each module should be implemented, how they interact with other modules and the interface for using them.

86

Page 90: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Milestone Deliverables

Core Machine Gun

o Shootingo Collisions

Environment Enemy

o SFX For Weapon With environment With enemies

Enemy Strikero AI

Basic seek AI algorithmo Collisions

Environment Player Bullets

o SFXo Animations

Keyboard Input Playable Character

o Collisions Enemy Environment

o SFXo Animationso Character Actions

Run Jump Shoot

UIo HUD

Health Baro Menu Screeno Pause Screen

GamePlayo Wino Lose

Event System Shader System Lighting System

87

Page 91: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

LUA System Gamepad Input

Alpha Competitive AI

o Movemento Jumpingo Attacking

Prioritizing Targetso Dodging Melee

Guno VFXo Four Weaponso Collisions

Environment Enemies

UI

o Ammo Trackingo Liveso Guno Multipliero Points

Environmento Beach Level

Plane Swappingo Waypoint Systemo Animations

Weapon Typeso Mesho Gun

Alt Fire SFX VFX Collisions

o Environmento Enemies

Weapon Pickupo VFXo Animationo SFXo Mesh Type

Enemy Assaultero AI

88

Page 92: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Prioritizing AI Trackingo Collisions

Environment Enemies Bullets

o Animationso SFX

Coop Play

Beta Playable Character

o Dialogueo Animation

Bikeo Collision

Ultimate Weapons Environment

o Jungle Levelo City Level

Plane Swappingo Dialogue

Bosso P1

Foot Stomp Debris

o P2 Eye Lasers Arm Swing

o P3 Eye laser Smart Lasers

o AI Systemo Animationso Collisions

Playable Character Environment Bullet

o VFXo Dialogueo SFX

Shooting Galleryo Stat Trackingo Collisionso SFX

89

Page 93: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

o Dialogue Weapon

o Dialogue Ultimate Attack

o VFXo Animationo Collisions

Environment Player Enemy

o Stat Trackingo Dialogue

Competitive AIo Dodging Rangedo Dodging Bosso Dodging Ultimateso Attacking

Using Ultimates Using Alt-Fires

Enemy Helioso AI

Flying based AIo Collision

Environment Bullet Player

o SFXo Animations

Gold Character Poses

o Animationso Dialogue

Customizationo Mesheso Animations

Polish

90

Page 94: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Development Environment

Tool Version UseDirectX 9 June 2010 SDK Render Models to screen

Render Textures to screen

AudioKinetics Wwise 2010.3.3 Play audio on events caused by objects

Visual Studios C++ compiler

2008 Compile the game code

Maya 2010/ 2011 Create and animate models

Create level and level objects

Lua 5.1.4 Interface and edit game details to reduce compile time

FX Composer 2.1 Write and debug shadersAlienbrain 9.0.0.10674 Archive and share work

and documents among the team

3D Coat 3.5 Paint directly on existing models

Photoshop CS 4 Create textures for models and levels

Create concept art Touch up colors

91

Page 95: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

System Architecture Flow Chart

92

Page 96: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Render System Flow Chart

93

Page 97: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

System Architecture Context Model Description

CGameo Game States

PushState(IGameState* newState) PopState() ChangeState(IGameState* newState) Update(float dt) Render()

Game Stateso Particle Manager

GetInstance() UpdateParticles(float fTime) RenderParticles() KillParticle(int nID) KillParticle(string szType) KillAllParticles() SpawnParticle(string szType, float fPosX, float fPosY)

o Object Manager GetInstance() Initialize() Shutdown() Update(float dt) Render()

o Render System GetInstance() Clear(unsigned char ucRed, unsigned char ucGreen,

unsigned char ucBlue) DeviceBegin() DeviceEnd() Present() ChangeDisplayParam(int nWidth, int nHeight, bool

bWindowed)o Sound System

ProcessSound() GetInstance() SetFXVolume(float fVolume) SetDXVolume(float fVolume) SetMXVolume(float fVolume)

o Input

94

Page 98: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

GetInstance() Init(HWND hWnd, HINSTANCE hInst) Shutdown() AddDevice(InputDevice* device) RemoveDevice(InputDevice* device) Update() GetAnyPressed() GetAction(Action action, int player) GetActionAmount(Action action, int player) MapAction(Action action, InputDeviceType devices,

InputType type, int value, int player) UnmapAction(Action action, InputDeviceType devices, int

player) GetDevice(InputDeviceType type)

Inputo Does not directly access any other module

Particle Managero Render System

GetInstance() Clear(unsigned char ucRed, unsigned char ucGreen,

unsigned char ucBlue) DeviceBegin() DeviceEnd() Present() ChangeDisplayParam(int nWidth, int nHeight, bool

bWindowed)o Collisions

AABBtoAABBCollision(tAABB first, tAABB second) AABBtoMeshCollision(tAABB player, D3DXMesh* mesh,

D3DXVECTOR3& point) AABBtoSphereCollision(tAABB player, D3DXVECTOR3

center, float fRadius) SpheretoSphereCollision(D3DXVECTOR3 firstCenter, float

fRad1, D3DXVECTOR3 secCenter, float fRad2) SphereToMeshCollision(D3DXVECTOR3 spherePos, float

fRad, D3DXMesh* mesh, D3DXVECTOR3& pos) AABBtoPlaneCollision(tAABB objAABB, D3DPlane plane)

Object Managero AI

Death() GetPosition() GetType() SetPosition(D3DXVECTOR3 position) Update(float fTime) ProcessAI(AIType type) AttackTarget(vector<Character*>

95

Page 99: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

o Collisions AABBtoAABBCollision(tAABB first, tAABB second) AABBtoMeshCollision(tAABB player, D3DXMesh* mesh,

D3DXVECTOR3& point) AABBtoSphereCollision(tAABB player, D3DXVECTOR3

center, float fRadius) SpheretoSphereCollision(D3DXVECTOR3 firstCenter, float

fRad1, D3DXVECTOR3 secCenter, float fRad2) SphereToMeshCollision(D3DXVECTOR3 spherePos, float

fRad, D3DXMesh* mesh, D3DXVECTOR3& pos) AABBtoPlaneCollision(tAABB objAABB, D3DPlane plane)

o Camera Update(float f_ElapsedTime) GetViewProjection() GetView() GetProjection() GetWorldMatrix() GetNearFrustum() GetFarFrustum() SetProjection(float f_Field, float fWidth, float fHeight) SetNearFrustum(float fDistance) SetFarFrustum(float fDistance)

o GUI Update(float fTime) Draw() Add(CGuiBaseObject obj) Remove(CGuiBaseObject obj) ClearAll() GetInstance()

AIo Does not directly access any other module

Camerao Does not directly access any other module

GUIo Does not directly access any other module

Render Systemo Camera

Update(float f_ElapsedTime) GetViewProjection() GetView() GetProjection() GetWorldMatrix() GetNearFrustum() GetFarFrustum() SetProjection(float f_Field, float fWidth, float fHeight) SetNearFrustum(float fDistance)

96

Page 100: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

SetFarFrustum(float fDistance)o Sound System

ProcessSound() GetInstance() SetFXVolume(float fVolume) SetDXVolume(float fVolume) SetMXVolume(float fVolume)

Sound Systemo Does not directly access any other module

Collisionso Sound System

ProcessSound() GetInstance() SetFXVolume(float fVolume) SetDXVolume(float fVolume) SetMXVolume(float fVolume)

97

Page 101: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Module Breakdowns

System: Math

Author(s): N/A

Description:This is the basic DirectX math functions.

System: LUA

Author(s): TJ “Doc X” Farnie

Description:This module is used to access the LUA side of the program. It is a

singleton that can be access anywhere, and will allow the user to request any variable and have it returned. The intent of this system is allow all the variables for the program to be stored on the LUA side, and have the actual C++ program gather data from the LUA file. Other modules will interface with the LUA system by calling the GetData method, which has been overloaded to accept any data type. The LUA singleton will then fill out the data passed in, allowing the C++ program to use the now populated data. This will allow us to keep all of our hard data in a language that we can easily tweak without stopping the program or recompiling. As an example, take weapon damage. It will need to be tweaked multiple times during the design process. We can easily just modify this number in the LUA script file instead of in the C++ program, allowing us to test it much more easily as there is no need to recompile and run.

Features:Global Data Acquirement

Completion Time:2 days

Methods:Return Name Parameters Description

Static CLuaEngine*

GetInstance None Returns an instance to the singleton

None GetData Float& data//The data that will be returnedChar* name

Fills out the data variable with the actual data from the Lua side

98

Page 102: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

//Name of the variable to look up

None GetData String& data//The data that will be returnedChar* name//Name of the variable to look up

Fills out the data variable with the actual data from the Lua side

None GetData Bool& data//The data that will be returnedChar* name//Name of the variable to look up

Fills out the data variable with the actual data from the Lua side

None GetData D3DXVECTOR3& data//The data that will be returnedChar* name//Name of the variable to look up

Fills out the data variable with the actual data from the Lua side

System: CGame

Author(s):

Description: This module is the main loop for the entire game. It is a singleton that will

be called when the game is first started. A config file will be called in the init function that will set up any options that the user may have set before hand. All state changes will occur within CGame games main function call.

Dependencies Required:Particle CGameState

Features:Initialize gameShutdown game

Completion Time:3 days

Methods:

Return Function Name Parameters Description

99

Page 103: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Bool Load_Config Const char* Loads the config file for the game.

Static CGame* GetInstance NONE Returns an instance of CGame

void Init Hwnd wndHInstance instance,Int widthInt heightbool bfullscreen

Initializes the main game

Bool Main NONE The main loop of the entire game

Void Shutdown NONE Shutdown the main game loop and unloads anything that was loaded in

int GetScreenWidth NONE Return the width of the game screen

int GetScreenHeight NONE Returns the height of the game screen

int GetMusicVol NONE Returns current music volume

Int GetEffectVol NONE Return current sound effect volume

Int GetPan NONE Returns the PAN value right now.

100

Page 104: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Bool isWindowed NONE Returns true if the window is fullscreen

Void SetScreenWidth Int width Sets the width of the screen

Void SetScreenHeight Int height Sets the height of the screen

Void SetMusicVolume Int musicvol Sets volume of the music

Void SetEffectVolum Int effectvol Sets volume of the sound effects

Void SetPan Int panval Sets the pan values

Void SetisWindowed Bool windowed Sets full screen or window mode.

System: Game States Author(s): Tristan Helmink Description:

This module manages the various game states. This includes The menus, transitions, load screens, and options, as well as the high level interface for the gameplay state. This uses the Standard State Stack system. All states are rendered, only the top state is updated, and responds to input. These classes are responsible for how the user enters and changes options of the game.

101

Page 105: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

 Dependencies Required:

Renderer, Gui Features:

Loading LevelLoading Objects

CharactersEnemiesEnvironmentSpawn Points

Generate instances of objects to populate level according to layout Risks: Completion Time:

3-4 days for minimum requirements and basic funtionality Special Info: Classes

IGameStateReturn type

Name Parameters Description

Void Enter    

Void Exit    

Void Update float dt  

Void Render    Inheritors

CAttractStateCMainMenuStateCOptionsStateCSoundOptionsStateCGraphicsOptionsStateCLoadStateCGamePlayStateCPauseState

CStateStackReturn type

Name Parameters Description

Void PushState IGameState* newState;

 

102

Page 106: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Void PopState   Only pops state from top if more than one left

 

Void ChangeState IGameState* newState

Clears stack and pushes newState

Void Update float dt Updates only top state

Void Render   Renders all states

System: Object Manager Author(s): Tristan Helmink Description:

This module is Responsible for all game-play objects. This will update and render them. Check their collision. Load the instances into the game world and remove them from it at the appropriate time. The objects themselves will have references to the animation instances, and the LUA Files with the appropriate behavior and reactions.

 Dependencies Required:

Renderer, Mesh Manager, Animation Manager Features:

Loading LevelLoading Objects

CharactersEnemiesEnvironmentEnemy Spawn Points

Generate instances of objects to populate level according to layout  Risks:

Completion Time:3-4 days of close intense work with loaders, renderers, & game logic

 Special Info: Classes

CObjectManagerLoader ??? 

103

Page 107: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

IObjectInstanceCore interface

Return type Name Parameters Description

Void Update float dt  

Void Render    

CRenderContext*

GetRenderContext

   

InheritorsCBaseObjectInstance

CCrateObjectInstanceCExplosiveBarrelObjectInstanceCSkinnedObjectInstance

CCharacterObjectInstanceCBaronObjectInstanceCClairObjectInstance

CEnemyObjectInstanceCStrikerObjectInstanceCAssaulterObjectInstanceCHeliosObjectInstance

CEnemySpawnerObjectInstanceCObjectManager

Return type Name Parameters

Description

static CObjectManager* GetInstance

  Lazy instantiation

Void Initialize    

Void Shutdown    

Void Update float dt  

Void Render   Culls using frustrumRender Modual sortRender Modual render

CObjectInstance* GetObject uint ID  

104

Page 108: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

CONTAINER<CObjectInstance>&

GetObjects

uint groupID

 

 

System: Event System Author(s): Tristan Helmink Description:

Global system to maintain include/inheritiance hierarchy while allowing cross class communication. A low level object will be able to alert high level systems of events. This system will also dispatch input messages for the game to react to. An event will be responded to by the individual object, and the reaction will be defined in LUA for fast efficient tweaking

 Dependencies Required:

NONE: Global Features:

Registration for eventsDeregistration for eventsReceiving EventsDispatching Events

 Risks:

Completion Time:3-4 days for minimum requirements and basic funtionality

 Special Info:

  EventsInput

UpDownLeftRightForward UpForward DownFire Weapon

def-AULTALT-ernate

105

Page 109: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

ULT-imateEnterEscape

Creation/RemovalCharacterEnemy

StrikerAssaulterHeliosUltimus

Stage 1Stage 2Stage 3

BoxBarrelPower UpBulletMissileFlameElectricitySmokeExplosion

CollideSee Interaction MatrixCollision Reaction

RepositioningDamage

TriggersNo Barrels or Boxes on screen (tutorial)Start Spawning Enemies from spawners in rangeStop Spawning Enemies form spawnersNo Enemies on ScreenPlane SplitShooting Gallery CompletePlane MergeChange BackgroundLoad next portion of LevelStart Boss Encounter(players get on bikes, Stage 1 Boss Creation)

ClassesIListener

Return type

Name Parameters

Description

void Register   Pure virtual

106

Page 110: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

 

void Deregister   Pure virtual 

void React   Pure virtualThis is the functionality called when processing an event

 CEvent

Return type

Name Parameters Description

char* GetEventName     

CEventManagerReturn type Name Parameters Descriptio

n

static CEventManager*

GetInstance()   Lazy instantiation

Void Initialize    

Void Shutdown    

Bool CreateEvent char* newEventName

Make events

Void GetRegisteredEvents

char* eventName Find preexisting events

Void RegisterForEvent CEvent& eventToRegisterForfloat proccessingPriority, 

If processing priority is equal to an already existing callbacks priority for this event this new one will be

107

Page 111: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

lowered

Void DeregisterForEvent

CEvent& eventToRegisterFor,

 

Void DispatchEvent Cevent& eventToDispatch

 

Void ProcessEvents    

System: Particle Manager

Author(s):

Description: The particle manager is a singleton that will be responsible for adding new

particles, updating the particles, handling any collisions for the particles, and finally passing the particles to the render system. The purpose of the particle system is to keep track of all the particles so that no other system has to. All particle data should be dealt with via the particle manager singleton.

Dependencies Required:Game States, Render System, Collisions

Features:Loading Particle EffectsUpdating Particle EffectsKilling Particles

Completion Time:4 days for minimum requirements and basic functionality

Methods:Return Name Parameters Description

Static CParticleManager*

GetInstance None Returns the instance of the particle manager singleton

Void UpdateParticles Float fTime//The time since the last update

Updates all the particles accordingly

Void RenderParticles None Sends all the particles to the

108

Page 112: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

render system to be rendered

Void KillParticle Int nID//ID number of the particle to kill

Kills the specified particle emitter, turning off the particles

Void KillParticle String szType//Type of particle to kill

Kills the specified particle emitter type, turning off all occurrences of the particle type

Void KillAllParticles None Kills all particle emitters

Int SpawnParticle String szType//Type of particle to spawnFloat fPosX//X Position of particle to spawnFloat fPosY//Y Position of particle to spawn

Creates a particle emitter to spawn particles of szType at fPosX and fPosY, and returns the ID associated with the emitter

System: CWwiseManager

Author(s): Alex Hernandez

Description: The CWWiseManager will use WWise SDK calls, and create simpler

function calls. The CWWiseManager must be initialized at the beginning of the application, and ProcessSound must be called every frame. The CWWiseManager is responsible for playing, pausing, looping, stopping all sounds within the game. The CWWiseManager will be able to play 2-D and 3-D sounds. Sounds will be used with speaker panning.

Dependencies Required: CGame

Risks: Risk: Affected Resource: P C RF

Unfamiliar with the Audiokinetic’s

Alex Hernandez 0.2 0.8 0.84

Response or avoidance:

109

Page 113: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

WWise

1.) Consult with Sound Director (Day 3)2.) Consult within studio (Day 4)3.) Consult out of studio ( Day 6)4.) Cut WWise and proceed with Direct Sound

implementation (Day 8)

Completion Time: 10 days Research 2 day Implementation 4 day Testing 2 day Integration 2 day

Special Info: Sound banks must be loaded during application start ProcessSound() must be called every frame

Methods:

Return Name Parameters DescriptionBool Init HWND hWnd Initializes the

sound engine and loads the sound banks

Bool Shutdown Void Closes the sound engine and deallocates memory used

Void ProcessSound Void Plays all necessary shounds, called each frame

CWwiseManager* GetInstance void Gets a pointer to the instance of the manager

Void SetFXVolume Float fVolume Sets the sound FX volume

Void SetDXVolume Float fVolume Sets the dialogue volume

Void SetMXVolume Float fVolume Sets the music volume

Void SetState AKUniqeID groupAKUniqueID state

Changes the sound filter that has been applied to all

110

Page 114: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

objects in group to state

Void SeetSwitch AKUniqueID groupAKUniqueID switchAKGameObjectID ID

Changes the sound played for all sounds played for “ID” using “switch”

Int RegisterObject Const char* szName

Registers the name of the object and returns the objects Wwise ID

Void UnregisterObject AKGameObjectID ID

Removes object from Wwise

Void SetObjectPosition AKGameObjectID IDAKSoundPositionPos

Sets the position for the object reference “ID” to “pos”

void SetListenerPosition AKListenerPositionPos

Sets the position of the listener to “Pos”

Void SetAttenuation AKGameObjectID objFloat Attenuation

Sets the falloff value of “obj” to “attenuation”

Void PostEvent AKEventID EventIDAKGameObjectID obj

Posts an event to the Wwise event system

System: CDirect3D

Author(s): Kahran Ghosalkar

Description:This module will house the main Direct3D Object and Device. It is

responsible for maintaining pointers to the sprite, line, and font, and uses those device pointers to abstract basic rendering information. It will have functions to clear, begin, end, and present the backbuffers. It will also be responsible for changing the display parameters whenever windowed mode is enabled.

Dependencies Required: CGame

Features: Initialize the D3D COM device & object

111

Page 115: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Reset lost device pointersRelease the D3D COM device & object

Completion Time: 2 days to research and implement

Methods: Return Function Name Parameters DescriptionVoid InitD3D HWND hWnd, int

nWindowWidth, int nWindowHeight,

Initializes the D3d object and sets up the present parameters

void ChangeDisplayParam int nWidth, int nHeight, bool bWindowed

Will handle the toggling between windowed and fullscreen modes

void ShutdownD3D void Cleans up memory and Releases all COM objects

static GetInstance void Gets the singleton instance

void Clear unsigned char ucRed, unsigned char ucGreen, unsigned char ucBlue

Clears the backbuffer to the specified color

void DeviceBegin void Calls begin on the d3d device

void DeviceEnd void Calls end on the d3d device

void Present Void Presents the backbuffer

System: CAllocHierarchy

Author(s): Kahran Ghosalkar

Description:This module is required by Direct3D to load meshes with an animation

hierarchy. An instance of this class will be passed in to D3DXLoadAnimationHierarchyFromX function and will use the overloaded

112

Page 116: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

functions to generate the frame hierarchy from the mesh, setup the materials and textures, and get the bone matrices.

Dependencies Required: CDirect3D, ID3DXAllocateHierarchy

Features: Create the mesh containerLoad a mesh and skinning informationLoad textures and materials associated with itDestroy the mesh container

Completion Time: 4 days to research, implement, test and debug

Methods: Return Function Name Parameters Description

HRESULT CreateFrame PCSTR Name, D3DXFRAME** ppNewFrame

Creates the animation hierarchy

HRESULT CreateMeshContainer PCSTR Name, const D3DXMESHDATA* pMeshData, const D3DXMATERIAL* pMaterials,..

Creates the mesh and gets the materials and textures from it

HRESULT DestroyFrame D3DXFRAME* pFrameToFree

Deallocates memory from the Frame hierarchy

HRESULT DestroyMeshContainer

D3DXMESHCONTAINER* pMeshContainerBase

Deallocates dynamic memory in the Mesh container

113

Page 117: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

System: CStaticMesh

Author(s): Kahran Ghosalkar

Description:This module will encapsulate a D3DXMESH that will not have any

animations associated with it. It uses that mesh to compute a bounding box to perform collisions.

Dependencies Required: CDirect3D

Features: Load a .X mesh fileUpdate the mesh world matrixRender the mesh

Completion Time: 2 days to implement and test

Methods: Return Function Name Parameters Description

Void LoadMesh LPDIRECT3DDEVICE9 pDevice, char* szFileName

Loads a static mesh from a .x file

void Update Float fDT Will update the mesh’s position, rotation, and scale.

void Render void Renders the mesh

114

Page 118: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

System: CAnimatedMesh

Author(s): Kahran Ghosalkar

Description:This module will hold information for a single animated mesh. It will load

a .x file into a D3DXMESH type and setup the animation hierarchy. It is also responsible for maintaining a list of all animation instances associated with this mesh.

Dependencies Required: CDirect3D

Features: Load a .X mesh file and hierarchyCreate an InstanceUpdate the mesh matrixRender the mesh

Associated RisksRisk: Affected Resource: P C RF

We may have an issue loading an animated .X files that have been exported using Cvxporter & Maya 2009

Kahran Ghosalkar .4 .6 .76

Response or avoidance:1. Research online for examples on loading .X files.2. Use an alternative exporter3. Write our own exporter and importer

Completion Time: 10 days to implement, test and debug

Methods: Return Function Name Parameters DescriptionVoid LoadMesh LPDIRECT3DDEVICE9

pDevice, char* szFileName

Loads a static mesh from a .x file

void Update Float fDT Will update the mesh’s position, rotation, and scale.

115

Page 119: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

void Render void Renders the mesh

HRESULT CreateInstance CAnimationInstance** ppAnimInstance

Create a new instance of this animated mesh

HRESULT SetupBonePtrs D3DFrame* pFrame Sets the pointers for the bone matrices

System: CAnimationInstance

Author(s): Kahran Ghosalkar

Description:This module holds an instance of an animated mesh. It recurses through

the hierarchy to update the frames world matrix. It also has an animation controller to play and switch animations.

Dependencies Required: CAnimatedMesh, CDirect3D

Features: Setup the animation controllerUpdate all frames in the hierarchyPlay and reset animationDraw instance

Completion Time: 5 days to research and implement

Special Info:Animations will be blended and skinned in a shader during the draw calls

Methods: Return Function Name Parameters DescriptionVoid Setup LPD3DXANIMATIONCONTROLLER

pACInitialize the animation tracks

void UpdateFrames MultiAnimFrame* pFrame, D3DXMATRIX* pmxBase

Recursively update the hierarchy using the matrix passed in

void DrawFrames MultiAnimFrame* pFrame Draw each

116

Page 120: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

frame in the hierarchy

HRESULT GetAnimController CAnimationInstance** ppAnimInstance

Create a new instance of this animated mesh

HRESULT SetWorldTransform D3DXMATRIX* pmxWorld Sets the pointers for the bone matrices

HRESULT AdvanceTime DOUBLE dTimeDelta, ID3DXAnimationCallbackHandler* pCH

Update the animation controllers time and update the frames.

Void ResetTime Void Resets the time of the animation controller

void Draw void Calls DrawFrames using the root bone

System: CTextureManager

Author(s): Kahran Ghosalkar

Description:This module will be responsible for managing all the textures needed

during the game, including those from meshes. It maintains a vector of D3DXTEXTURE and It will load/unload a texture from file. It will also have functionality to draw simple textures to a quad.

Dependencies Required: CDirect3D

Features: Load a texture from fileReturn an index to the loaded textureManage texture list

Completion Time: 2 days to implement and test

117

Page 121: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Methods: Return Function Name Parameters DescriptionCTextureManager GetInstance void Gets the

singleton instance

bool InitTextureManager LPDIRECT3DDEVICE9 lpDevice, LPD3DXSPRITE lpSprite

Initializes the texture manager with the d3d device passed in

void ShutdownTextureManager void Shuts down and deallocates all texture memory

Int LoadTexture const char* szFilename, DWORD dwColorkey = 0

Loads the texture from the filename passed in. returns the index into the texture vector

LPDIRECT3DTEXTURE9 GetTexture int nID Get the texture pointed to by the ID

System: CShaderManager

Author(s): Kahran Ghosalkar

Description:This module will be responsible for managing all the shaders needed by

the game. It will load/unload shaders, and hold information about common parameters global to all shaders, such as the ViewProjection matrix. It also holds information about directional lighting.

Dependencies Required:CDirect3D

Features:

118

Page 122: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Load a Shader from fileReturn an index to the loaded shaderManage Shader list

Completion Time: 2 days to implement and test

Methods: Return Function Name Parameters DescriptionCShaderManager GetInstance void Gets the

singleton instance

void ShutdownShaderManager void Cleans up the memory and releases the effects.

void LoadShader const char* szFilename, const char* szName

Loads the shader from the filename passed in and assigns it to the name.

LPD3DXEFFECT GetShader Const char* szName Get the shader passed in by name

Void SetMatrix D3DXMATRIX* pmxWorld

Sets the global World, view, and projection matrix.

System: Input

Author(s): Camron Weeks

Description:This class will be responsible for handling actions that the player character does (i.e. running, jumping, shooting, and etc.). During debugging it will handle camera movement. The input system will help with the navigation through the menu system.

Dependencies Required: Animation Manager, Sound, Camera, and Game States

Completion Time: 1 day

Special Info:

119

Page 123: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Methods:Return Name Parameters DescriptionStatic CInput* GetInstance NoneVoid Init HWND hWnd,

HINSTANCE hInstCreates the DirectInput8 Device

Void Shutdown None Releases all devices being used

Void AddDevice InputDevice* device

Adds an InputDevice to the system

Void RemoveDevice InputDevice* device

Remove an InputDevice from the system

Void Update None Calls Update on all devices

Bool GetAnyPressed None Loops through all the keys and/or buttons of all devices in the system and sees if any keys were pressed

Bool GetAction Action action, int player

Gets whether that action was preformed last frame

Float GetActionAmount Action action, Int player

Gets hot much that action was performed last frame

Void MapAction Action action,InputDeviceType devices,InputType type,Int value,Int player

Maps an action to devices, types, and a given value

Void UnmapAction Action action,InputDeviceType devices,Int player

Removes an action from the list

InputDevice* GetDevice InputDeviceType type

Sees what devices that is currently being

120

Page 124: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

used

System: CGUIManager

Author(s): Nicholas Guzman

Description: The GUI Manager is an object manager that works with GUI. It will be in

charge of rendering and updating any GUI objects in it using the draw and update function. GUI objects will be able to added and removed at any time using the add and remove function. The remove function will search through the containers in the GUI Manager and remove it. This will help clean up the code for each of the states because there will be just one call of the GUI Manager at any given time.

Dependencies Required:Object Manager, Renderer

Features:Can add multiple GUIs to be rendered and controlled.

Completion Time:5 days

MethodsReturn Name Parameters Description

void Update Float fTime Updates all GUIs in the manager

void Draw NONE Renders all GUIs in the manager.

void Add CGuiBaseObject obj Adds a GUI to the manager.

void Remove CGuiBaseObject obj Removes a GUI from the manager.

121

Page 125: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Void ClearAll NONE Removes all GUIs from the manager.

Static CGUIManager*

GetInstance NONE Returns an instance of the GUI manager.

void Init NONE Setups up the GUI manager.

void Shutdown NONE Shut down the GUI Manager removing all objects from it.

System: Camera

Author(s):

Description: The camera module is responsible for the way the game camera moves in

the world as well as displaying all game objects to the player. The camera should be initialized during the Game’s initialization. During the menus the camera will be stationary as no movement is required. During the game, the camera will focus on keeping the player(s) on the screen at all times. The camera will move on the x axis following the level and will not move left past its locked position.

Dependencies Required: Access to the following:

CCamera CRenderer CDebugSystem CObjectManager

Accessed by the following: CGame CEventManager

Completion Time: 3 Days 1/2 day - Research 1 day - Implementation 1/2 day - Testing

122

Page 126: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

1 day - Integration

Methods:

Return Name Parameters DescriptionVoid Initialize Void Initialize the camera

class and sets the default values to 0 or NULL

CCamera* GetInstance Void Get the current instance of the class

Void Update Float f_ElapsedTime Updates the time sensitive components

Const Matrix4&

GetViewProjection Void Gets the resulting matrix from multiplying the view and projection matrixes

Const Matrix4&

GetView Void Gets the view matrix

Const Matrix4&

GetProjection Void Gets the projection matrix

Const Matrix4&

GetWorldMatrix Void Gets the matrix of the camera in world space

Float GetNearFrustum Void Gets the plane distance of the near frustum plane

Float GetFarFrustum Void Gets the plane distance of the far frustum plane

Void SetProjection Float f_Field // field of view

Float fWidth // width of window

Float fHeight // height of window

Sets up the projection matrix

Void SetNearFrustum Float fDistance Sets the distance of the near plane of the frustum

Void SetFarFrustum Float fDistance Sets the distance of the far plane of the frustum

123

Page 127: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

System: AIAuthor(s): Camron Weeks

Description: This module will be responsible for handling all of the actions for the non-player characters. This includes navigating the terrain of the level, selecting a target, attacking a target, and switching between states for the boss. When a non-player character is initialized it is given a place in the world to be and how it going to act for the duration of its life. Every game tick a non-player character will process their next move and see what they need to do next, if anything.

Dependencies Required: Event Manager, Collisions, Render System, Sound, Event Manager

Features: This system will handle:

Moving an NPC Selecting and Attacking a target for an NPC Handling different AI situations

Completion Time: AI System Total – 9 days

o Research – 3 dayo Implementation – 3 dayso Testing – 2 dayo Integration – 1 day

Special Info:AIType will be an enum holding the types of different AIs

Methods:Return Name Parameters DescriptionVoid Init AIType type,

Vec3f vPositionDetermines what style of AI an NPC will use and where it will start

Void Death None deallocates any resources used during the life of a NPC

Vec3f GetPosition None Gets current

124

Page 128: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

position of a NPCAIType GetType None Gets which type

of AI style a NPC is

Void SetPosition Vec3f Position Gives a NPC a new position

Void Update Float fTime Updates a NPC position and calls ProcessAI

Void ProcessAI AIType type Handles what a certain NPC needs to do in any certain situation

Void AttackTarget Vector<Characters*> Loops through the a list containing the NPCs and PCs and determine switch one which is the best to attack and proceed to attack

Risks: Risk: Affected Resource: P C RFUnable to get the single player AI partner to navigate the terrain; for example navigating the platforms and not only the ground floor.

Camron Weeks 0.4 0.7 0.82

Response or avoidance:1.) Talk to classmates (Day 1, Hr1)2.) Talk to EPs (Day 1, Hr 5)3.) Talk to Jeremiah (Day 2, Hr 1)4.) Discuss scrapping idea (Day 5)5.) Scrap if determined necessary (Day 6, Hr 1)

Risk: Affected Resource: P C RFCompetitive player AI does not effectively

Camron Weeks 0.7 0.4 0.82

Response or avoidance:

125

Page 129: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

challenge the player because if the complexity of the design

5.) Pair programming with engine lead (Day0)6.) Consult with AI course director (Day 2)7.) Redesign a simplified AI algorithm (Day 5)8.) Cut competitive player AI feature; make it single

player (Day 7)

Risk: Affected Resource: P C RFMaking the competitive player AI effectively dodge melee and ranged attacks coming towards it.

Camron Weeks 0.8 0.6 0.92

Response or avoidance:1.) Pair programming with engine lead (Day0)2.) Consult with AI course director (Day 2)3.) Redesign a simplified AI algorithm (Day 5)4.) Cut competitive player AI feature; make it single

player (Day 7)

Risk: Affected Resource: P C RFHaving the ranged AI from stacking on top each other while shooting at the player characters

Camron Weeks 0.4

0.3

0.58

Response or avoidance:1.) Talk to the team about how it should work (Day

0)2.) Get a certain way of managing build up of

ranged enemies (Day 1)3.) Implement a efficient system of handling build

up (Day 4)

System: Collisions

Author(s): TJ “Collide This” Farnie

Description: Collisions will be a namespace that houses various functions used for

collisions detection. This will enable other systems to reference these functions and detect collisions so they may react appropriately. These systems will access the collision functions by simply calling them and passing in the required parameters. All the functions return a bool, true if there is a collision, false if there is none. In the event of a collision, the functions will fill out a vector with the exact point of collision, so that that information may be used if needed. This

126

Page 130: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

system will operate independent of the other systems, though other systems will need it to function.

Dependencies Required:Particle Manager, Object Manager, Sound System

Completion Time:3 days

Methods:Return Name Parameters Description

Bool AABBtoAABBCollision tAABB first//AABB of the first objecttAABB second//AABB of the second object

Detects collision between two AABBs. Returns true if the AABBs collide.

Bool AABBtoMeshCollision tAABB player//AABB of the playerD3DXMesh* mesh//Mesh of the object to check collision againstD3DXVector3& point//Point of actual collision

Detects collision between the player’s AABB and the mesh of an object. Returns true if there is a collision, and will then fill out the point vector with the position of the actual collision

Bool AABBtoSphereCollision tAABB player//AABB of the playerD3DXVector3 center//Center of the sphereFloat fRadius//Radius of the sphere

Detects collision between the player’s AABB and a sphere. Returns true if there is a collision

Bool SphereToSphereCollision

D3DXVector3 firstCenter//Center of the first sphereFloat fRad1

Detects collision between two spheres. Returns true if there is a

127

Page 131: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

//Radius of the first sphereD3DXVector3 secCenter//Center of the second sphereFloat fRad2//Radius of the second sphere

collision

Bool SphereToMeshCollision D3DXVector3 spherePos//Position of the sphereFloat fRad//Radius of the sphereD3DXMesh* mesh//Mesh to check collision againstD3DXVector3 pos//Position vector to fill out if there is a collision

Detects collision between a sphere and a mesh. Will return true if there is a collision, then fill out the pos vector with the point of actual collision

Bool AABBtoPlaneCollision tAABB objAABB//AABB to check against the planeD3DPlane plane//Plane to check against

Detects collision against an AABB and a plane. Returns true if there is a collision

128

Page 132: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Memory Map  RAM

Limit per thread: 128Total Limit: 256

Executable 3-4Mb

Internal Data Structures 200instances*16 Kb =3.2 Mb

TOTALCustom Mesh

Or.X Format

20core* 800verts* 32b= 512 Kb

TOTALCustom Animation Data

Or.X Files

20core* 30 sec * 30 frames*25bones* 16b = 7.2 Mb

Wwise Sound Banks 30 Mb GRAM

Total Limit:256Custom Mesh

Or.X Format

512 Kb (see above)

Custom Animation DataOr

.X Format

7.2 Mb (see above)

Partials 1000particals* 48b = 4.8 Kb

TEXTURES.Png/.Bmp/TBD

Or.Dds

 20core * 25 Kb = 5 Mb

129

Page 133: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Code Review Plan

Schedule: Whenever

Location: Full Sail meeting rooms

Ownership of ModulesEveryone is the author of their own modules/code. If any person wishes to modify code authored by someone else, he is required to ask for permission from that author to do so. Under no circumstances will anyone modify code he does not have ownership of.

Coding standardsEveryone is required to follow the standards outlined in the StudioCodingStandards document. Exceptions to that rule are as follows:

Function/method comments are only required for important, unique, or hard to understand functions. It is up to the author to decide if it is such.

Functions are allowed for structs. This allows the code to use a memcpy to copy structs that need functions.

ConsequencesIf anyone fails to follow the above rules, he will be subject to the donut offense.1st time: Warning2nd time: Written Warning3rd time: Donut offence! He must buy donuts for the entire team.All subsequent offences will automatically be a donut offence.

130

Page 134: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Integration Plan

Integration

Person in charge: TJ “Integrated Success” Farnie.

Review: Internal Producers

Schedule: Before the end of the day, during the final 2 hours of work every session. If no integration needs to be done, then this time will be ignored.

Details: Module must be complete and tested before integration, and then tested again afterwards. If the module works as required and no bugs are found, as “safe” snapshot of the code will be created and archived.

Rollbacks: If code freeze occurs and a know crash is in the build. A roll back to a previous “safe” snapshot of the code will occur.

Source Control: Alienbrain

Check In/Out: Only the current author of the module can check in/out any module at a time.

Special Case

If a module is of critical importance and must be implemented ASAP, the author must request an immediate meeting to get that module integrated.

131

Page 135: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Testing Plans

Maintaining the Bug Database

Person in charge: Nick Guzman

The game will be tested and the bug database will be updated immediately after the integration phase. All team members are responsible for maintaining a list of all the bugs they have found, following procedure and completing a bug report form(see below), since the previous database update and must be submit them to the person in charge. The bugs are then assigned to the author of the broken code/module. Only C severity bugs will be allowed into the build.

Bug Description/ How to Produce

Severity Type

A B C TechGraphicDesign

Severity:A –Interrupts game flow (Must be handled immediately)B –Slows the game down (Must be handled before Milestones)C –Graphic Anomalies (Should be handled as polish)

TypeTech – (Programmer) pertains to code issuesGraphic – (Artist) pertains to art assetsDesign – (Gameplay) pertains to a balancing issue Working on bugs

The person assigned to working on a bug fix must do so as soon as a bug is found. The rules on working on bugs are as follows:

The person has 2 Hours to fix as a team. If it cannot be fixed, must request immediate help. If it requires more time, a roll back will be performed.

132

Page 136: nsqrd.files.wordpress.com · Web viewDuring the production phase, we will meet in Final Project rooms, Open Labs or available room designated by the Internal Producer(s). If no rooms

Game Folder Hierarchy

133