You are on page 1of 201

Brian Sorin Johnathan Garrett Shawn Kennedy Jim Sherrill Paul White

bsorin@fullsail.edu jd@jd-garrett.com skennedy@fullsail.edu jsherrill89@gmail.com pwhite0368@gmail.com

Publishing Documentation .................................................................................... 5 Game Charter.................................................................................................... 6 Vision Statement............................................................................................ 6 Meeting Schedule .......................................................................................... 6 Hours Worked per Week ............................................................................... 6 When Things Go Wrong ................................................................................ 6 Decision-Making Process .............................................................................. 7 Rules of Conduct ........................................................................................... 7 Team Roles ................................................................................................... 7 Executive Summary .......................................................................................... 9 High Concept ................................................................................................. 9 Locale ............................................................................................................ 9 Genre ............................................................................................................. 9 Basic Controls................................................................................................ 9 Game Goal .................................................................................................... 9 Target Platform .............................................................................................. 9 Marketing & Target Audience ...................................................................... 10 Game Walkthrough/Overview ...................................................................... 10 Key Features ............................................................................................... 10 Comparative Products ................................................................................. 11 How this Product Stacks up ......................................................................... 12 Treatment ........................................................................................................ 13 Dust Jacket Story......................................................................................... 13 Game Story.................................................................................................. 13 Characters ................................................................................................... 14 Weapons...................................................................................................... 20 Power-Ups ................................................................................................... 25 Upgrades ..................................................................................................... 26 Levels and Maps.......................................................................................... 27 Art and Production Design .............................................................................. 32 Art & Animation Style ................................................................................... 32 Sound Effects Style ..................................................................................... 32 Music Style .................................................................................................. 32 Concept Art ..................................................................................................... 33 Production Documentation .................................................................................. 38 Interactivity ...................................................................................................... 39 Goal ............................................................................................................. 39 Interface ....................................................................................................... 39 Interactive Rhythm ....................................................................................... 53 How the Player Marks Progress .................................................................. 55 Profile Saving............................................................................................... 55 Front End Flow Chart ................................................................................... 56 Game Flow Chart......................................................................................... 57 Glossary of Terms ....................................................................................... 58 Characters ................................................................................................... 60

Weapons...................................................................................................... 66 Power-ups.................................................................................................... 75 Levels and Maps.......................................................................................... 76 Environmental Effects .................................................................................. 91 Combat System ............................................................................................... 92 Camera System ........................................................................................... 94 Upgrade System .......................................................................................... 95 Mini-Game System ...................................................................................... 98 Multiplier System ........................................................................................... 101 Unlockables System ...................................................................................... 102 Game Logic, Algorithms, and Rules .............................................................. 103 Interaction Component Matrix .................................................................... 103 Key Game Algorithms ................................................................................ 107 FAQ ........................................................................................................... 108 Reference of Key Elements ........................................................................... 109 Scoring ...................................................................................................... 109 Winning/Losing .......................................................................................... 109 Transitions ................................................................................................. 109 Rewards .................................................................................................... 110 Art and Production Design ............................................................................ 111 3D Art & Animation Deliverables ................................................................ 111 2D Art (HUD/Menu/Particle/Textures) Deliverables ................................... 114 Sound Effects Deliverables ........................................................................ 118 Music Deliverables ..................................................................................... 122 Cutscenes/Pre-rendered scene Deliverables............................................. 125 Technical Documentation ................................................................................. 128 Overview ....................................................................................................... 129 Coding Standards.......................................................................................... 130 Naming Standards ..................................................................................... 130 Coding Guidelines ..................................................................................... 133 Development Environment ............................................................................ 134 Timing Specifications .................................................................................... 135 System Architecture ...................................................................................... 136 Context Model Description ......................................................................... 137 System Feature Breakdown .......................................................................... 145 Render Manager ........................................................................................ 145 Model Manager .......................................................................................... 154 Animation Manager.................................................................................... 155 Object Manager ......................................................................................... 156 Transition Manager .................................................................................... 161 Options Manager ....................................................................................... 162 Main Game Module ................................................................................... 164 Menu State ................................................................................................ 165 Game State................................................................................................ 166 Math Module .............................................................................................. 168 Collision Module ........................................................................................ 170

Interface Manager...................................................................................... 172 Input Manager............................................................................................ 180 Sound Manager ......................................................................................... 181 Timer ......................................................................................................... 184 Game Feature Breakdown ............................................................................ 185 Level Manager ........................................................................................... 185 Combat Manager ....................................................................................... 188 AI Manager ................................................................................................ 190 Upgrade Manager ...................................................................................... 191 Scoring Manager ....................................................................................... 192 Profile Manager ......................................................................................... 193 Milestone Deliverables .................................................................................. 195 Appendix A .................................................................................................... 199 Memory Map .............................................................................................. 199 Integration Plan.......................................................................................... 200 Appendix B .................................................................................................... 201 Game Folder Hierarchy ............................................................................. 201

Publishing Documentation

Game Charter
Vision Statement Five months from now, we will have a fun and complete game. We will ensure that our game is fun by extensively testing our features and fine-tuning them to ensure balanced gameplay. Through an accessible interface and intuitive controls, we will strive to achieve smooth gameplay. We will maintain active communications with all of our executive producers and art directors to ensure a productive development process and timely acquisition of all assets. A wellplanned and researched engine design and structure in combination with good coding practices will lead to code that is easier to debug and test. Finally, following closely to properly structured schedules will lead to completion of important features by the fourth month. Meeting Schedule We plan to meet six times per week outside of class. We will be meeting at Brian Sorins apartment. Each meeting will begin with a turbo team session and a review of any work done since the last meeting and a review of what needs to be accomplished during this meeting. Meetings will last at a maximum, eight hours including breaks and each team member is expected to work to their fullest potential during that time.

Hours Worked per Week Each team member is expected to work at least 48 hours per week not including lecture or lab time. As a team, we will strive to work the following hours in these months: o Month 1: 30 hours a week. o Month 2: 40 hours a week. o Month 3: 60 hours a week. o Month 4: 60 hours a week. o Month 5: 60 hours a week. The maximum allowed hours worked per week is 72 hours. Each Sunday will be our teams day off from each other and the code to relax and refresh ourselves.

When Things Go Wrong If someone does not show up for a meeting or a class and they cannot be reached by phone, email, instant message or other means, steps will be taken to resolve the situation.

Emails and phone calls, including voicemails will be sent to each team member in the case of an emergency. If the situation warrants it, attempts will be made to go to their home or if need be, contact the authorities. Everyone will do their best to stay calm and resolve the situation in the most reasonable way possible.

Decision-Making Process At the beginning of each meeting during the discussion phase, any new design, technical or implementation ideas that arise will be fully discussed. If possible, a decision will be made regarding them after discussing any aspects related to them. On non-time critical topics, three meeting times will be allotted to come to a decision. On more critical topics, extra time will be allotted during the beginning phases of a meeting to come to a final decision. In a true stalemate situation, the leader of the system that the specific topic falls under will act as a tiebreaker. If for some reason a decision sill can not be reached, the responsibility will fall on the project leader to decide.

Rules of Conduct Each team member is expected to be as professional and helpful as possible during any group activity. In addition, a strong sense of humor and lightheartedness is encouraged to keep team spirits high. If any problems arise with team members, those problems should be addressed as soon as possible or at the beginning of the next team meeting. If the problem continues for an extended period then the situation should be addressed to our teams EP for further deliberation.

Team Roles Administrative Roles Project Lead Brian Sorin Design Lead Shawn Kennedy Gameplay Lead Jim Sherrill Asset Lead Paul White QA Lead Johnathan Garrett

Technical Roles Technical Lead Johnathan Garrett AI Lead Johnathan Garrett Rendering Lead Brian Sorin Interface Lead Paul White 7

Sound Lead Paul White Camera Lead Shawn Kennedy Engine Lead Jim Sherrill

Executive Summary
High Concept Dead Center is a fast paced, intense third person shooter that pits you against hordes of zombies; your goal is to clear out the overrun government facility. Locale Dead Center takes place in the middle of the desert at a government facility responsible for researching different ways of dealing with the living dead. After some time, the research takes a turn for the worst and the facility is overrun by thousands of zombies. In a last ditch effort to keep the situation under control, the government calls on mercenaries to clear the facility of the zombie infestation. Genre Dead Center is a third-person shooter, with emphasis on survival. The theme of the game is a dystopian world where the government is researching potential uses of the living dead. The visual theme of the game is a stark contrast between the dark undead and a cartoon based animation style. Basic Controls The player will control the main character via the mouse and keyboard or Xbox controller. The only camera perspective available to the player is third-person. The camera will be pulled back behind the player and the camera will follow the direction the player is aiming. Game Goal The main goal of the single player campaign is to beat every level. The player is expected to eliminate all zombies in a level. The player advances in-game by defeating wave after wave of zombies which will ultimately result in the completion of a level. The player will also advance their character by performing well in the levels. They will be rewarded with points that they can use to upgrade their weapons and advance their characters strength and capabilities. Target Platform PC o Minimum System Requirements: Windows XP Operating System 2.0 GHz Processor 256 Mb Video Card 9

Marketing & Target Audience The typical player for our game will be males between the ages of 18 to 34 who are fans of the shooter genre. Shooter fans enjoy fast-paced gameplay that is full of action. According to the Entertainment Software Association, in 2007 11.6% of computer games sold were shooters, which make up a significant portion of the computer game market. Dead Center will appeal to these players because we are going to have fast-paced action with a variety of fun weapons to destroy zombies. Game Walkthrough/Overview Once a game type is chosen, the game will load the chosen game type and level. The loading screen will have flavor text that describes any new zombies and terrain effects you will encounter in the level. You will then be placed in control of the character and can move freely about the arena and use your weapons. A zombie wave will spawn and they will be trying to take you out. You must then use your weapons and the environment to destroy all the zombies. You can use your melee weapon when they get to close, or attack them with your ranged weapons from afar. You can also set up traps and combo them with your ranged attacks to blow up multiple zombies at once. Once the first wave is finished, you will have a moment to catch your breath and then another wave will spawn. After killing all the waves, the level will end. If you are in the Campaign mode, the upgrade screen will display, allowing you to use the points you earned on the level to upgrade your skills / weapons, and then the next level will load. Key Features General Features Massive waves of zombies. Various zombie types. o Zombie Move directly to the player. o Ghoul Leap at the player. o Abomination Moves slowly but blows up when they get close to the player. o Skeleton Throw bones at the player from range. o Surgeons Resurrect fallen zombies. Upgradeable character and weapon systems. Unlockable content. Player Upgrades Ability and weapon upgrades. o General Health Allows the player to take more damage. Speed Allows the player to move faster.

10

Jump Allows the player to jump higher. o Melee Knife Metal Bat Sword o Ranged Pistol Shotgun Rocket Launcher o Traps Spikes Stasis Mine Explosive Mine Gameplay Various game modes. o Campaign Fight through five arenas, upgrading your skills as you go. o No Hope Fight continuous waves of zombies to see how long you can survive. o Aboms Away! Fight increasing numbers of Abominations, trying not to get blown up in the process. o R.I.P. One hit will kill you and enemies in this mode, so you must kill the waves of zombies without getting touched. o Custom In this game, the player is allowed to modify aspects of play in a sandbox style mode. Interactive arena environments. o Terrain effects Sand Slows down movement. Ice Causes sliding when moved over. Lava Causes damage when moved over. o Obstacles Pillars and conveyors. Comparative Products Boxhead: The Zombie Wars is a flash game which is very closely related to our game. In Boxhead, you control one character and are given an array of weapons to fend off waves of zombies that come after you. Boxhead also captures the one versus many and survival feelings well. Left 4 Dead is another comparable game. The game uses the survival theme well. The player is provided with an array of weapons they can choose to defend

11

themselves with. They also send loads of zombies at the players to create the feeling that they are heavily outnumbered and survival is not an easy task. Dynasty Warriors has a few aspects that make it comparable. These aspects are the number of enemies the player fights and the upgrade system. How this Product Stacks up Most of our comparable products share some of the same features. All the games use lots of enemies to make the player feel like they are outnumbered and must survive. Our comparable products have a variety of weapons to use but they dont change, what we plan to do differently is allow the player to upgrade their weapons to make them stronger and provide some special abilities such as knock back. Our game will be most closely related to Boxhead but will be in 3D as opposed to 2D and will have more gameplay elements. We are also going to offer interesting game types such as Aboms Away and No Hope... These different game types will make our game stand out from the rest.

12

Treatment
Dust Jacket Story Something has gone horribly wrong at the Death Effects and Dynamics Center, more simply known as Dead Center. This government facility, tasked with the research of the living dead has stopped responding to all calls and someone needs to find out why. You have been given this mission. Use a multitude of weapons including a massive sword and a rocket launcher to fend off hundreds of zombies in various areas of the research facility! Will you become the savior of the Dead Center, or its next victim? Game Story The world has started to see a threat that it has never seen before, and with that new threat there were some who turned a blind eye. A few, however, decided to combat the ever increasing number of the living dead by capturing them for study. They took the infected to scientific facilities to discover how to most effectively dispose of them. Suddenly, one of the facilities stopped responding You have been called on to find out what happened at the Death Effects and Dynamics Center, also known as Dead Center.

13

Characters Jessica Summerset Main Default Player Character Jessica is a 22-year-old American female bounty hunter in top physical condition with well-toned muscles and a sleek physique. She is 58 with striking short blue hair and wears an assortment of metal armor combined with lightweight garments that allow her to easily move around. She wears tight, dark jeans and has many loose belts around her waist and black knee-high combat boots.

Jessica grew up quickly, raised by a surrogate family of bounty hunters that took her in as a very young child. Living in the bowels of New York hunting down the scum that corrupts her city, she fights for justice and to escape the pain of not knowing her past. After hearing about the crisis at the government run holding facility, Dead Center, Jessica sets off to do what she can to set things right again. Dialogue At the start of a round: Lets do this! Reloading: Reloading, hold on! Getting Hit: Ugh! Damn! Ahh! Dying: Nooooooo!

14

Zombie NPC Enemy Zombies are similar to a normal human. They are of average height and weight, 58, 180 pounds and retain normal human features such as hair, eyes and clothing. Zombies differ in the fact that their skin is beginning to rot away, and is covered in sores and torn. Zombies movements are fluid and they run at an average speed the same way a living person would if they were chasing someone. Their faces are aggressive and have a look of determined intent in their face to reach their target.

Before dying, Zombies were just your average human that happened to be going to Hell. They had normal lives and died in normal circumstances. Because of Hell being full, instead of just dying they became the undead and began to walk the Earth before being captured by the government and imprisoned in the Dead Center. Now the Zombie poses a threat to all whom entire through their shear determination and numbers. Dialogue Spawn: Grumbled moan Ughhhhhh Death: Gugh

15

Ghoul NPC Enemy Ghouls are very agile and lanky creatures. They move quickly by running similarly to a gorilla on all fours and have powerful legs that let them jump long distances. They look less human then Zombies and their skin is even further decayed and rotting.

Ghouls were the worst humanity had to offer in life. After dying, their rage was amplified and now they scurry around looking for any sign of humanity to destroy. Inside the Dead Center, they are less common then Zombies but are much more deadly. Dialogue Spawn: Gyeaaaaaaaaaaaaa! Death: Gyeahahah

16

Skeleton NPC Enemy Skeletons are a completely decayed being. There is nothing left of them except an intact skeletal structure and small scraps of flesh. They move the same as zombies but are not as aggressive and tend to stay in the back of a horde.

After Hell filled up, the bones of the already dead began to rise. Fully decayed by this point, they began to wander the Earth aimlessly. Having no regard for their bodies, the main form of attack of the Skeletons is their ability to detach a bone and throw it until they fall apart. Dialogue Spawn: Hahahahahah!

17

Abomination NPC Enemy Abominations are obese, lumbering former humans. They have enormous bloated stomachs, small arms and legs and many sores and lacerations covering their decaying skin. Abominations take small, slow steps and are off balance when they move.

Common in the Dead Center, the Abomination is a difficult creature to contain. While slow and awkward, once they reach their desired target an Abomination does something unique, it blows itself up to try to destroy its target. Dialogue Spawn: Ugggggggggg Death: Buhhhhhhhhhh

18

Surgeon NPC Enemy Former doctors at the Dead Center, Surgeons are similar to normal Zombies but wear medical outfits. They are less decayed them zombies but their clothes are tattered and bloodstained. Surgeons are not aggressive and tend to stay in the back of hordes.

The Dead Center employs countless doctors who do endless experiments on the undead theyve captured. When things get out of control, doctors are often the first people killed. Even after death, they continue their twisted experiments. Dialogue Spawn: Lets see what we have here Very interesting! Summon: More specimens! Death: My work isnt finished!

19

Weapons Knife This is the basic melee weapon that the player starts with. It looks like a normal combat knife, and makes a slicing sound when used. The knife will deal a small amount of damage to any enemies within melee range of the player. Damage and speed upgrades can be purchased, as well as a double damage upgrade, making it effective for killing single high priority targets. The knife looks like a normal combat knife.

Metal Bat This is the intermediate melee weapon. It will look like a standard metal baseball bat and make a whooshing sound when swung. It will deal a moderate amount of damage to a single enemy in front of the player, and knock back that enemy. The damage and swing speed can be upgraded for the Metal Bat, and the big upgrade allows the bat to knock back multiple enemies in front of the player. The metal bat looks like a standard metal baseball bat.

20

Sword This is the top end melee weapon. The sword will look like an oversized broadsword, similar to the Buster Sword from Final Fantasy VII: Advent Children. The Sword will deal a large amount of damage to any enemies in melee range. The arc of the attack will be wider than the knife. The damage and swing speed of the sword can be upgraded, and the big upgrade will widen the arc of the swing. The Sword will look similar to the Buster Sword from Final Fantasy VII: Advent Children. It will have a large blade with a small hilt and handle with nuts and bolts holding pieces of the sword together.

Pistol This is the basic ranged weapon that the player starts with. It looks and sounds like a normal 9mm pistol. It will have a muzzle flash and a little starburst effect when it hits enemies. The pistol will deal a small amount of damage. The damage and clip size of the pistol can be upgraded, and the big upgrade will cause the bullets to pass through multiple enemies. The pistol looks like a normal pistol.

21

Shotgun This is the intermediate ranged weapon. It will look and sound like a standard combat shotgun. It will have a large muzzle flash and will cause little starburst effects when the pellets hit enemies. This will deal a moderate amount of damage. The damage and clip size can be upgraded for the shotgun, and the big upgrade will widen the arc of the shotgun blast. The shotgun looks like a standard combat shotgun.

Rocket Launcher This is the top end ranged weapon. It looks and sounds like a normal rocket launcher. It will have a smoke trail off of the rocket it shoots, and cause an explosion where it hits. The explosion will deal a large amount of damage and knock back enemies. The damage and clip size of the rocket can be upgraded, and the big upgrade will widen the explosion radius of the rockets. The rocket launcher looks like a normal rocket launcher.

22

Spikes This is the basic trap weapon that the player starts with. The spikes look like caltrops that ninjas would use. They are basically four spikes coming from a center point to the corners of a pyramid shape. These can be placed on the ground and will do a small amount of damage to enemies when they contact it, and the enemies will be knocked back slightly. One hit from an enemy will cause the spike to disappear. The damage and cooldown can be upgraded for the Spikes, and the big upgrade will increase their durability, allowing for three hits before the spike expires. Spikes are metal, with 4 metal spikes protruding from a center point into the 4 corners of a pyramid.

Stasis Mines This is the intermediate trap weapon. They will look like a metal disc with a blue light on top and when they are deployed a light blue dome will expand from it. When enemies enter this dome they will be slowed. The slowing amount and cooldown can be upgraded for stasis mines, and the big upgrade will give a chance to stun enemies that are passing through.

23

Explosive Mines This is the top end trap weapon. They will look like metal discs with a red bubble that shows the trigger range. They will explode when enemies get near them, doing a large amount of damage and knocking them back. The damage and cooldown can be upgraded for the explosive mines, and the big upgrade will widen the explosion radius.

24

Power-Ups Health Orb The health orb is an orb that appears on the ground when the player kills more than one zombie with a single attack. The amount of health granted by the orb is dependant on the number of zombies killed. If two zombies are killed, the orb will grant one health, if three are killed, the orb will grant two health points, if four are killed, the orb will grant four health points. For each additional zombie the player kills, the orbs health bonus will double. This rewards the player for finding ways to kill many zombies at once. The health orb is simply a shiny blue circular power-up as described below. The health orb will be a small point of light that seems to emanate energy. Energy will flow around it and radiate from the core. Visually, it will look similar to the image below.

25

Upgrades Health Upgrade The health upgrade is available to the player as an end of match upgrade, purchasable with points earned throughout the match. Each level of the health upgrade will increase the players maximum health by 10%. If the player has 100 health points, it will increase to 110. The following level will then increase the players health to 121. 10 levels of this upgrade will be purchasable. Jump Upgrade The jump upgrade is available to the player as an end of match upgrade, purchasable with points earned throughout the match. Each level of the jump upgrade will increase both the height and the distance that the player can jump by 20%. Once the player has purchased all five levels of this upgrade, he will be able to jump twice as far and twice as high as the standard jump distance and height. Speed Upgrade The speed upgrade is available to the player as an end of match upgrade, purchasable with points earned throughout the match. Each level of the speed upgrade will increase the players run speed by 10%. 10 levels of this upgrade will be purchasable. Once the player has attained all 10 levels of this upgrade, he will run twice as fast as the standard run speed. Weapon Upgrades Weapon upgrades are available to the player as an end of match upgrade, purchasable with points earned throughout the match. The player can upgrade the attributes of their weapons such as damage and speed or they can choose to buy new weapons with different abilities.

26

Levels and Maps The Courtyard The main objective of this level is for the player to survive through a number of oncoming undead waves. In the beginning, a few basic zombies will enter and as time passes more will spawn with increasing frequency. The player is also introduced to the first type of elemental ground effect, sand, which will slow anything down that passes through it. The Courtyard is the first stage the player comes across and it is the entrance to the Dead Center. In the center of the arena is a large fountain surrounded by a concrete pathway that leads up to a small set of stairs in front of the facilities faade. Breaking through the arenas two side walls are large sand dunes that have spilled over on to the floor. Finally, there is a large staircase behind the main gate that leads to the helipad. This first arena is the now abandoned entrance to the defunct section of the Dead Center.

27

The Refrigerator The main objective of this level is for the player to survive through a number of oncoming undead waves. This arena will also introduce the player to our ice element ground effect, moving conveyers and a new undead type, the Ghoul. This arena has four strips of ice near each corner that will force anyone walking over it to slide in the direction they are moving. Also, on three walls of the arena are short moving conveyer belts that enemies will spawn from. This is where the Dead Center stored food and medical supplies. The conveyor belts were used to move heavy boxes of supplies into the refrigerator from unloading zones. When the zombies first broke out into the complex, they used to wait in the unloading zones for survivors who entered the refrigerator for supplies. The zombies would then pour in from the conveyor belts and dispose of the unlucky survivors.

28

The Furnace The main objective of this level is for the player to survive through a number of oncoming undead waves. This arena will introduce the player to our fire element ground effect, and a new undead type, the Abomination. In this arena the player will be lowered down from a platform elevator at the start and begin in the center of the room surrounded by four pillars. Along the back walls are steam grates that will cause damage as anyone walks over them and behind them is a long moving conveyer belt. The Furnace is where the Dead Centers garbage and zombie corpses were disposed of. The center elevator was used to bring down the waste, which was then placed onto the conveyor belt that runs into the furnace. Survivors used this room to lure zombies onto the moving conveyor belt, carrying the zombies to their demise inside the furnace.

29

The Test Facility The main objective of this level is for the player to survive through a number of oncoming undead waves. This arena will feature a dynamically updating floor that will rotate between all of the previous element floor elements, and a new undead type, the Skeleton. In this arena the player will be faced with a randomly changing environment that will have them thinking on their toes at all times. The four squares on the floor will rotate between the three different elemental types adding a sense of confusion and strategy to the room. Before the zombie outbreak, this room was used for research. Dead Center scientists would test to see if zombies were aware of their surroundings by changing the large squares to different floor elements and noted the zombies behaviors.

30

The Conference Hall The main objective of this level is for the player to survive through a number of oncoming undead waves. This arena will feature an almost completely dark room with only the players personal light to see. The Surgeon will also be introduced in this arena. While playing this arena, the player will have to rely on quick reflexes to counter the zombies. Faint glimpses of the zombies glowing eyes will be visible in the darkness; it will be up to the player to act on that. Before the outbreak this room was used to hold press conferences and give presentations about the research found in the test facility.

31

Art and Production Design


Art & Animation Style The art style for our game is a unique twist on the zombie survival genre. We are going for a cartoon-like look with simplified and rounded articulated models. Arenas will be dimly lit to give a sense of danger that will contrast well with the colorful aspects of the models. Sound Effects Style For our sound effects we are shooting for more realistic sounding effects instead of cartoon-like ones. We are doing this as it will enhance the feeling of slaughtering enemies that are out to kill the player and the satisfaction of the player defending themselves. The realistic sound will also increase the feeling of despair that we want the player to feel. Music Style Our music style is dependant on the levels, every level will have 2-3 songs that take queues from the level and the status of what is happening. When the fight with the horde breaks out we will have two songs that will be fast paced heavy songs (ex. Fly Routine by Hostile Groove) when the horde is very low in numbers and on any breaks that we give the player between waves we will slow the music down (ex. Monsters Inside - Left 4 Dead Soundtrack). The fast tracks serve the purpose to keep the player excited as he goes about the slaughter, the slow paced song gives the player a little congratulations for surviving but lets him know that another wave will be coming shortly.

32

Concept Art

33

Basic Zombie

34

Abomination

35

Surgeon

36

37

Production Documentation

38

Interactivity
Goal The players goal in our game is to fight through five levels while upgrading stats such as health, speed, and weapons. The player will achieve these goals by defeating enemies in order to earn points that they can spend on the upgrades. In order to beat each level the player will have to kill a certain amount of zombies that come in waves for the door to the next level to open up. Interface The main menu will have the six options (Campaign, Quick Play, Options, Change Profile, Credits, Exit). The player will select an option by pressing left of right, or by clicking on an option. The options will open up their own sub screens where the player can customize the game to their liking. The loading screen will show a blueprint of the facility and will indicate loading progress by a series of footsteps approaching the next room. On the right side of the screen there will be two sections providing information to the player. One section will contain information about the level, such as which elemental effects it has and the other section will contain information about any new enemies present within that arena. After the level has finished loading in the bottom right hand corner two buttons will un-gray out allowing the player to start the level, or check the control scheme. If the player chooses the control option we will display the control scheme panel for whichever (keyboard or controller) control scheme the player has selected. We will have a button press on the control scheme menu so the player can be transported to the arena after they have familiarized themselves with the controls. The H.U.D. will have the three classes of weapons on the bottom right; these will be semi transparent while not selected. Whichever weapon set the player is looking at will become opaque and if the player has additional weapons in that set they will show up. The player can then cycle through the weapons and select which ever one they want. On the bottom left, we will display the players health along with their current points and their point multiplier. On our upgrade screen to the left we well have four tabs that the player can choose, one for the player and the three different types of weapons. When one of these tabs is selected, to the right we will display the stats and upgrades that the player can choose. The amount of points available will be displayed on the bottom left at all times. For the player upgrades they will simply see the three attributes that can be upgraded: speed, health, and jump height.

39

Start

The first screen the player will see after the intro. From here they can select a saved profile, make a new profile, view the credits or exit the game.

40

Select Profile

This is where the player can load or delete a previously saved profile. If no profile exists, they can choose one of the empty slots available and create a new profile there. They also have the option of viewing the credits or exiting the game from here.

41

Main Menu

From the main menu, the player has a number of options. They can choose campaign mode, which will let them start a new campaign or continue an old one. Quick Play will allow the player to play any unlocked mini games they have. The options selection will let the player modify aspects of the game such as controls, volume and gamma. They player can also again choose to view the credits or exit the game from here.

42

Campaign

From the campaign screen the player has two options. They can either continue a campaign they have been working on or start a new one. If they choose to start a new one, any progress made on the previous campaign will be lost.

43

Quick Play

From the Quick Play menu the player can choose to play any of the unlocked mini games they have available.

44

Options

From here, the player has the ability to modify different aspects of the game such as video, sounds and bindable controls. These changes are saved per profile.

45

Upgrade Player

The player access this screen at the end of an arena and from here they will be able to advance there character and weapons. Above is an example of the characters upgrade section.

46

Upgrade Weapons

This screen shows how the player can upgrade the weapons that they own.

47

Upgrade Weapons Cont.

The above is an example of a weapon that the player does not own yet. They are given the option to purchase the weapon for the price listed.

48

Loading Screen

This is the loading screen the player will see in between arenas as described above.

49

Keyboard and Mouse Controls Screen

An example of the default keyboard and mouse layout the player will see when pressing the information button on the loading screen.

50

360 Controller Controls Screen

An example of the default controller layout the player will see when pressing the information button on the loading screen.

51

HUD

This is the interface the player will see while fighting in an arena. At the bottom left is the players health indicator, point indicator and the current level of their multiplier. On the bottom right of the screen, the players three weapons are displayed with any applicable ammo and the next weapon available.

52

Interactive Rhythm Typical Play Session o Campaign 25-35 mins. o Quick Play 12 mins. Entire Game Length o Campaign Level 1 The Couryard 1 minute 30 seconds per wave. 5 total waves. 10-15 seconds of planned down time per wave. Level 2 Refrigeration 1 minute 30 seconds per wave. 6 total waves. 10-15 seconds of planned down time per wave. Level 3 The Furnace 1 minute 30 seconds per wave. 6 total waves. 10-15 seconds of planned down time per wave. Level 4 The Test Chamber 2 minute per wave. 5 total waves. 10-15 seconds of planned down time per wave. Level 5 Conference Hall 2 minute per wave. 7 total waves. 10-15 seconds of planned down time per wave. It will take 45- 60 minutes on average to complete the Campaign. o Quick Play Aboms Away 5, 10, or 15 minutes depending on player selection. R.I.P. 5, 10, or 15 minutes depending on player selection. No Hope Only ends when the player dies or quits. After about 20 25 min., the horde will be very difficult to stop. Custom Time highly dependant on how hard the player makes the game type. Replay Value

53

o Players can save their character and use it in Quick Play, also they can restart the Campaign and earn more upgrade points Uptime vs. Downtime o Levels will start out slow with the zombie horde growing o Between waves there will be a small amount of downtime for the player to compose themselves. Gameplay Speed o Gameplay will be fast paced with short breaks as not to over whelm the player. Interactive vs. Non-Interactive o We will only take away control from the player while the levels are loading all other times they will have control. Enemies o Enemies will have 75-1000 health. o Enemy Types Zombies Take around 1 2 seconds to kill depending on the weapon. Shamble towards player. Ghouls Take around 2 3 seconds to kill because of their erratic movements. Jump at player. Abominations Take around 3 - 4 seconds to kill. Explode when the get close to player. Skeletons Take around 3 4 seconds to kill Throw bones at the player which they must dodge. Surgeons Take around 20 25 seconds to kill. In Campaign there will only be at most 3 out at a time. Raise the dead to fight back against the player. Small interactions o Player and enemies are slowed by sand. o Player and enemies slide on ice. o Player and enemies take damage over time from heat grates. o In the Furnace stage if a player or enemy falls into the furnace they die. o At the end of levels players can purchase upgrades

54

How the Player Marks Progress The player will mark progress by how much health they have, the level of their weapons, the players character stats (speed, max health, etc.), and amount of points they currently have. These four systems will give instant feed back to the player on how well they are doing in the game. When their health is high and have upgraded weapons they immediately know that they are doing well. Conversely when they have low health and are fighting off a horde with only a knife they know that they are doing poorly. Profile Saving The player will be able to select from a number of empty profile saving slots. Once an empty slot is selected and the player enters their name, any progress the player makes including finishing a campaign map and upgrading their character will automatically be saved.

55

Detailed Design Breakdown


Front End Flow Chart

56

Game Flow Chart

57

Glossary of Terms Attributes Position The place that a character or enemy is within our game world. Damage The amount of health that a specific attack or effect takes away from the target(s). Force The amount of pushback that a specific attack or effect has. Health The amount of damage that a character can take before dying. Speed The distance a character can travel over a given amount of time. Cooldown The amount of time it takes for a weapon or ability to be reusable. This can be the time it takes to reload a clip, the time it takes to place another trap, or the amount of time it takes before a Surgeon can use his Revive again. Clip Size This is the amount of shots a weapon can fire before needing to reload. Area The diameter of effect of an attack. Any enemies within this area will be affected the same way. Arc The cone of effect of an attack. Any enemies within this area will be affected the same way. Duration The amount of time or number of attacks a given trap will be active for. Attack Speed The amount of time between attacks for a given weapon. Slow Amount The amount that an enemy is slowed by a Stasis Mine pulse. Slow Duration The amount of time that an enemy is slowed by a Stasis Mine pulse. Stun Duration The amount of time that an enemy is slowed by an upgraded Stasis Mine stun pulse. Pulse Speed The amount of time between Stasis Mine pulses. Trigger Range The range from a player or enemy at which a trap will activate, or an enemys attack will activate, for example the Abomination Explode, or the Ghoul Leap. Health Amount The amount of health granted by a health orb. Unit A form of measurement, one unit represents two feet. Spawn Point The area from which enemies will spawn. Spawn Rate The rate at which enemies will spawn from a given spawn point.

58

Behaviors Walk / Run This is how the player and enemies will move around the game world. Melee The attack for Zombies. Throw The ranged attack for Skeletons. Jump The player can use this to leap over zombies. Ghouls will use this to attack the player. Revive This is how Surgeons will spawn enemies. Stab The attack for the Knife and Spike. Swing The attack for the Metal Bat and Sword. Shoot The attack for the Pistol, Shotgun, and Rocket Launcher. Explode The attack for the Explosive Mines and Abominations. Expire This occurs when a traps duration is up. Pulse The attack of the Stasis Mine. Reload This will occur when a clip for a ranged weapon runs out of bullets. It will fill up the clip. Grant Health When a player picks up a health orb this will happen, giving the player health.

59

Characters Jessica Summerset Default Player Character Jessica is the default player character. She is adept at using melee, ranged and trap weapons and is in top physical condition. A bounty hunter by trade, Jessica has come to the Dead Center to eliminate the undead hordes. Visual Design Basic Info Head Body 2.8 units tall Short blue hair Metal body armor Well-toned Strong piercing muscles eyes Tight black undershirt Sleek physique Legs Dark jeans Lots of loose belts around waist High black leather boots

Behaviors Walk Jump Melee Shoot Getting Hit Attributes Health The number of hits the enemy can take before dying. Run Speed How quickly the player can move. Jump Height How high the player can jump. Jump Distance How far the player can jump. Damage The amount of damage the player can deal. Attack Speed How quickly the player attacks. Health 100 Run Speed Jump Height 3.0 unit/sec 3 units Jump Distance 3 units Damage Weapon Specific Attack Speed Weapon Specific

60

Basic Zombie NPC Enemy Zombies are the basic enemy type throughout the game. They are unintelligent beings with one goal in mind, to reach the player. When they were alive, zombies were just normal humans and as the undead, they retain those characteristics. They do the least damage of all the undead but because of their numbers, they are a ferocious opponent. Visual Design Basic Info 2.8 units tall Average human build Head Normal short cut hair. Aggressive eyes and mouth Body Wears a ragged long sleeve hoodie Legs Torn dark pants and shoes

Behaviors Walk Melee Getting Hit Attributes Health The number of hits the enemy can take before dying. Run Speed How quickly the enemy can move. Damage The amount of damage this enemy can deal. Attack Speed How quickly the enemy can attack. Health 100 Run Speed 2.5 units/sec Damage 10 Attack Speed 1 per second

61

Ghoul NPC Enemy Ghouls are another enemy type found throughout the game. They are fast moving, agile enemies who can leap at the enemy over long distances. They focus on melee combat and do more damage then a basic zombie. Visual Design Basic Info 2.4 units tall Very skinny upper bodies Thick powerful legs Long exaggerated limbs Behaviors Walk Jump Melee Getting Hit Attributes Health The number of hits the enemy can take before dying. Run Speed How quickly the enemy can move. Jump Height How high the Ghoul can jump. Jump Distance How far the Ghoul can jump. Trigger Range Distance the enemy needs to be in to use an ability. Cool down Time it takes for the enemy to reuse an ability. Damage The amount of damage this enemy can deal. Attack Speed How quickly the enemy can attack. Health 80 Trigger Range 8.0 units Run Speed 5.0 units/sec Cool Down 10 seconds Jump height 3.0 units Damage 30 Jump Distance 8.0 units Attack Speed 2 per second Head Thinning hair Aggressive eyes Awkward grinning mouth Body Wear normal shirts that are torn and stained with dirt and blood Legs Torn dark pants and shoes

62

Abomination NPC Enemy Abominations are another enemy type found throughout the game. They are fat, slow undead that will sacrifice themselves by blowing up at will to defeat the player. They focus on sacrificial melee combat and do more damage then both the Zombie and Ghoul. Visual Design Basic Info 2.6 units tall Extremely obese Slow and unbalanced Small appendages Behaviors Walk Explode Getting Hit Attributes Health The number of hits the enemy can take before dying. Run Speed How quickly the enemy can move. Trigger Range Distance the enemy needs to be in to use an ability. Cool down Time it takes for the enemy to reuse an ability. Damage The amount of damage this enemy can deal. Area The range of effect this enemies explosion attack has Health 150 Cool Down 0 seconds Run Speed 1.0 units/sec Damage 50 Trigger Range 0.0 units Area 1.0 unit in diameter Head Tired, droopy eyes Open, gaping mouth Multiple chins and neck fat Body Ripped, tight fitting clothes Small arms Legs Small tight ripped pants Broken sandals Small stubby legs

63

Skeleton NPC Enemy Skeletons are the final common enemy type. Skeletons are adept at ranged combat and use their own bones as ammunition. Visual Design Basic Info 2.8 units tall Only bones and a few scraps of skin Lanky build Behaviors Walk Throw Getting Hit Attributes Health The number of hits the enemy can take before dying. Run Speed How quickly the enemy can move. Throw Distance How far the enemy is able to throw. Damage The amount of damage this enemy can deal. Attack Speed How quickly the enemy can attack. Health 200 Run Speed 2.0 units/sec Throw Distance 15 units Damage 20 Attack Speed 3 seconds Head An empty skull with red glowing eyes Body A fully formed skeleton Legs Skeletal legs and feet

64

Surgeon NPC Enemy An advanced undead, the Surgeon will revive other undead that have been killed throughout the arena. They will be tough to kill because of their high hit points and their ability to avoid the player by moving behind other enemies. Visual Design Basic Info 2.6 units tall Macabre doctor in blood stained scrubs Normal human build Behaviors Walk Revive Getting Hit Enrage Attributes Health The number of hits the enemy can take before dying. Run Speed How quickly the enemy can move. Trigger Range Distance the enemy needs to be in to use an ability. Enrage Percent Percent at which the surgeon enrages. Cool down Time it takes for the enemy to reuse an ability. Health 1000 Run Speed 2.0 units / sec Trigger Range 0.0 units Enrage Percent 50 Cool Down 5 seconds Head Half of face skeleton, half of face flesh Body Legs Torn and Bones showing stained doctors through tears coat in the scrubs legs holes

65

Weapons Zombie Gauntlet features a weapon purchasing and upgrading system. The player will be able to use one Melee, one Range, and one Trap weapon at any time. There will be three melee, three range, and three trap weapons to purchase, and each one of these weapons will have upgrades to their damage, clip size, cooldown, etc. as well as a big upgrade that will change the way the weapon behaves. See the Upgrade System section for more details on the various upgrades available for each weapon.

Knife This is the basic melee weapon that the player starts with. It looks like a normal combat knife, and makes a slicing sound when used. The knife will deal a small amount of damage to any enemies when they are within melee range in front of the player. The damage and swing speed can be upgraded for the Knife, and the big upgrade will double the damage of the knife, making it effective for killing single high priority targets. Behaviors Stab Deals damage to an enemy in front of the player. Attributes Damage The amount of damage per Stab. Attack Speed The amount of time between Stabs. Damage 40 base Attack Speed 0.5 sec. base

66

Metal Bat This is the intermediate melee weapon. It will look like a standard metal baseball bat and make a whooshing sound when swung. It will deal a moderate amount of damage to a single enemy in front of the player, and knock back that enemy. The damage and swing speed can be upgraded for the Metal Bat, and the big upgrade allows the bat to knock back multiple enemies in front of the player. Behaviors Swing Deals damage to an enemy in front of the player, as well as knocking the enemy back. Attributes Damage The amount of damage per Swing. Force The amount of knockback per Swing. Attack Speed The amount of time between Swings. Damage 80 base Force Damage/20 Attack Speed 1 sec. base

67

Sword This is the top end melee weapon. The sword will look like an oversized broadsword, similar to the Buster Sword from Final Fantasy VII: Advent Children. The Sword will deal a large amount of damage to any enemies in melee range. The arc of the attack will be wider than the knife. The damage and swing speed of the sword can be upgraded, and the big upgrade will widen the swing. The Sword will look similar to the Buster Sword from Final Fantasy VII: Advent Children. It will have a large blade with a small hilt and handle with nuts and bolts holding pieces of the sword together. Behaviors Swing Deals damage to enemies in front of the player. Attributes Damage The amount of damage per Swing. Arc The cone of effect of a Swing in front of the player. Attack Speed The amount of time between Swings.

Damage 60 base

Arc 15 degrees base

Attack Speed 1.5 sec. base

68

Pistol This is the basic ranged weapon that the player starts with. It looks and sounds like a normal 9mm pistol. It will have a muzzle flash and a little starburst effect when it hits enemies. The pistol will deal a small amount of damage. The damage and clip size of the pistol can be upgraded, and the big upgrade will cause the bullets to pass through multiple enemies. The pistol looks like a normal pistol.

Behaviors Shoot Deals damage to the enemy the player is aiming at. If the big upgrade has been purchased, the bullet passes through enemies until it hits a wall. Removes a bullet from the clip. Reload Fills up the clip for the weapon. Attributes Damage The amount of damage per Shot. Attack Speed The amount of time between Shots. Clip Size The amount of bullets in a clip. Reload Speed The amount of time to reload your clip. Damage 50 base Attack Speed 0.5 sec. Clip Size 8 base Reload Speed 1.5 sec.

69

Shotgun This is the intermediate ranged weapon. It will look and sound like a standard combat shotgun. It will have a large muzzle flash and will cause little starburst effects when the pellets hit enemies. This will deal a moderate amount of damage. The damage and clip size can be upgraded for the shotgun, and the big upgrade will widen the arc of the shotgun blast. The shotgun looks like a standard combat shotgun. Behaviors Shoot Deals damage to enemies in an arc where the player is aiming at. If the big upgrade has been purchased, arc is increased. Removes a bullet from the clip. Reload Fills up the clip for the weapon. Attributes Damage The amount of damage per Shot. Attack Speed The amount of time between Shots. Clip Size The amount of bullets in a clip. Reload Speed The amount of time to reload your clip. Arc The cone of effect in which enemies will be damaged. Damage 80 base Attack Speed 1 sec. Clip Size 5 base Reload Speed 2.5 sec. Arc 30 degrees

70

Rocket Launcher This is the top end ranged weapon. It looks and sounds like a normal rocket launcher. It will have a smoke trail off of the rocket it shoots, and cause an explosion where it hits. The explosion will deal a large amount of damage and knock back enemies. The damage and clip size of the rocket can be upgraded, and the big upgrade will widen the explosion radius of the rockets. The rocket launcher looks like a normal rocket launcher. Behaviors Shoot Deals damage to enemies in an area where the player is aiming at. If the big upgrade has been purchased, area is increased. Removes a bullet from the clip. Reload Fills up the clip for the weapon. Attributes Damage The amount of damage per Shot. Attack Speed The amount of time between attacks. Clip Size The amount of rockets in a clip. Reload Speed The amount of time to reload your clip. Area The area of attack in which enemies will be damaged from the point of impact. Force The amount of knockback from the explosion. Damage 150 base Attack Speed 2 sec. Clip Size 1 base Reload Speed 5 sec. Area 10 feet Force Damage/20

71

Spikes This is the basic trap weapon that the player starts with. The spikes look like caltrops that ninjas would use. They are basically four spikes coming from a center point to the corners of a pyramid shape. These can be placed on the ground and will do a small amount of damage to enemies when they contact it, and the enemies will be knocked back slightly. One hit from an enemy will cause the spike to disappear. The damage and cooldown can be upgraded for the Spikes, and the big upgrade will increase their durability, allowing for three hits before the spike expires. Behaviors Stab If an enemy contacts the spike it will be stabbed, doing a small amount of damage and knocking them back slightly. Expire The spike will disappear after its duration is up. Attributes Damage The amount of damage per Stab. Cooldown The amount of time it takes before the player can put down another spike. Force The amount the spike will knockback an enemy. Size The size in units of the spike. Duration The number of Stabs a spike will do, or the amount of time a spike will be active. Damage 40 base Cooldown 6 sec. base Force Damage/20 Size 1x1x1 units Duration 30 sec. or 1 hit base

72

Stasis Mines This is the intermediate trap weapon. They will look like a metal disc with a blue light on top and when they are deployed a light blue dome will expand from it. When enemies enter this dome they will be slowed. The slowing amount and cooldown can be upgraded for stasis mines, and the big upgrade will give a chance to stun enemies that are passing through. Behaviors Pulse Each pulse will slow down enemies in the area of effect of the mine. If the big upgrade is purchased, each pulse will have a 25% chance to stun enemies in the area of effect. Expire The mine will disappear after its duration is up. Attributes Slow Amount The amount that the enemies will be slowed when in the area of effect of the mine. Cooldown The amount of time it takes before the player can put down another mine. Area The diameter of effect in which enemies will be slowed around the mine. Pulse Speed The amount of time between pulses. Slow Duration The amount of time enemies will be slowed by a pulse. Stun Duration The amount of time enemies will be stunned when hit by an upgraded Stasis Mine stun pulse. Size The size in units of the stasis mine. Duration The amount of time the mine will be active. Slow Cooldown Amount 25% 7 sec. base base Area 10 units Pulse Speed 1 sec. Slow Stun Duration Duration 1 sec. 1 sec. Size 1x1x1 units Duration 5 sec.

73

Explosive Mines This is the top end trap weapon. They will look like metal discs with a green light on top and the light will turn red when they are about to explode. They will explode when enemies get near them, doing a large amount of damage and knocking them back. The damage and cooldown can be upgraded for the explosive mines, and the big upgrade will widen the explosion radius. Behaviors Explode The explosive mine will explode when an enemy moves near it. The explosion will deal a large amount of damage to anyone within the area of effect. If the big upgrade has been purchased for the mines, the area of effect will be larger. Expire The mine will disappear after its duration is up, or it has exploded. Attributes Damage The amount of damage the Explosion will do. Cooldown The amount of time it takes before the player can put down another mine. Area The diameter of effect in which enemies will be damaged. Trigger Range The diameter that an enemy has to come into to trigger the explosion. Size The size in units of the explosive mine. Duration The amount of time the mine will be active. Force The amount of knockback from the Explosion. Damage 150 base Cooldown 8 sec. base Area 10 units base Trigger Range 2 units Size 1x1x1 units Duration 20 sec. Force Damage/30

74

Power-ups Health Orbs The health orb is an orb that always appears on the ground when the player kills more than one zombie with a single attack. The amount of health granted by the orb is dependant on the number of zombies killed. If two zombies are killed, the orb will grant 1 health, if three are killed, the orb will grant 4 health points, if four are killed, the orb will grant 6 health points. For each additional zombie the player kills, the orbs health bonus will double. This rewards the player for finding ways to kill many zombies at once. The orb will disappear if the player doesnt pick it up after 15 seconds. The health orb is simply a shiny red circular powerup. The health orb will be a small point of light that seems to emanate energy. Energy will flow around it and radiate from the core. Behaviors Grant Health Each orb will replace a certain amount of hit points. Expire - The Orb will disappear after its duration is up, been picked up. Attributes Health Amount The amount of health that the orbs will replace Duration The amount of time the health will be able to be picked up. Grant Health Health = (Number killed-1) * 2 Duration 15 secs

75

Levels and Maps The Courtyard Goal The main goal of this level is to introduce players to the mechanics of the game. They will get used to fighting zombies and using their weapons and traps. Secondary Goals The secondary goal of this level is to introduce the player to the sand environment modifier. Player will learn that sand slows enemies as well as themselves. Level Travel The level is open to the player so they can travel wherever they want. There are several places in the level that contain sand areas which slow player and enemy movement speed. Scale This level is 20 units in length and width and 10 units high. Length 20 Width 20 Height 10

Environmental Interactions Behaviors There are 4 areas of environmental interaction for both the player and enemies. These areas are all sand traps and will reduce movement speed by 25%. Attributes Waves o Total amount o Zombies per wave Spawn Points Terrain Modifiers o Number of areas o Elements present

76

Number of Number of spawn points waves 3 6 Wave Breakdown Zombie types present Basic Zombie

Zombies per wave 50

Number of terrain areas 3

Terrain types present Sand

Number per wave 50

Ambient Environmental Aspects / Objects in Level Sound Effects o Glass breaking o Water fountain o Door opening o Sand falling Level Animations o Windows breaking Particle Effects o Blowing sand o Water fountain Events o Zombies clawing at a partially broken wall when the level starts. o Facility windows breaking and zombies coming out of the windows for the third wave. Objects o Fountain Provide cover for player. Visual appeal to level. o Dead Center building entrance. Spawn point for zombies. Visual appeal to level.

Time The level will take approximately 10 minutes to beat. There will be 5 waves of zombies each taking about 1.5 minutes to beat. There will be a 10 to 15 second break in-between each wave. There are two triggered events in this level. The first one occurs after the player kills the 2 zombies clawing at the wall. Once this happens the waves will start spawning. The second event is on the third wave the windows will break open and the zombies will begin to spawn out of them. The level is not very large; the player should be able to make it from one end to the other in less than 20 seconds.

77

Map

Level Walkthrough Enter Level o Player will have a pistol, knife, and spike trap. o Player will notice 2 zombies clawing at the right wall. Engage Zombies o This will trigger the waves to start spawning Fight Wave 1-5 o Sand areas can be used to kite zombies. o Wave 3 triggers the windows to break and zombies to spawn from them. Player goes through the facilitys door and enters the upgrade screen. End Level o Player will unlock The Courtyard arena.

78

The Refrigerator Goal The main goal of the level is to eliminate all zombies and acquire points for upgrades. Secondary Goals The secondary goal of this level is to introduce the player to the ice terrain modifier. The player will learn that they slide on ice making it harder to maneuver. They will also learn that zombies are also affected by the ice. The player will also be introduced to conveyor belts and the ghoul zombie type. Level Travel The level is open allowing the player to go anywhere in the level they feel. There will be 3 conveyor belts in the center of walls. These will carry zombies into the level and the player can also use them to move faster or use them to disrupt the zombies movement. With the presence of ice throughout the level the player will have to be careful where they move in the level to maintain good control of their character. Ice will disrupt the ease of movement. Scale This level is 20 units long, 20 units wide and 10 units high. Length 20 Width 20 Height 10

Environmental Interactions Behaviors If a player is moving on ice, it will increase their speed by 5% and it will take approximately 2 seconds longer to stop. It will also take a little longer to move forward after changing directions if the player is currently on ice. Attributes Waves o Total amount o Zombies per wave Spawn Points Terrain Modifiers o Number of areas o Elements present

79

Number of spawn points 3

Number of waves 6

Zombies per wave 55

Number of terrain areas 4

Terrain types present Ice

Additional objects Conveyor belts

Wave Breakdown Zombie types present Basic Zombie Ghoul Number per wave 40 15

Ambient Environmental Aspects/Objects in the Level Animations o Conveyor belts Sound Effects o Conveyor belt movement o Cold air vents o Movement on ice Particle Effects o Cold air coming from vents o Ice effects on floor Objects o Conveyor belts Move zombies from spawn points to the center of the room. o Air vents Pump cold air into the room to add visual appeal to the level. o Rubber floor mats Gives the player normal walking capabilities after getting off ice. Add to the refrigerator theme.

Time The total time required to beat this level will be approximately 10 minutes. There will be 6 waves with each wave lasting approximately 1.5 minutes. There will be a 10 second grace period in-between each wave.

80

Map

Level Walkthrough Verbal Map Enter Level o Player will start with full hp and any upgrades previously purchased will be ready. Fight Wave 1-6 o Ice and conveyor belts will serve as obstacles the player can use to kite zombies. o Ghouls will begin spawning on wave 2. Exit Level o Upgrades will be purchasable at this point. o Player will unlock The Refrigerator arena.

81

The Furnace Goal Defeat all zombies in the level and earn points to purchase upgrades or new weapons. Secondary Goals The player will learn be introduced to the heat grate environment modifier. They will also be introduced to the Abomination zombie type. Level Travel Again this is an open level and the player can move however they want. There will be strips of heat grates they need to avoid as much as possible which will affect how they move about the level. Lots of jumping is expected to be used here to avoid lava obstacles. Scale This level is 20 units in length, 20 units in width and 10 units high. Length 20 Width 20 Height 10

Environmental Interactions Behaviors There are strips of heat grates along the floor. Lava is below the grate and will slowly damage any player or zombie that runs across the grate. There is also a long conveyor belt going around the outside of the room towards a large furnace and if any player or zombie goes into the furnace they will automatically die. The conveyor belt moves at 75% of the players run speed. Attributes Spawn Points Waves o Total waves o Zombies per wave Terrain Modifiers o Number of areas o Types present Additional Objects

82

Number of spawn points 2

Number of waves 6

Zombies per wave 60

Number of terrain areas 1

Terrain types present Fire

Additional objects Conveyor Belt, furnace

Wave Breakdown Zombie types present Basic Zombie Ghoul Abomination Number per wave 30 15 15

Ambient Environmental Aspects/Objects in the Level Animations o Conveyor belt Sound Effects o Conveyor belt movement o Furnace o Lava Particle Effects o Lava o Fire Event o Player/Enemy enters furnace. Instant death. Objects o Conveyor Belt Carries players/enemies towards furnace. o Heat Grates Allow heat to be released off lava passing underneath the grate. Damage player/enemy slowly. o Furnace End point of the conveyor belt. Instant death for anything that enters.

Time Like previous levels, this level will take approximately 10 minutes to complete. There will be 6 waves of zombies each taking approximately 1.5 minutes to finish. There will be a 10 second delay in-between waves. Once the player exits the room they will be taken to the upgrade screen.

83

Map

Level Walkthrough Verbal Map Enter Level o Player will have full hp and any upgrades purchased in the previous round will be functional. Fight Waves 1-6 o Abominations will begin to spawn on wave 3. o Player must avoid taking damage from heat grates and the furnace. o Conveyor belt can be used to get zombies into the furnace. Exit Level o Upgrades will now be purchasable. o Player will unlock The Furnace arena.

84

The Test Chamber Goal The main goal of this level is to eliminate all zombies and acquire points for upgrades and new weapons. Secondary Goals Players will also be introduced to the skeleton. All terrain modifiers will be present in this level and players are going to have to use them to beat the level. Level Travel The level is open for the player to travel however they want. The main floor of the level will be broken up into four different sections. Each of these sections will change randomly to a different terrain modifier and the player will have to adjust accordingly. There will be several very narrow paths that wont be affected by the environment and will serve as safe paths; however, at some point the player will be forced to use one of the four sections of terrain modifiers. Scale This level is 20 units in length, 20 units in width and 10 units in height. Length 20 Width 20 Height 10

Environmental Interactions Behaviors The main floor has four large dynamic terrain tiles. These will change randomly into different terrain modifiers at the given interval. It can either be sand, ice, fire, or normal. To let the player know that the terrain is about to change, the tiles will glow white for three seconds, and then change. There are also several support pillars that can be used for defense. Attributes Spawn Points Waves o Total waves o Zombies per wave Terrain modifiers o Number of areas o Elements present

85

Number of Number of spawn points waves 3 5

Zombies per wave 70

Number of terrain areas 4

Terrain types present Heat, Ice, Sand

Wave Breakdown Zombie types present Basic Zombie Ghoul Abomination Skeleton Number per wave 15 15 20 20

Ambient Environmental Aspects/Objects in the Level Sound Effects o Heat o Sand o Ice o Alarm Particle Effects o Sand o Heat o Ice Random Event o Grid Terrain Changing Occurs randomly every 30 seconds. Player is given 3 seconds to adjust if needed. Objects o 4 Large Tiles Dynamically change to different terrain modifiers. o Support Pillars Defensive structure Adds to visual detail of level o Observation Booth Adds to visual detail of level

Time This level will take approximately 12 minutes to complete. There will be 5 waves and each wave will take approximately 2 minutes to complete. There will be a grace period of 10 seconds in-between waves.

86

Map

Level Walkthrough Verbal Map Enter Level o Player will start will full hp and any upgrades purchased previously will be functional Fight Waves 1-5 o Skeletons will begin spawning on wave 3. o Grid will change terrain type every 10 seconds. Exit Level o Player will be able to purchase upgrades. o Player will unlock The Test Chamber arena.

87

The Conference Hall Goal The main goal of this level is to defeat all zombies. All zombie types will be present in this level and it will be the most challenging. The player is expected to exhibit skills and knowledge of mechanics in order to achieve success. Secondary Goals The level will be open for the player to move freely. However, unlike previous levels, this level will be very dark and have a few sweeping spotlights for light. So the player will naturally want to stay close to the lights which are going to limit when and where they move. Scale This level is 20 units in length, 20 units in width and 20 units in height. Length 20 Width 20 Height 20

Environmental Interactions Behaviors The player will have a spotlight constantly pointed on them. There will be a number of other spotlights inside the level that are going to be sweeping in different directions. The player wont be able to see very easily beyond these spotlights so they are going to want to move with the lights and stay near them. Attributes Spawn Points Waves o Total waves o Zombies per wave Additional objects Number of waves Zombies per wave 7 85 Additional Objects Spotlights

Number of spawn points 3

Wave Breakdown Zombie types present Basic Zombie Number per wave 21

88

Ghoul Abomination Skeleton Surgeon

21 21 20 2

Ambient Environmental Aspects/Objects in the Level Sound Effects o Lights shutting off. o Large spotlights turning on. Effects o Spotlights Events o Player enters room and the main lights shut off. Then spotlights turn on and begin sweeping the room. Objects o Spotlights o Stage

Time This level will take approximately fifteen minutes to complete. There will be 7 waves of enemies that will take approximately 2 minutes per wave to beat. There will be a grace period of 10 seconds in-between waves.

89

Map

Level Walkthrough Verbal Map Enter Level o Player will have full hp and any previously purchased upgrades will be functional. o Lights will immediately cut off and switch to spotlights. Fight Waves 1 7 o Wave 6 will spawn a Surgeon. o Wave 7 will spawn three Surgeons. End Level o Player will unlock the ability to earn points in Quick Play mode to upgrade their character. o The player has now beaten the Campaign. o Player will unlock The Conference hall arena.

90

Environmental Effects Sand Sand will reduce the run speed of any enemy or player in the collision volume by 25 percent. Heat Heat grates will apply small damage over time to any enemy or player in the collision volume. Ice Ice makes moving harder for the player and enemies. If a player is running on ice and they stop, they will continue to slide for a short duration. If a player is stopped on ice and they start to run, there will be a slight delay before they begin to run. Conveyor Belt Conveyor belts will carry anything on them in the direction the belt is moving. The speed a conveyor belt moves is 75% of the players run speed. Name Sand Heat Ice Conveyor belt Effect Reduces run speed. Damage over time. Movement is harder. Moves objects. Numeric Effect runSpeed (runSpeed * 0.25) 10 damage per tick 2 seconds extra to stop running. 2 seconds extra to start running. Conveyor speed = runSpeed * 0.75

91

Combat System
Overview The combat system will be real-time, with attacks having a damage amount that will be taken from the targets health amount. The player will be able to move left, right, forward, and back, as well as jump to try to avoid enemies / attacks. There will be a reticule on screen that determines the direction of attack. The player will be able to use 1 melee, 1 ranged, and 1 trap weapon at a time, and they will be able to cycle through the three melee, three range, or three trap weapons at any time. Targeting The player will shoot and / or swing at the enemies he is aiming at with the reticule. If using a single target weapon, it will hit the enemy that the reticule is on. If using a weapon with an arcing attack, it will hit any enemies within the cone of effect in the direction of the reticule. If using a weapon with an area of effect, any enemies within the area of effect will be affected. There will only be one reticule in the game. It will not change with the currently equipped weapon. Health and Damage Health is the amount of damage that any character (player or enemy) can take before dying. The damage that the player or enemies will take is equal to the Damage attribute of whatever attack is being done to them. The enemies will have no way to regain health. The player will be able to regain health by killing multiple enemies at once, which will spawn health orbs that the player can collect. Death Whenever a characters (player or enemy) health amount reaches zero, they will die. Death for the player will mean they have to restart the level. On average, with the basic weapons it will take the player 1-2 seconds to kill a Zombie, and with the upgraded weapons it should take 1 second or less to kill a single Zombie. This would mean that taking out a wave could take anywhere from 30 seconds to 2 minutes, depending on how upgraded the players weapons are and how efficiently the player takes out the Zombies. Knock Back Some attacks have a Force associated with them that will cause the attack to knock back the enemy being affected. The distance that they are knocked back is equal to the Force attribute of the attack in player units.

92

Area of Effect Some weapons will have an area of effect, such as the Knife and Sword swings, the Stasis Mine field, and the Rocket Launcher and Explosive Mine explosions. Any enemy within the area of effect of an attack will be affected accordingly, taking the amount of damage, or being slowed. Collision The player and enemies will collide with each other. Thus, enemies will not be able to pass through each other and the player will not be able to pass through enemies. This means the player will have to avoid enemies in any way he can, whether by moving around the arena or jumping over them.

93

Camera System The camera system in Dead Center will be third-person and over-the-shoulder, much like in the photo shown below from Dead Rising. The player will be able to control where the camera is looking with the mouse (or right thumbstick on a controller). The camera will collide with geometry and adjust itself accordingly, zooming in when the player backs up against a wall, etc. When the camera zooms in, as it gets closer to the player character, the player character will become more and more transparent, so as not to obstruct the players view. The camera will start three units behind the player, and four units off the ground.

94

Upgrade System Our game will feature an extensive upgrade system in which the player can choose to purchase or upgrade his weapons and attributes. Whenever the player finishes a campaign level or mini-game (if he has completed the campaign), he will be presented with an upgrade menu in which he will be able to purchase new weapons, upgrade existing weapons, or upgrade his attributes. Purchasable Weapons Weapon Name Shotgun Rocket Launcher Metal Bat Sword Stasis Mine Explosive Mine Weapon Upgrades The user has the option to upgrade each weapon in a number of ways. Each weapon has two small upgrades, which can be purchased multiple times, and one large upgrade which can only be purchased one time. Pistol Attribute Increase Per Level Number of Levels Price Damage +5 5 100*Level Clip Size +2 5 100*Level Armor Piercing Rounds N/A* 1 10,000 *Armor Piercing Rounds enable the bullets of the pistol to travel through enemies and hit all enemies within the line of fire. Shotgun Attribute Increase Per Level Number of Levels Price Damage +5 5 100*Level Clip Size +1 5 100*Level Cone Radius N/A* 1 10,000 *The cone radius upgrade increases the spray of the shotgun, damaging enemies in a wider cone in front of the player. Cone radius increased to 30 degrees. Rocket Launcher Attribute Damage Clip Size Explosion Radius Price 25,000 Points 100,000 Points 15,000 Points 50,000 Points 35,000 Points 75,000 Points

Increase Per Level +5 +1 N/A*

Number of Levels 5 5 1

Price 100*Level 100*Level 25,000 95

*The explosion radius upgrade increases the radius of the explosion, damaging a larger amount of enemies.

Knife Attribute Increase Per Level Number of Levels Price Damage +5 5 100*Level Speed +2 5 100*Level Double Damage N/A* 1 10,000 *The double damage upgrade doubles the damage of the knife, making it an effective assassination tool for tougher zombies. Bat Attribute Increase Per Level Number of Levels Price Damage +5 5 100*Level Speed +2 5 100*Level Mighty Swing N/A* 1 10,000 *The mighty swing upgrade allows the bat to knock back an additional enemy when swung. Sword Attribute Increase Per Level Number of Levels Price Damage +5 5 100*Level Speed +2 5 100*Level Wide Slash N/A* 1 10,000 *The wide slash upgrade widens the swing of the sword, allowing it to damage more zombies than the standard attack. Spikes Attribute Increase Per Level Number of Levels Price Damage +5 5 100*Level Cooldown -1 Second 5 100*Level Durability N/A* 1 10,000 *The durability upgrade allows the spikes to last longer before they are destroyed. They will take three hits before they disappear after the upgrade. Stasis Mine Attribute Increase Per Level Number of Levels Price Slow Amount +2% Slow 5 100*Level Cooldown -1 Second 5 100*Level Stun Effect N/A* 1 20,000 *The stasis mine has a 10% chance per Pulse (every 1 second) to stop the enemies completely for 1 second. Explosive Mine 96

Attribute Increase Per Level Number of Levels Price Damage +5 5 100*Level Cooldown -1 Second 5 100*Level Explosion Radius N/A* 1 20,000 *The explosion radius upgrade increases the radius of the mines explosion, damaging more enemies. Attribute Upgrades Attribute Speed Jump Health Increase Per Level 10% Additive 20% Additive 10% Multiplicative Number of Levels 10 5 10 Price 1,000*Level 2,000*Level 5,000*Level

Reallocation At any time during the upgrade process the player will have the option to reallocate all of their points. This will be done to prevent the player from getting stuck in campaign mode due to poor upgrade choices, as well as give the player the option of experiencing different play styles and upgrade options. When the player chooses to reallocate, all of his upgrades and purchases will be taken away and he will be given all of the points spent on those upgrades and purchases. The player will then be able to spend those points any way they see fit.

97

Mini-Game System In addition to the main campaign, the player will have the option to play one of several mini-games using their character from campaign mode. The player will be able to use these mini-games to further upgrade their character once the campaign has been completed. Before entering each mini-game, the player will have the option of choosing any of the unlocked arenas to battle on. Each minigame will be fully functional on each campaign level. Each mini-game will also end when the player is killed. Aboms Away Enemy Types Abomination Objective Achieve as high a score as possible. In this game type the player will face nothing but Abominations, zombies that explode when they get close to the player. This will be a game of avoidance as Abominations do massive damage to the player if the player gets hit by the explosion. In this mini-game, Abominations will begin spawning at a rate of one Abomination every three seconds. Every ten seconds the number of abominations that spawn every three seconds increases by one. The player will have to rely on keeping the abominations at range in order to survive. R.I.P. Enemy Types Zombie Objective Achieve as high a score as possible. In this game type the player will have only a single health point. The enemies will also have only a single health point. The object of this game is to slaughter massive amounts of zombies before getting hit. Perfection is the key to winning. In this mini-game, zombies will spawn at a quick rate. Every three seconds, four zombies will spawn. Every ten seconds the number of zombies that spawn every three seconds increases by four. The player will have to be quick on eliminating all enemy zombies or he will be overwhelmed and lose the battle.

98

No Hope Enemy Types Zombie Ghoul Abomination Skeleton Surgeon Objective Achieve as high a score as possible. In this mini game, the player will fight an endless amount of zombies, with increasing spawn rate and difficulty as time goes on. At the beginning of the battle, one zombie will spawn every three seconds. Every ten seconds the number of zombies that spawn will increase by one. Every thirty seconds a new enemy type will start to spawn with zombies; Ghouls will begin spawning at 30 seconds, Abominations at 60 seconds, Skeletons at 90 seconds, and Surgeons at 120 seconds. The increase in spawn rate will continue at the same pace, but the enemy type spawned will be a random selection based on how long the player has been fighting. If the player survives longer than five minutes, the health of the zombies will begin to increase by ten percent every five seconds. Custom Enemy Types Zombie Ghoul Abomination Skeleton Surgeon Objective Achieve as high a score as possible. In this game type the player will be able to choose enemy spawn rates, enemy types, and enemy difficulty through a series of sliders. After the player chooses the arena to battle in, he will be taken to a screen in which he will be presented with a checkbox for each enemy type. Once the player chooses which enemy types he wishes to spawn he will be able to choose the rate at which the enemies spawn. This will be a slider with slow on the far left and fast on the far right. The slow setting will spawn zombies at a rate of one zombie every five seconds. The fast setting will spawn zombies at a rate of ten zombies every five seconds. Once the player has chosen a spawn rate they will be able to choose the difficulty of the enemies he will face. This will also be a 99

slider with easy on the far left, and hard on the far right. The easy setting will reduce the health points of each enemy by fifty percent. The hard setting will increase the health points of each enemy by two hundred percent. Once the player has chosen a difficulty level, he can then enter the battle, where enemies will randomly spawn based on the spawn rate and types of enemies chosen.

100

Multiplier System
Our game will feature a multiplier system in which the player can earn additional points by killing many zombies in a short period of time. The multiplier will operate in a manner that makes each successive multiplier more difficult to achieve than the previous. The duration of each multiplier level is 2 seconds. The time of the multiplier will constantly drain. Each kill will add a small amount of time to the multiplier. If the time exceeds 2 seconds, the player achieves the next multiplier level. If the time runs out, the multiplier level falls. The number of kills it takes to achieve the next multiplier increases with each level. Multiplier Level 1 2 3 4 5 6 Time Added Per Kill 1 Second 0.5 Seconds 0.25 Seconds 0.125 Seconds 0.0625 Seconds 0.03125 Seconds Experience Multiplier 1x 2x 3x 4x 5x 6x

With the diminishing time added per kill, the player will need to focus on killing a large amount of zombies at once in order to achieve the next multiplier level. Each successive level essentially doubles the number of zombies that the player needs to kill to reach the next level. We expect that achieving the 6 th level of the multiplier system will be extremely challenging as the player will need to kill approximately 126 zombies within a twelve second time period.

101

Unlockables System
Our game will feature an Unlockables system in which the player can unlock play modes and arenas to be used in quick play and multiplayer matches by playing through the single player campaign. With each completed level, the player will unlock that arena to be used in quick play as well as a new mini-game. The following table outlines how all of the content will be unlocked. Campaign Mission 1 2 3 4 5* Arena Unlocked The Courtyard The Refrigerator The Furnace The Testing Chamber The Conference Hall

*After completing the campaign the player will unlock the ability to spend points earned in mini-games on advancing their character. This will allow the player to essentially max out their character.

102

Game Logic, Algorithms, and Rules


Interaction Component Matrix
Player Character Player Zombie Ghoul Abomination Skeleton Surgeon Weapons Knife Bat Sword Pistol Shotgun Rocket Launcher Spikes Stasis Mine Explosive Mine Terrain Effects Sand Ice Heat Grate Wall Conveyor Belt Other Health Orb Grants Health X X Slow Player Player Slides Damages Over Time Stops Movement Moves Player Slow Zombie Zombie Slides Damages Over Time Stops Movement Moves Zombie Slow Ghoul Ghoul Slides Damages Over Time Stops Movement Moves Ghoul X X X X X Explosion Damages Player X X Explosion Damages Player Damage Zombie Knock Back and Damage Damage Zombie Damage Zombie Damage Zombie Knock Back and Damage Knock Back and Damage Slow Zombie Knock Back and Damage Damage Ghoul Knock Back and Damage Damage Ghoul Damage Ghoul Damage Ghoul Knock Back and Damage Knock Back and Damage Slow Ghoul Knock Back and Damage Attack Leap Attack Explode Throw Bone Avoids Player X Player Takes Damage Avoid Collision Avoid Collision Avoid Collision Avoid Collision Avoid Collision Player Takes Damage Avoid Collision Avoid Collision Avoid Collision Avoid Collision Avoid Collision Zombie Ghoul

103

Abomination Character Player Zombie Ghoul Abomination Skeleton Surgeon Weapons Knife Bat Sword Pistol Shotgun Rocket Launcher Spikes Stasis Mine Explosive Mine Terrain Effects Sand Ice Heat Grate Wall Conveyor Belt Other Health Orb X Slow Abomination Abomination Slides Damages Over Time Stops Movement Moves Abomination Damage Abomination Knock Back and Damage Damage Abomination Damage Abomination Damage Abomination Knock Back and Damage Knock Back and Damage Slow Abomination Knock Back and Damage Player Takes Damage Avoid Collision Avoid Collision Avoid Collision Avoid Collision Avoid Collision

Skeleton

Surgeon

Player Takes Damage Avoid Collision Avoid Collision Avoid Collision Avoid Collision Avoid Collision

Player Takes Damage Avoid Collision, Raise Dead Avoid Collision, Raise Dead Avoid Collision, Raise Dead Avoid Collision, Raise Dead Avoid Collision, Raise Dead

Damage Skeleton Knock Back and Damage Damage Skeleton Damage Skeleton Damage Skeleton Knock Back and Damage Knock Back and Damage Slow Skeleton Knock Back and Damage

Damage Surgeon Knock Back and Damage Damage Surgeon Damage Surgeon Damage Surgeon Knock Back and Damage Knock Back and Damage Slow Surgeon Knock Back and Damage

Slow Skeleton Skeleton Slides Damages Over Time Stops Movement Moves Skeleton

Slow Surgeon Surgeon Slides Damages Over Time Stops Movement Moves Surgeon

104

Knife Character Player Zombie Ghoul Abomination Skeleton Surgeon Weapons Knife Bat Sword Pistol Shotgun Rocket Launcher Spikes Stasis Mine Explosive Mine Terrain Effects Sand Ice Heat Grate Wall Conveyor Belt Other Health Orb X X X X X X X X X X Swing X X X X X

Bat Swing X X X X X X X X X X X X X X

Sword Swing X X X X X X X X X X X X X X

Pistol Shoot X X X X X X X X X X X X X X

Shotgun Shoot X X X X X X X X X X X X X X

Rocket Launcher Shoot X X X X X X X X X X X X X X

Spikes Place Trap X X X X X X X X X X X X X X

Stasis Mine Place Trap X X X X X X X X X X X X X X

Explosive Mine Place Trap X X X X X X X X X X Detonates Mine X X Detonates Mine

X X X X X

X X X X X X

X X X X X X

X X X X X X

X X X X X X

X X X X X X

X X X X Moves Spikes X

X X X X Moves Stasis Mine X

X X X X Moves Explosive Mine X

105

Sand Character Player Zombie Ghoul Abomination Skeleton Surgeon Weapons Knife Bat Sword Pistol Shotgun Rocket Launcher Spikes Stasis Mine Explosive Mine Terrain Effects Sand Ice Heat Grate Wall Conveyor Belt Other Health Orb Slowed Movement Slowed Movement Slowed Movement Slowed Movement Slowed Movement Slowed Movement

Ice Player Slides Slides Slides Slides Slides Slides

Heat Grate Player Takes Damage Takes Damage Takes Damage Takes Damage Takes Damage Takes Damage

Wall Player Stops Stops Stops Stops Stops Stops

Conveyor Belt Moves With Conveyor Moves With Conveyor Moves With Conveyor Moves With Conveyor Moves With Conveyor Moves With Conveyor Moves With Conveyor Moves With Conveyor Moves With Conveyor Moves With Conveyor Moves With Conveyor Moves With Conveyor Moves With Conveyor Moves With Conveyor Moves With Conveyor

Health Orb

Gains Health X X X X X

X X X X X X X X X

X X X X X X X X X

X X X X X X X X X

X X X X X X X X X

X X X X X X X X X

X X X X X

X X X X X

X X X X X

X X X X X

X X X X X Moves With Conveyor

X X X X Moves Health Orb

106

Key Game Algorithms Flocking AI Zombies will flock towards the player, maintaining a small separation from each other. Endless Level Algorithm The No Hope mini-game will feature an endless level algorithm in which more and more zombies will spawn until the player is defeated. In addition to more zombies spawning, over time more difficult zombies will begin to spawn as well. Bullet Collision For bullet collision, enemies will have bounding spheres on each of their articulated parts. When the player fires a bullet, a ray will be created from the gun to the center of the targeting reticule. This ray will then be used in ray to sphere collision to detect collision on enemy zombies. In order to speed the process up, each zombie will have a bounding sphere that fully encompasses the model. If the bullet collides with the full model bounding sphere, collision will be checked on the smaller bounding spheres.

107

FAQ What is your game about? o Dead Center is about trying to survive against hordes of bloodthirsty zombies while earning points to purchase upgrades in order to kill zombies more efficiently and effectively. Who would buy your game? o With multiple upgrade paths and intense action people will be able to escape into a world where life and death hang on their ability to make quick decisions. With this in mind, fans of action games and survival horror will enjoy Dead Center. What platform is it for? o Currently it is for PC only. Where can I buy weapons? o Weapons can be bought after each level of the campaign. Once the campaign is finished players can obtain points and buy upgrades by playing the Quick Play modes. How do upgrades work? o For each of the weapons there are three things that the player can improve. There is the big upgrade which slightly changes the way a weapon works. There are also two smaller upgrades that let the player increase the damage and fire speed of the weapons. The players also have a personal upgrade system which allows them to run faster, jump higher, and have more health. Players can use points that they have earned from killing enemies in order to purchase these upgrades.

108

Reference of Key Elements


Scoring In each level the player will be able to gain points by killing the various undead chasing them. For each enemy type killed they will gain the below specified points that can be used between levels. Points gained will be used to upgrade the players attributes and weapons. The killing of consecutive undead will result in a point multiplier for the player. Each kill will fill the players multiplier meter and after a set number of enemies are killed their multiplier will increase to the next level. The combo meter will constantly drain down to a lower level so the player will have to kill enemies continuously to keep it up (see Multiplier System section for more details). Enemy Zombie Ghoul Abomination Skelton Surgeon Winning/Losing Once the campaign begins, the main goal for the player is to advance through and complete five separate levels. To accomplish this goal, in each level the player must face several waves of increasingly difficult and varied undead hordes advancing on them. For each level completed, the player will be able to spend the points they gained to upgrade and progress their character. If at any point the player dies within a level they will lose any points they gained since the level started and will have to restart from the beginning of that level. Transitions Our game will implement an automatic saving system and have the capacity to maintain a number of different profiles. Once the player selects a save slot, from that point on, each time they transition from a level to another screen the game will save. In addition, if the player makes any upgrades to their character the game will save once they leave that screen. Options are also saved to each individual profile to maintain video settings, game settings, and key bindings. A save file will include all attributes and skills of the character, their weapons and upgrades, their score and remaining points and their location in the campaign, as well as their options configuration. Point Value 100 200 500 500 1000

109

When a player transitions from a level, a loading screen will be displayed containing a blueprint of the entire facility. A path from where the player is to the next room will represent loading progress. On the right side of the loading screen will be a description of the upcoming level and any new elements and enemies present in it. Once the level is finished loading the player will press a button to continue so they have time to read the level and enemy information before proceeding. The player can also press a button to bring up a display of the controls during this time. Rewards During actual gameplay, the player is rewarded with two things, health orbs and points. Health orbs will facilitate continued play and the points gained can be used to upgrade the character once a level is complete. In Campaign mode, when the player completes a level they will unlock that level for Quick Play mode and also unlock a corresponding mini-game. As the player progresses through the Campaign new weapons will also become available to them.

110

Art and Production Design


3D Art & Animation Deliverables Zombie o We will use this model for most of our enemies. o Heavy use of cylinders to give a more rounded feel to the model. o Poly Count 850 o Animations Shamble George Romero style zombie shamble with arms forward. Crawl Gollum from Lord of the Rings type crawl. Leap Leaps like a tiger toward player with arms outstretched. Standing Attack Swipe wildly with arms. Crawl Attack Same as standing attack but with character in the crawl position. Shot While Standing Stumble backwards but still standing. Shot While Crawling Gollum style recoil. Die Model falls apart and pieces fall to ground. Walk Arms swinging slightly, legs moving at normal walking speed. Throw Bone Over handed throw like a baseball. Raise Dead Raises both hands from below hips to over his head. o Name E_MOD_Zombie.mb Abomination o Bulgy and Fat o Poly Count 950 o Animations Walk Waddle. Explode

111

Body parts going flying. Shot Puts arms in front of self.

o Name E_MOD_Abom.mb Main Player Model o Main player model, similar to zombie model, but higher poly count. o Poly Count 1250 o Animations Run (Pistol, Shotgun, Rocket Launcher) Normal human run with hands out stretched holding a gun. Run (Sword, Bat, Knife) Normal human run with sword/bat/knife held over right shoulder. Jump (Pistol, Shotgun, Rocket Launcher) Torso same as run, legs tucked up. Jump (Sword, Bat, Knife) Torso same as run, legs tucked up. Stand (Pistol, Shotgun, Rocket Launcher) Torso same as run, torso moving up and down to signify heavy breathing. Stand (Sword, Bat, Knife) Torso same as run, torso moving up and down to signify heavy breathing. Swing (Sword, Bat, Knife) Makes a chop from right shoulder to left hip. Shoot (Sword, Bat, Knife) Arm kicks back slightly. o Name E_MOD_Player.mb Pistol o Normal Glock 9mm o Poly Count 100 o Name W_MOD__Glock.mb Shotgun o Spas 12 with stock unfolded. o Poly Count 200 o Name W_MOD_Shotgun.mb Rocket Launcher

112

o M72 Law rocket launcher with iron sights up, modified to be single handed. o Poly Count 250 o Name W_MOD_RocketLauncher.mb Knife o Ka-Bar with six inch blade. o Poly Count 100 o Name W_MOD_Knife.mb Metal Bat o Dented metal bat about 34 long. o Poly Count 150 o Name W_MOD_Bat.mb Sword o 5 foot blade, 1 foot handle, bolts holding pieces together. o Poly Count 250 o Name W_MOD_Sword.mb Mines o Used for both explosive mine and stasis mine. o Poly Count 50 o Name W_MOD_Mine.mb Spikes o Look like a caltrop. o Poly Count 50 o Animation Spinning Caltrops will need to spin through the air o Name W_MOD_Caltrop.mb Level 1 o Large open level, with a fountain and three sand pits. The outside of the arena will be surrounded by sand, and the arena will be enclosed by a sandstone wall that is visibly crumbling. Name L_MOD_One.mb Level 2

113

o A giant walk in refrigerator with cooling system blasting air into it, very icy theme. Conveyer belts move zombies from their spawn points towards the center of the arena. Name L_MOD_Two.mb Level 3 o Very hot theme with a furnance blasting fire, lava grates will be placed in order to funnel the player around specific path. Name L_MOD_Three.mb Level 4 o Test facility will have the feel of an automobile facility. There will be four patches on the ground that will change to different element hazards. There will be on big light that will flash to show zombies are on the way Name L_MOD_Four.mb Level 5 o Conference hall theme, big semicircle stage in the in the top, rows of seats, built as one object. Name L_MOD_Five.mb

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

o Need three different textures differing colors. o Name E_TEX_Zombie1.png E_TEX_Zombie2.png

114

Ghoul

E_TEX_Zombie3.png

o Three models with different colors, legs would need to be more pronounced. o Name E_TEX_Ghoul1.png E_TEX_Ghoul2.png E_TEX_Ghoul3.png Abomination

o o Name E_TEX_Abom.png Skeleton

115

o Colors of tattered cloth different colors, 3 textures. o Name E_TEX_Skel1.png E_TEX_Skel2.png E_TEX_Skel3.png Surgeon

o Less gore though, think greens instead of reds. o Name E_TEX_Necro.png Female Main

116

o Same style less sexualized, leather coat to shrug off zombie attacks. o Name P_TEX_Female.png Handgun o Silver with black letters running on the barrel, grip is black pads surrounded by metal. o Name W_TEX_Handgun.png Shotgun o Black with silver writing running on the barrel. o Name W_TEX_Shot.png Rocket Launcher o Red around the rim, gunmetal for the body with small rectangles of red on the body, grip looks like camp tape was used on it. o Name W_TEX_Rocket.png Knife o Ka-Bar black. o Name W_TEX_Knife.png Bat o Aluminum bat. o Name W_TEX_Bat.png Sword o Sword texture think clouds sword from FF VII: Advent Children. o Name W_TEX_Sword.png Spikes 117

o Black with flecks of rust o Name W_TEX_Caltrop.png Stasis Mine o Metal mine with a neon blue top. Name W_TEX_Stasis.png Explode Mine Dormant o Same as stasis mine but with neon green on top. Name W_TEX_ExplodeDorm.png Explode Mine Ready to Blow o Same as stasis mine but with neon red on top. Name W_TEX_ExplodeActive.png Widgets o Pillars Industrial I beams with rust. Name o WI_TEX_Pillar.png o Heat Grates Grate with red in the slats. Name o WI_TEX_Lava.png o Ice Patches Icy, blue and whites used heavily. Name o WI_TEX_ICe.png o Conveyer Belts Wheels on the side and a black rubber looking belts divided into slats on the top. Name o WI_TEX_Conveyer.png Bitmapped Font o Use of Nightmare aoe with some blood dripping off Name F_Nightmare.png

Sound Effects Deliverables For our sound effects we are shooting for more realistic sounding effects instead of cartoony ones. We are doing this as it will enhance the feeling of slaughtering enemies that are out to kill the player and the satisfaction of the player defending himself. The realistic sound will also increase the feeling of despair that we want the player to feel.

118

Zombie Moan o George Romero style zombie moan starts soft and low and builds in volume as the zombie gets closer to the player. o Name E_SFX_ZombieMoan.wav Zombie Move o Shuffling of feet. o Name E_SFX _ZombieWalk.wav Zombie Death o A soft ughh as the zombie is killed. o Name E_SFX _ZombieDeath.wav Ghoul Leap o High pitched scream as the ghoul leaps at the player. o Name E_SFX _GhoulLeap.wav Ghoul Move o Claws tapping aginst metal ( tinktinktink). o Name E_SFX _GhoulCrawl.wav Ghoul Moan o Low to start building pitch towards the middle and then low for the end (murrUUURmhh). o Name E_SFX _GhoulMoan.wav Ghoul death o A quick and high pitched arf. o Name E_SFX _GhoulDeath.wav Abomination Moan o Sounds like someone dry heaving as he moves closer to the player. o Name E_SFX _AbomCall.wav Abomination Move o Louder Shuffling with one leg dragging. o Name E_SFX _AbomMove.wav Abomination explode o A loud boom as the abomination explodes. o Name E_SFX _AbomExplode.wav Skeleton move o Rattling of bones. o Name E_SFX _SkelMove.wav 119

Skeleton throw o Sounds like someone throwing a baseball i.e. Woosh. o Name E_SFX _SkelThrow.wav Skeleton Die o Sounds like wood falling to the floor. o Name E_SFX _SkelDie.wav Surgeon Revive o Sounds like a defibrillator going off. o Name E_SFX _NecroRevive.wav Surgeon Die o Garrrah spoken loudly. o Name E_SFX _NecroDie.wav Player Reloading pistol o Sound of a clip going into a gun then a cocking sound. o Name P_SFX _ReloadPistol.wav Player Reloading Shotgun o Sound of a shell getting put into a shot gun. o Name P_SFX _ReloadShot.wav Player Cocking shotgun o Sound of a shotgun being cocked Ch chh. o Name P_SFX _CockingShot.wav Player reloading rocket launcher o Metal sliding down a tube then a sound of heaping it back onto shoulder Shloomp (pause) hurgh. o Name P_SFX_RocketReload.wav Player Takes Damage o 3 effects oh, ah,and ow P_SFX _Hurt1.wav P_SFX _Hurt2.wav P_SFX _Hurt3.wav Idle Player o Labored breathing. P_SFX _IdlePlayer.wav Knife o Knife slicing air (sounds like a knife slicing air). W_SFX _BladeMiss.wav o Knife hitting zombie (sounds like cutting ham with a sharp knife). W_SFX _BladeHit.wav

120

Metal Bat o Missing an enemy with the bat (sounds like a bat swooshing through the air). W_SFX _BatMisswav o Bat hitting zombie (Thwonk). W_SFX _BatHit.wav Pistol o Shooting (sounds like a 9mm pistol being fired). W_SFX _HandShoot.wav Shotgun o Shooting (sounds like a 12 Gauge firing bird shot). W_SFX _ShotShoot.wav Rocket Launcher o Shooting(Fwoosh) W_SFX _RocketShoot.wav Rocket Explosion o BOOM W_SFX _RocketExplode.wav Bullet Hitting Enemy o Punching a bag of animal fat. W_SFX _BulletHit.wav Spike Trap o Thrown (metal clanging on ground). o Name W_SFX_SpikeThrow.wav Stasis Trap o Thrown (metal hitting metal hard tink, and a short zzzt. o Name W_SFX_StasisThrow.wav o Pulsing (wuzht). o Name W_SFX_StasisPulse.wav Mine Trap o Thrown (metal hitting metal hard tink, and one beep). o Name W_SFX_MineThrow.wav o Mine Detonate (Boom). o Name W_SFX_MineExplode.wav Menu Transition o Quick bip sound. o Name M_SFX_MenuSound.wav Menu Selection o Bloop. o Name 121

M_SFX_MenuSelect.wav Health Orb Pickup o Warm Bwoom. o Name I_SFX_HealthOrb.wav Player Buys an Upgrade o Cha-Ching (cash register sound). o Name I_SFX_Upgrade.wav Ambiance o Water Fountain Spraying (fssst). Name A_SFX_Fountain.wav o Sand being walked through (sht sht sht). Name A_SFX_Sand.wav o Sand Blowing (Shhhhhh woosh shhh). Name A_SFX_sandblow.wav o Glass Shattering (crash). Name A_SFX_GlassShatter.wav o Conveyer Belt (Escalator moving). Name A_SFX_Conveyer.wav o Refrigerator fan running (low hum of air conditioner). Name A_SFX_AC.wav o Ice Cracking (crick). Name A_SFX_Ice.wav o Furnace burning hot (Whosh). Name A_SFX_HotFurn.wav o Furnace burning not as hot (Crackle crackle). Name A_SFX_WarmFurn.wav o Pistons clanging (Tink csssssh). Name A_SFX_Piston.wav

Music Deliverables Our music style is dependant on the levels, every level will have 2-3 songs that take cues from the level and the current status of what is happening. When the fight with the horde breaks out we will have two songs that will be fast paced 122

heavy songs (ex. Fly Routine by Hostile Groove) when the horde is very low in numbers and on any breaks that we give the player between waves we will slow the music down (ex. Monsters Inside - Left 4 Dead Soundtrack). The fast tracks serve the purpose to keep the player excited as he goes about the slaughter, the slow paced song gives the player a little congratulations for surviving but lets him know that another wave will be coming shortly. *Tempo is scaled between one and ten with one being the slowest. **All levels 2nd fast song will be in the same style of the first but have different notes. *** All fast songs will have a duration of two minutes and all slow will have a duration of 40 seconds. Level 1 First Fast o Standard zombie music, dark rock. Tempo 8 Name MU_L1F1.mp3 Level 1 Second Fast o Name MU_L1F2.mp3 Level 1 Slow o Softer rock. Tempo 4 Name MU_L1S.mp3 Level 2 First Fast o Fast rock with cold notes. Tempo 7 Name MU_L2F1.mp3 Level 2 Second Fast o Name MU_L2F2.mp3 Level 2 Slow o Timpanis Tempo 3 Name MU_L2S.mp3 Level 3 First Fast o Hot notes with a hit of techno. Tempo 123

9 Name MU_L3F1.mp3 Level 3 Second Fast o Name MU_L3F2.mp3 Level 3 Slow o Think opening of Prodigys Smack my bitch up but slower. Tempo 6 o Name MU_L3S.mp3 Level 4 First Fast o Heavy techno. Tempo 9 Name MU_L4F1.mp3 Level 4 Second Fast o Name MU_L4F2.mp3 Level 4 Slow o Light techno. Tempo 4 Name MU_L4S.mp3 Level 5 First Fast o Rock mixed with techno as the culmination of our game. Tempo 10 Name MU_L5F1.mp3 Level 5 Second Fast o Name MU_L5F2.mp3 Level 5 Slow o Name MU_L5S.mp3 Menu Song o Soft haunting theme. Tempo 3 Name MU_Menu.mp3

124

Game Over Song o Dark tones with sad notes. Tempo 2 Duration 1 min Name MU_Gameover.mp3 Beat Campaign o Dark but lighter uplifting tones. Tempo 6 Duration 2 min Name MU_Win.mp3

Cutscenes/Pre-rendered scene Deliverables Game intro o The intro should be no more than one minute long. o The intro will have stills showing key parts of the story with text and voiceover diving into the details. Frame 1 Picture of zombies wandering the wilderness. The world has started to see a threat that it had never seen before. And with the new threat there were some who turned a blind eye. Frame 2 Picture of zombies being corralled. A few however decided to combat the ever increasing number of the dead by capturing them for study. Frame 3 Picture of the Dead Centers door way in pristine condition. They took them to scientific facilities in order to study how to most effectively dispose of them. Frame 4 Fade to a picture of Dead Centers door way in a run down state. Suddenly one of the facilities stopped responding. Frame 5 Picture of the player character, keeping the sex hidden so the player can be male or female.

125

You have been called on to find out what happened at the Death Effects and Dynamics Center, also known as. Frame 6 Music swells Dead Center logo wipes down in a blood type look. Dead Center.

126

127

Technical Documentation

128

Overview
This document lays out the technology and structure of Dead Center. This document should be consulted when questions arise about implementation of certain modules or coding standards. All team members are asked to adhere to the coding standards laid out in the first part of this document. Team members are also asked to follow the integration and testing plans found near the end of this document. If any changes to this document need to be made, please alert the team and discuss those changes so everyone may review them.

129

Coding Standards
Naming Standards Naming standards are a way for the entire team to write a unified code base that is easily integrated throughout the project. The standard will also allow for easier, quicker reading of code and a more efficient debugging process. Prefix Convention Class and structure member variables will begin with m_. o m_nHealth Significant temporary variables will not begin with m_ but follow other prefix conventions. o nHealth Variables may use up to three notations, not including the member notation. No identifier is to be used more than one time in a single variable name. List identifiers in order of priority. o Notation Priority p Pointer v Vector, Array, or List sz String f Float d Double n Integer t Structure c Class Instantiation mat Matrix o Examples A vector of floats. vfFloatVector A member variable that is a pointer to a string. m_pszString A member variable that is the instatiation of a class. m_cClass A vector of structures. m_vtStructures A pointer to a float array. pvfFloats A vector of vectors. vVectors. Classes Class declarations will start with C. o CAnimation

130

Relevant Function Names Function names will begin with a capital letter, verb and will use camel case. o GetHealth Macros and Constants Macros will be in all capital letters and will be completely surrounded by parenthesis. o #define PI (3.14159) Commenting Headers o All header files much have header comments. // // Delorean.h // // Author : Marty McFly // // Purpose: This class much reach 88 miles per hour! // CPPs o All Cpp files must contain comments at the top of the file. // // Delorean.cpp // // Author : Marty McFly // Functions o Each function, besides accessors and mutators must be commented. // // GetSpeed // // Purpose : Get the current speed of the Delorean. // // Returns : The speed in mph. //

131

// Notes hour, // //

: If speed is less than 88 miles per go faster!

Accessors and Mutators o All accessors and mutators will be preceded by a single comment block // // Accessors // // // Mutators //

Member Variables o A classs member variables will have comments describing their function. m_nNumBullets; has // The number of bullets the player

Trilogy of Evil o The trilogy of evil will go in a private section after all other function definitions. private: //Trilogy of Evil CDelorean(void); CDelorean(const CDelorean& ref); CDelorean& operation = (const CDelorean& ref);

132

Coding Guidelines State classes must have Init, Run, and Shutdown functions. Classes, when applicable, must have Init, Update, Render and Shutdown functions. Code lines that go beyond column 80 should be put on the next line and indented. For function calls whose parameter lists run off screen, put one parameter per line and keep the parameters all aligned. Always use brackets, even for single line if blocks, for loops, etc. Empty parameter lists should have void put in them. For large sets of assignments, such as in constructors, align the operators. Align types and names in class definitions. The pointer asterisk should be placed next to the type, not the name, of the variable. The Trilogy of Evil prototypes should go at the very bottom of the class definition. All accessors and mutators should be written before other functions in the header and be inlined. All code should be written inside the .cpp and not the header, except for inline accessors and mutators. For headers, ifndef FILENAME_H_ will be used instead of #pragma once.

133

Development Environment
Microsoft Visual C++ 2005 Version 8.0.50727.762 Microsoft Visual C# 2005 Version 8.050727.762 Maya 6.0 Adobe Photoshop CS3 Version 10.0 Adobe After Effects Paint.Net Intel VTune Performance Analyzer Version 9.0 3Dlabs GLSL ShaderGen 3.0 OpenGL 2.0 OpenAL 1.1 Sound Forge 8.0 Alienbrain Studio Version 7.5.2.4592

134

Timing Specifications
Our target FPS is 60. The list below shows what percentage of a second the particular system will run. o AI/Pathfinding 20% o Rendering 20% o Collision 20% o Input 10% o Audio 15% o HUD Updates 15%

135

System Architecture
One goal of our system architecture is to keep all rendering code contained within the rendering engine. This would allow us to interchange between any rendering API with modifications only having to be made to the rendering engine. The game state is responsible for keeping the game world up to date. It will communicate with all major systems to keep the world accurately represented. The AI module will maintain a list of enemies currently in the flock and will be responsible for updating their individual behaviors. The object manager maintains a list of all objects in the world and is responsible for updating them. The animation manager will maintain the animation interpolators for all animated objects in the scene.

136

Context Model Description GLOBALS Math / Collision Profile Manager Sound Timer Input XML Parser OTHER Game State o Access To AI Manager Init Update Shutdown Render Manager Clear Render Interface Manager Init Update Shutdown Object Manager Init Update Shutdown LoadLevel o Accessed By Main Game Module Update Transition Manager Init Shutdown Render Manager o Access To Texture Manager Sub-Module Init Shutdown LoadTexture UnloadTexture DrawTexture Scene Manager Sub-Manager Init 137

AddLight SetCamera LoadModel UnloadModel LoadEffect UnloadEffect Process Shutdown o Accessed By Interface Manager Begin2D End2D HUD Manager Sub-Module LoadTexture UnloadTexture DrawTexture DrawCircularProgress Menu Manager Sub-Module LoadTexture UnloadTexture DrawTexture Object Manager LoadModel UnloadModel LoadEffect UnloadEffect Transition Manager Begin2D LoadTexture UnloadTexture DrawTexture End2D Game State SetCamera AddLight Clear Render Menu State Clear Render Main Game Module Init Shutdown Texture Manager Sub-Module

138

o Access To None o Accessed By Render Manager Init LoadTexture UnloadTexture DrawTexture Shutdown Scene Manager Sub-Module o Access To None o Accessed By Render Manager Init AddLight SetCamera LoadModel UnloadModel LoadEffect UnloadEffect Process Shutdown Model Manager o Access To None o Accessed By Object Manager Init GetModel Shutdown Object Manager o Access To Animation Manager Init GetAnimation Shutdown Model Manager Init GetModel Shutdown Scoring Manager IncreaseScore Level Manager Init 139

Update LoadLevel ProcessObject Shutdown AI Manager GetAIRoutine Render Manager LoadModel UnloadModel LoadEffect UnloadEffect Combat Manager CheckCollisions o Accessed By Interface Manager GetPlayer AI Manager GetEnemyList GetTrapList GetPlayer Game State Init Update LoadLevel Shutdown Level Manager GetPlayer GetEnemyList GetTrapList Combat Manager GetEnemyList GetTrapList GetPlayer Animation Manager o Access To None o Accessed By Object Manager Init GetAnimation Shutdown AI Manager o Access To Object Manager GetEnemyList

140

GetTrapList GetPlayer o Accessed By Object Manager GetAIRoutine Game State Init Update Shutdown Main Game Module o Accessed By None o Access To Game State Update Menu State Update Transition Manager Transition Render Manager Init Shutdown Menu State o Accessed By Main Game Module Update Transition Manager Init Shutdown o Access To Interface Manager Init Update Shutdown Render Manager Render Interface Manager o Accessed By Game State Init Update Shutdown LoadMenu Menu State Init

141

Update Shutdown LoadMenu o Access To Menu Manager Sub-Module Init Update Shutdown LoadMenu HUD Manager Sub-Module Init Update Shutdown Render Manager Begin2D End2D Menu Manager Sub-Module o Accessed By Interface Manager Init Update Shutdown LoadMenu o Access To Scoring Manager GetScore Options Manager Load SaveAll Render Manager LoadTexture UnloadTexture DrawTexture Upgrade Manager Update HUD Manager Sub-Module o Accessed By Interface Manager Init Update Shutdown o Access To Scoring Manager GetScore Object Manager

142

GetPlayer Render Manager LoadTexture UnloadTexture DrawTexture DrawCircularProgress Transition Manager o Access To Menu State Init Shutdown Game State Init Shutdown Render Manager Clear LoadTexture UnloadTexture DrawTexture o Accessed By Main Game Module Transition

Upgrade Manager o Accessed By Menu Manager Sub-Manager Update o Access To None Scoring Manager o Accessed By HUD Manager Sub-Manager GetScore Object Manager IncreaseScore o Access To None Options Manager o Accessed By Interface Manager SaveAll Load o Access To None

143

Level Manager o Accessed By Object Manager Init Update LoadLevel ProcessObject Shutdown o Access To Object Manager GetPlayer GetEnemyList GetTrapList Combat Manager o Accessed By Object Manager CheckCollisions o Access To Object Manager GetTrapList GetEnemyList GetPlayer

144

System Feature Breakdown


Render Manager This will be the only module to contain OpenGL code. This containment will make it easier to debug rendering issues. The module consists of a scene, a texture manager, and a set of render contexts. The scene will contain a list of render objects, each with a pointer to a context that tells the render manager how to render the object. Objects are sorted by context and by distance from the camera to minimize overdraw and context switching. The render manager will use OpenGL to render all game objects. It will also act as a faade for all sub modules, providing access to the texture manager and the scene through the render manager interface. Dependencies Access TO: o Texture Manager Sub-Module o Scene Manager Sub-Module Accessed BY: o Object Manager o Main Game Module o Game State o Menu State o Interface Manager o Transition Manager Return Int Void Name Init Resize None Int nWidth // Window Width Int nHeight // Window Height None None Parameters Description Initializes the render system. Resizes the OpenGL window.

Void Int

Clear Render

Void

Begin2D

None

Clears the render buffers. Renders the scene using the camera, lights, objects, and effects loaded into the system. Switches the render system to 2D orthographic projection.

145

Void

End2D

None

Void

Int

DrawCircularProgress Float fCenterX // Center X Position Float fCenterY // Center Y Position Float fRadius // Progress Radius Float fPercent // Percentage complete Shutdown None

Switches the render system back to 3D perspective. Draws a circular progress bar at the given position with the given percentage complete.

Void

AddLight

Uint

LoadTexture

CLight* pLight // Pointer to the light to add Char* szPath // The file path of the texture

Shuts down the render system, freeing up all memory allocated by the render system. Adds the specified light to the scene. Loads a texture and returns a unique texture ID. If the texture is already loaded, returns the existing ID for that texture and increases the ref count by 1. Subtracts one from the ref count of the texture and unloads if ref count is 0. Streams a video from the specified path to the window. Sets the scenes camera to the camera passed in. Draws a texture to a quad on the screen. This

Void

UnloadTexture

Uint nTextureID // The ID of the texture to unload

Void

PlayVideo

Char* szPath // The path of the video

Void

SetCamera

Void

DrawTexture

CCamera* pCamera // The camera to use in the scene Uint nTextureID // The ID of the texture to draw

146

Uint

LoadModel

Void

UnloadModel

Int nX // The X coordinate to draw at Int nY // The Y coordinate to draw at Int nWidth // The width of the quad to draw on. Int nHeight // The height of the quad to draw on. CModel* pModel // The Model to use CSkeleton* pSkeleton // The Skeleton to use Int nContextID // The ID of the context to use for rendering. Uint nID // The ID of the model to unload CEffect* pEffect // The Effect to load into the system Int nContextID // The ID of the context to use for rendering Uint nID // The ID of the Effect to unload

function will be used to draw 2D interface elements in 2D projection.

Uint

LoadEffect

Void

UnloadEffect

Creates a render shape for the object and returns a unique ID that can be later used to unload the render shape. Unloads the render shape associated with the ID. Creates a render effect for the object and returns a unique ID that can be later used to unload the effect. Unloads the render effect associated with the ID.

Features Containment of all OpenGL code into a single module to make render debugging easier. One single interface for all game rendering, including 2D and 3D elements. Texture Manager o Manages all game textures used by objects and by the interface. All loaded textures are given an ID number that is used for rendering. When a request is made for a texture that is already loaded, it will increase the reference count of that texture. The

147

texture will be unloaded when the reference count is 0. Scene o Maintains information about the game scene, including lights, camera, and all game objects including the player, enemies, and effects. Contexts o Allows for the rendering of all similar objects as a single batch to minimize OpenGL context switching.

Associated Risks Risk: The way our render system is set up, we will need to create a unique render context for each effect in our game. This is because we separate our Effect classes from the render implementation to keep all OpenGL code in the render engine to make it easier to debug render issues. The risk is that with so many different render contexts and effect objects, it will become too difficult to manage and may become extremely time consuming to work with and debug.

Affected Resource: P C RF Johnathan Garrett Effects 0.1 .3 .37 System Response or avoidance: 1. 1/17/09 - Research effects systems and how to best manage them in a game engine. 2. 2/2/09 - Talk to Adam Schellenbarg, who is in charge of effects for Segway Militia about implementation options. 3. 2/16/09 - Talk to Carlos about past implementations of effects systems. 4. 3/3/09 - If our effects become too difficult to manage by Alpha milestone, we will separate the rendering of effects from the render engine. While we will lose some containment of the OpenGL code, it will be simpler to render.

Time to Complete Estimate Research 1 day Implementation 15 days o Texture Manager 2 day o Scene 2 days o Contexts 10 days Toon Context 1 day Muzzle Flash Context 1 day Flesh Hit Context 1 day Health Orb Context 1 day Stasis Mine Context 1 day Sword Slash Context 1 day Blood Splash Context 1 day Abomination Explosion Context 1 day Smoke Trail Context 1 day Explosion Context 1 day

148

o Render Node Hierarchy 1 day Testing 1 day

Module Author(s) Johnathan Garrett

149

Texture Manager Sub-Module This sub-module handles all game textures, including menu and object textures. It will handle the loading of textures and initializing them through OpenGL. It will also handle the drawing of textures in 2D space through creation of quads and rendering those quads on a specified part of the screen. The texture manager will keep track of reference counts to make sure that when the unload texture function is called, memory isnt freed that is still being used by other modules. The render manager serves as a faade for this sub-module, forwarding the necessary function calls. Dependencies Access TO: o None. Accessed BY: o Render Manager Return Int Void Uint Name Init Shutdown LoadTexture None None Char* szPath // The file path of the texture Parameters Description Initializes the texture manager. Frees all textures. Loads a texture and returns a unique texture ID. If the texture is already loaded, returns the existing ID for that texture and increases the ref count by 1. Subtracts one from the ref count of the texture and unloads if ref count is 0. Draws a texture to a quad on the screen. This function will be used to draw 2D interface elements in 2D projection.

Void

UnloadTexture

Uint nTextureID // The ID of the texture to unload

Void

DrawTexture

Uint nTextureID // The ID of the texture to draw Int nX // The X coordinate to draw at Int nY // The Y coordinate to draw at Int nWidth

150

// The width of the quad to draw on. Int nHeight // The height of the quad to draw on. Features A singular manager for all textures to make it easier to debug texture issues that arise. The system will keep track of reference counts to prevent issues with multiple objects using the same texture. Handles all 2D texture drawing to the screen to make it easy to render textures in 2D orthographic projection. Time to Complete Estimate Implementation 2 days o Texture Loading and ID Management 1 day o Partial Texture Rendering (using a RECT to specify which part) 1 day Module Author(s) Johnathan Garrett

151

Scene Manager Sub-Module This sub-module handles all scene management and fills out a series of lists that are sorted by context to be used by the render manager. Every time the scene is processed, the scene sub-module will perform view frustum culling and sort each render node based on context and distance from the camera. The scene also manages the creation of render nodes based on information passed in. It creates a unique ID for each render node that can be later used by other modules to remove a render node from the system. Dependencies Access TO: o None. Accessed BY: o Render Manager Return Int Void Void Name Init AddLight SetCamera None CLight* pLight // Pointer to the light to add CCamera* pCamera // The camera to use in the scene CModel* pModel // The Model to use CSkeleton* pSkeleton // The Skeleton to use Int nContextID // The ID of the context to use for rendering. Uint nID // The ID of the model to unload CEffect* pEffect // The Effect to load into the system Int nContextID // The ID of the context to use for rendering Uint nID // The ID of the Effect to unload Vector<RenderNode*> Parameters Description Initializes the scene. Adds the specified light to the scene. Sets the scenes camera to the camera passed in. Creates a render shape for the object and returns a unique ID that can be later used to unload the render shape. Unloads the render shape associated with the ID. Creates a render effect for the object and returns a unique ID that can be later used to unload the effect. Unloads the render effect associated with the ID. Processes the

Uint

LoadModel

Void

UnloadModel

Uint

LoadEffect

Void

UnloadEffect

Int

Process

152

Int

Shutdown

vOpaqueList // The list of opaque objects sorted by context and distance Vector<RenderNode*> vTransparentList // The list of transparent objects sorted by context and distance Vector<RenderNode*> vEffectList // The list of effect objects sorted by context and distance. None

scene, placing all visible objects into its appropriate list sorted by context and distance from the camera.

Shuts down the scene, freeing up all render nodes.

Features View frustum culling will be performed based on the cameras frustum to increase frame rates. The scene will sort render nodes by distance from the camera and by context to reduce the number of context switches and the amount of overdraw. Time to Complete Estimate Implementation 2 days o Scene Structure (lights, camera, objects) 1 day o View Frustum Culling and Scene Sorting 1 day Module Author(s) Johnathan Garrett

153

Model Manager The model manager will keep track of all the currently loaded models. This will ensure that no model is loaded more than one time in memory. When an object needs to use a model, the model manager will return a pointer to that model. Models are never changed once they are loaded, so multiple objects can contain pointers to the same model.

Dependencies Access TO: o None. Accessed BY: o Object Manager Return Int Name Init Void Parameters Description Initializes the model manager, loading all game models. Returns the model associated with the specified model ID. Shuts down the model manager, freeing all memory used by game models.

CModel*

GetModel

Int

Shutdown

String szModelID // String holding the ID of the model. Void

Features One single place that stores all of the models used by the game objects. Reduces memory overhead by ensuring that no model is loaded more than one time. Time to Complete Estimate Complete. Module Author(s) Johnathan Garrett

154

Animation Manager The animation manager will keep track of all the currently loaded animations. This will ensure that no animation is loaded more than one time in memory. When an object needs to use an animation, the animation manager will return a pointer to that animation. Animations are never changed once they are loaded, so multiple objects can contain pointers to the same animation. Dependencies Access TO: o None. Accessed BY: o Object Manager Return Int Init Name Void Parameters Description Initializes the animation manager, loading all animations. Returns the animation associated with the specified animation ID. Shuts down the animation manager, freeing all memory used by animations.

CAnimation* GetAnimation

String szAnimationID // String holding the ID of the animation.

Int

Shutdown

Void

Features One single place that stores all of the animations used by the game objects. Reduces memory overhead by ensuring that no animation is loaded more than one time. Time to Complete Estimate Complete. Module Author(s) Johnathan Garrett

155

Object Manager The object manager manages all game objects. It keeps track of an enemy list, a trap list, a weapon list, an effect list, and the player. The object manager receives spawn requests and creates objects based on the inputs. It will also forward the load level request to the level manager. The object manager will obtain object defaults by loading a script for each object type; this includes the model, animations, and attributes of each object type. Dependencies Access TO: o Level Manager o Scoring Manager o Animation Manager o Model Manager o Render Manager o CombatManager o AI Manager Accessed BY: o Level Manager o Combat Manager o AI Manager o Game State o Interface Manager Return Int Init Name Void Parameters Description Initializes the object manager, loading object defaults from object scripts. Creates an enemy object of the specified type at the location specified. Creates an effect object of the specified type at the location specified. Creates a trap object of the specified type at

Void

SpawnEnemy

Void

SpawnEffect

Void

SpawnTrap

Vec3f vLocation // The location to spawn at Int nType // The type of enemy to spawn Vec3f vLocation // The location to spawn at Int nType // The type of effect to spawn Vec3f vLocation // The location to spawn at

156

Vector<Enemy*>*

GetEnemyList

Int nType // The type of trap to spawn Void

the location specified. Returns a pointer to the collection of enemies managed by the object manager. Returns a pointer to the collection of traps managed by the object manager. Returns a pointer to the collection of weapons managed by the object manager. Returns a pointer to the player character. Updates all game objects. Loads the level script associated with the level ID. Shuts down the object manager, freeing up all game objects in the system.

Vector<Trap*>*

GetTrapList

Void

Vector<Weapon*>* GetWeaponList

Void

Player*

GetPlayer

Void

Int Void

Update LoadLevel

Void String szLevelID // The ID of the level to load Void

Int

Shutdown

Features Single class to manage and update all game objects. Allows other modules to easily spawn different types of objects at any location. Uses scripts to load the attributes of each object type. Notes Trap weapons will spawn trap objects. The weapon class will store information about damage, duration, radius, and other attributes. The trap dropped by that weapon will contain positional information that will be used in collision. For example, the CStasisMines weapon will spawn a

157

CStasisMine when used. The CStasisMine will then be added to the trap list to be updated by the object manager. Projectiles such as rockets from the rocket launcher and bones from the skeleton are also considered trap objects. The health orb is also considered a trap object. The combat manager will determine what happens when the player collides with a trap and what happens when an enemy collides with a trap.

158

Object Hierarchy

159

Example Script Zombie MODEL = E_MOD_Zombie ANIMATIONS: WALK = A_E_Shamble ATTACK = A_E_AttackS ATTRIBUTES: HEALTH = 100 SPEED = 1.0 DAMAGE = 10 Time to Complete Estimate Implementation 5 days o Spawning / Updating Enemies 1 day o Object Hierarchy 1 day o Script Creation 1 day o Script Loading 2 days Module Author(s) Johnathan Garrett

160

Transition Manager The transition manager handles all transitions between states. When a state needs to be changed, the transition manager is responsible for handling the shutdown of the old state and the initialization of the new state. It will also display any loading screens necessary during a transition. Dependencies Access TO: o Menu State o Game State o Render Manager Accessed BY: o Main Game Module Return CAbstractState* Name Transition Parameters CAbstractState* pState1 // State to shutdown CAbstractState* pState2 // State to init Float fProgress // Normalized value that represents loading progress. Description Transition will handle the change in states. It will call pState1>Shutdown() and pState2->Init(). Called by the state being initialized to update the progress bar .

Void

UpdateProgress

Features Allows easy switching between two states. The module will handle the shutdown for the old state and the initialization of the new state. Has a loading screen internal to the transition manager that is displayed while transitioning between states. Time to Complete Estimate Implementation 1 days o Transitioning, rendering load screen, progress updates from other states 1 day Testing and Integration 1 day Module Author(s) Jim Sherrill

161

Options Manager The options manager will keep track of all of the games customizable options including key bindings, sound and gamma. Dependencies Access TO: o None. Accessed BY: o Menu Manager Return Name COptionsManager* GetInstance Parameters Void Description Returns the current instance of COptionsManager. Deletes the currently active instance of COptionsManager. Shuts down the Options manager, freeing all memory. Initilizes the manager. Saves all relevant data to the specified profile slot. Loads all relevant data from the specified profile slot.

Void

DeleteInstance

Void

Int

Shutdown

Void

Int Void

Init SaveAll

Void Int nProfileSlot // Slot where the player will save their data Int nProfileSlot // Profile slot to load all relevant data from

Void

Load

Features Saving of all of the games customizable options and the current stat of the players game. Saving of separate profiles to allow the user different saved game states. Time to Complete Estimate Implementation 4 Days o Game Specific Option Selection 2 days o Bindable Controls 1 day o Gamma Control 1 day Module Author(s) Brian Sorin

162

163

Main Game Module The main game module is responsible for running the current state. It will communicate with the current state to update it. When a state needs to be changed the main game module will send the current state and the new state to the transition manager which will perform the switch. Dependencies Access TO: o Game State o Menu State o Transition Manager Accessed BY: o None. Return Int Init Name Parameters Void Description Handles the initialization of the main game module Updates the current state Handles the shutdown for the main game module Returns an instance of the main game module

Int Int

Update Shutdown

Void Void

CGameMain*

GetInstance

Void

Features Updates the active state. Time to Complete Estimate Complete. Module Author(s) JD Garrett

164

Menu State The menu state will provide an entry point to the game. From the menu state, the user will be able to change profiles, modify game options, view the credits, enter quick play mode, and enter the campaign. The menu state will also display the intro splash screens required by the GRC upon startup. Dependencies Access TO: o Interface Manager o Render Manager Accessed BY: o Main Game Module o Transition Manager Return CMenuState* Name GetInstance Parameters Void Description Returns an instance to the menu state. Initializes the menu state. Handles the frame by frame updating of the menu state. Shuts down the menu state and frees any allocated resources.

Int Int

Init Update

Void Void

Int

Shutdown

Void

Features Serves as the lobby to the game. Access to player profiles for viewing and managing. Access to game options for modifying. Video playback behind the menu interface. Time to Complete Estimate Complete. Module Author(s) JD Garrett

165

Game State The game state will serve as the central system while playing the game. The game state will talk to all major game systems to maintain the state of the world. The game state will also contain code to modify game rules based on what game mode the player has chosen to play. The game state will also maintain a global timer used in other module updates. Dependencies Access TO: o AI Manager o Render Manager o Interface Manager o Object Manager Accessed BY: o Transition Manager o Main Game Module Return Int Init Name Parameters Void Description Handles the initialization of the game state. Handles the updating of the game. Handles the shutdown for the game and frees all allocated resources. Returns an instance to the game state.

Int

Update

Void

Int

Shutdown

Void

CGameState*

GetInstance

Void

Features Maintains the game world and calls all game system updates. Serves as the central hub of the game architecture. Modifies game rules based on the current game mode. Time to Complete Estimate Basic state is completed, but changes are being made throughout the development process. Module Author(s) Jim Sherrill Paul White

166

JD Garrett Brian Sorin Shawn Kennedy

167

Math Module The math module contains all necessary data structures and math functions for the game. The following data structures are contained within the math module: vec3, vec4, matrix3, matrix4. These data structures are being used from the Engine Development 2 labs. The math module is used in many different areas of the game so for that reason it is global. Dependencies Global. Return Vec3<type>& Name Normalize Parameters Void Description Normalizes the vector components. Negates the vector components. Returns the magnitude of a vector. Returns the dot product of the 2 specified vectors.

Vec3<type>&

Negate

Void

Float

Magnitude

Void

Float

Dot_product

Void

Cross_product

Matrix4<type>&

Rotate_x_pre

Vec3<type>& vec1 // First vector to dot Vec3<type>& vec2 // Second vector to dot Vec3<type>& vecO // Vector to store result in Vec3<type>& vec1 // First vector to cross Vec3<type>& vec2 // Second vector to cross Float radians // Amount to rotate by

Takes the cross product of vec1 and vec2 and stores the result in vecO.

Rotates the matrix about the x axis for the specified radians Pre = rot * mat.

168

Matrix4<type>&

Rotate_x_post

Matrix4<type>&

Rotate_y_pre

Float radians // Amount to rotate by Float radians // Amount to rotate by

Matrix4<type>&

Rotate_y_post

Matrix4<type>&

Rotate_z_pre

Float radians // Amount to rotate by Float radians // Amount to rotate by

Matrix4<type>&

Rotate_z_post

Void

Multiply

Float radians // Amount to rotate by Matrix4f& matO // Matrix to store result in Matrix4f& mat1 // First matrix to multiply Matrix4f& mat2 // Second matrix to multiply

The same as pre except post = mat * rot. Rotates the matrix about the y axis for the specified radians Pre = rot * mat. The same as pre except post = mat * rot. Rotates the matrix about the z axis for the specified radians Pre = rot * mat The same as pre except post = mat * rot. Multiplies mat1 and mat2 and stores the result in matO.

Features Vec3, Vec4, Matrix3, Matrix4 data structures and common operations performed on those data structures. Global access. Time to Complete Estimate Complete. Module Author(s) ED Staff

169

Collision Module The collision module provides a variety of functions for different types of collision detection. The functions are in a common file that can be used by any module that needs a collision detection function. Dependencies Global. Return Float // Amount of penetration Name SphereToSphere Parameters Sphere& sphere1 // First sphere to test Sphere& sphere2 // Second sphere to test Ray& ray // Ray to test with Sphere& sphere // Sphere to test with CFrustum& frustum // Frustum to test with Sphere& sphere // Sphere to test with Description Tests if the two spheres passed in are colliding with each other.

Bool

RayToSphere

Tests if the given ray intersects with the sphere.

Bool

SphereToFrustum

Determines if the given sphere intersects with the given frustum.

Features Global access Provides all needed collision detection functions for the game Associated Risks Risk: Running collision detection on 100 zombies and objects in an arena along with the animation

Affected Resource: Jim Sherrill - Collision Response or avoidance:

P C RF 0.4 .9 .94

170

updating and rendering of those zombies is going to cause a frame rate hit that could potentially bring the frame rate below 30.

1. 1/20/09 - Research spatial partitioning for collision detection. 2. 2/25/09 - Talk with my team for help. 3. 2/27/09 - Talk with Chris Venezia for help. 4. 3/1/09 - Talk to Carlos and Jason about past solutions for collision. 5. If problems are still occurring on 3/5/09, the number of bounding spheres being checked will be reduced to one or the number of zombies on screen will be reduced to 30.

Time to Complete Estimate Research 1 day Implementation 1 day o SphereToSphere, RayToSphere, SphereToFrustum 1 day Testing/Integration 1 day Total Time 3 days Module Author(s) Jim Sherrill

171

Interface Manager This module will handle the loading and updating of the menus and heads-updisplay. To encapsulate each, there will be two sub-modules, the Menu System, and HUD System. The Interface Manager itself will tell the Menu and HUD systems when and what to load, when to show themselves, and handle the updating and shutting down of each system. Dependencies Access TO: o Menu Manager Sub-Module o HUD Manager Sub-Module Accessed BY: o Game State o Menu State Return Int Init Name Parameters Void Description This will instantiate the Menu System and HUD System. This will update the Menu System and HUD System. Forwards the load menu command to the Menu Manager This will shutdown the Menu System and HUD System.

Int

Update

Void String szFilename // The filename of the menu script Void

Void

LoadMenu

Int

Shutdown

Features Containment of the 2D Interface elements in a single module for easier updating and managing. Time to Complete Estimate Menu Manager sub module 16 days HUD Manager sub module 5 days Module Author(s) Shawn Kennedy

172

Menu Manager Sub-Module This module is a sub module of the Interface Manager will handle the loading and updating of various menus in the game, such as the main menu, upgrade menu, and pause menu. The menus will be stored in a tree structure to ease opening and closing of sub menus. Also, the tree structure will allow for determining which menus are active, and as such, need to be rendered. The tree structure will contain MenuNodes that will hold all info relevant to various sections of the menu that you are on. For instance, the Campaign selection would have a position, texture, and children that once selected would open up for traversal. A Cursor class will be used for traversing the menus. The Menu Manager will also allow for loading in menu structures from XML files. Dependencies Access TO: o Render Manager o Options Manager o Scoring Manager o Upgrade Manager o Profile Manager Accessed BY: o Interface Manager Return Name Parameters Description This will load in the menu structure from an XML file. It will allocate all MenuNodes and the Cursor. This will handle the transition from a menu being inactive to active. For instance, the pause menu coming up when the player pauses. Shuts down the Menu Manager Sub-Module, freeing up all memory used by it. This will update

Int

LoadMenu

Char* szFileName

Int

Init

Void

Int

Shutdown

Void

Int

Update

Void

173

which menus are active and rendering Features Node based menus allow for easy traversal and activation/deactivation. XML loading allows for easy editing of menu structure. XML Script Example <Prologue> <Menu> <NodeCount>9</NodeCount> <Node> <Type>Frame</Type> <ID name="Pause Root">0</ID> <Texture name="PauseMain.tga"/> <Position> <x>400</x> <y>300</y> </Position> <Children> <ID name="Resume Button">1</ID> <ID name="Options Button">2</ID> <ID name="Exit Button">3</ID> </Children> </Node> <Node> <Type>Button</Type> <ID name="Resume Button">1</ID> <Texture name="ResumeButton.tga"/> <HoverTexture name="ResumeButtonHover.tga"/> <ClickTexture name="ResumeButtonClick.tga"/> <Position> <x>440</x> <y>330</y> </Position> </Node> <Node> <Type>Button</Type> <ID name="Options Button">2</ID> <Texture name="OptionsButton.tga"/> <HoverTexture name="OptionsButtonHover.tga"/> <ClickTexture name="OptionsButtonClick.tga"/> <Position> <x>440</x>

174

<y>360</y> </Position> <Children> <ID name="Game Options Button">4</ID> <ID name="Video Options Button">5</ID> <ID name="Sound Options Button">6</ID> </Children> </Node> <Node> <Type>Button</Type> <ID name="Exit Button">3</ID> <Texture name="ExitButton.tga"/> <HoverTexture name="ExitButtonHover.tga"/> <ClickTexture name="ExitButtonClick.tga"/> <Position> <x>440</x> <y>390</y> </Position> </Node> <Node> <Type>Button</Type> <ID name="Game Options Button">4</ID> <Texture name="GameOptionsButton.tga"/> <HoverTexture name="GameOptionsButtonHover.tga"/> <ClickTexture name="GameOptionsButtonClick.tga"/> <Position> <x>480</x> <y>360</y> </Position> <Children> <ID name="Invert Y Button">7</ID> <ID name="Mouse Sensitivity Bar">8</ID> </Children> </Node> <Node> <Type>Button</Type> <ID name="Video Options Button">5</ID> <Texture name="VideoOptionsButton.tga"/> <HoverTexture name="VideoOptionsButtonHover.tga"/> <ClickTexture name="VideoOptionsButtonClick.tga"/> <Position> <x>480</x> <y>360</y> </Position> <Children> <ID name="Gamma Bar">8</ID>

175

</Children> </Node> <Node> <Type>Button</Type> <ID name="Sound Options Button">6</ID> <Texture name="SoundOptionsButton.tga"/> <HoverTexture name="SoundOptionsButtonHover.tga"/> <ClickTexture name="SoundOptionsButtonClick.tga"/> <Position> <x>480</x> <y>360</y> </Position> <Children> <ID name="Volume Bar">9</ID> </Children> </Node> <Node> <Type>Button</Type> <ID name="Invert Y Button">7</ID> <Texture name="InvertYButton.tga"/> <HoverTexture name="InvertYButtonHover.tga"/> <ClickTexture name="InvertYButtonClick.tga"/> <Position> <x>480</x> <y>360</y> </Position> </Node> <Node> <Type>Bar</Type> <ID name="Gamma Bar">8</ID> <Texture name="GammaBar.tga"/> <FillTexture name="GammaBarFill.tga"/> <Position> <x>480</x> <y>360</y> </Position> </Node> <Node> <Type>Bar</Type> <ID name="Volume Bar">9</ID> <Texture name="VolumeBar.tga"/> <FillTexture name="VolumeBarFill.tga"/> <Position> <x>480</x> <y>360</y> </Position>

176

</Node> </Menu> Time to Complete Estimate Research XML 2 day Implementation 11 days o Node and Cursor 2 days o Scripting 6 days Main Menu Script 2 days Pause Menu Script 1 day Upgrade Menu Script 2 days Profile Menu Script 1 day o Menu Tree 2 days o Transitions and Display 1 day Testing 2 day o Menu Tree functionality day o Menu Scripting 1 day Integration 1 day Module Author(s) Shawn Kennedy

177

HUD Manager Sub-Module This module is a sub module of the Interface Manager and will handle the displaying and updating of the HUD elements, including the circular progress bar for the multiplier, the score, and the health and weapon bars. Dependencies Access TO: o Render Manager o Scoring Manager o Object Manager Accessed BY: o Interface Manager Return Int Init Name Parameters Void Description This will initialize the multiplier and score for the level to zero. This will update the score / multiplier, and update the health when damage is taken. Also it will update the display of which weapon the player has equipped. This will shutdown the HUD Manager.

Int

Update

Void

Int

Shutdown

Void

Features Containment of all HUD elements for easier updating and managing. Circular progress bar for the score multiplier. Horizontal progress bar for the health. Display of the current ranged, melee, and trap weapon that are equipped, and transitions for when the player switches ranged, melee, or trap weapons. Time to Complete Estimate Implementation 3 days o Status Bar 1 day o Weapon Bar 2 days Testing 1 day 178

Integration 1 day

Module Author(s) Shawn Kennedy

179

Input Manager This module is responsible for handling all of our player input (i.e. keyboard, mouse, 360 Controller). We will be using XInput in order to allow us the use of the 360 controller and the mouse and keyboard. Dependencies Global. Return Bool Name Parameters Description EnumJoysticsCallback DIDEVICEINSTANCE,void Checks to see if a joystick is present InitDevices HWND, HINSTANCE, bool Inits all devices InitKeyboard HWND, HINSTANCE, bool Inits the keyboard ShutdownDirectInput Void Shutsdown DI ReadDevices Void Gets state of all devices GetKey UCHAR Gets state of key DikToString DWORD Coverts a DIK value to string

Bool Bool Void Bool Bool String

Features Xbox360 controller support. Keyboard / Mouse support. Time to Complete Estimate Complete. Module Author(s) SGD Staff

180

Sound Manager This module is responsible for loading, storing, and playing all sounds in our game in the correct position according to where our camera is. We will be using OpenAl to play and load our sounds, and OggVorbis as our format. Dependencies Global. Return CSoundManager* Void Bool Bool Name GetInstance DeleteInstance InitSoundManager IsPlaying Parameters Void Void Void Int Description Gets the instance of the singleton Deletes the instance Starts OpenAL Checks to see if the sound is playing Loads an OggVorbis file Plays a streaming music source Processes buffers Updates the position of the listener. Updates a position, velocity, and direction of a sound. Sets the stream to a time, to start playing from Flips and fills buffers with streamed pcm data Stops the ogg from playing Pause a single ogg loaded into memory Pause all oggs 181

Int

OpenOgg

Char*, bool, bool

bool void

PlayOgg UpdateOgg

int void

void

UpdateListener

void

UpdateSource

Float, float, float int, double, double, double, double, double, double, double, double, double,

void

ResetOgg

int, double

bool bool

StreamOgg StopOgg

Aluint, int int

void void

PauseMemOgg PauseAllMemOgg

int void

void

PauseStrOgg

int

void

PauseAllStrOgg

void

void

ResumeMemOgg

int

void

ResumeAllMemOgg void

void

ResumeStrOgg

int

void bool

ResumeAllStrOgg bool Shutdown

void void

loaded into memory Pause a single ogg that is streamed Pause multiple oggs that are streamed Resumes a single ogg loaded into memory Resumes all oggs loaded into memory Resumes a single ogg that is streamed Resumes multiple oggs that are streamed Destroys OpenAL.

Features 3D Sound through the use of a listener and sources. OggVorbis format for files to cut down on memory usage. Multiple buffers for playing back the same sound overlapping. When game is paused the sfx will stop and the Background music will continue playing. Risks Risk: Having never used OpenAL before for sound, getting the effect of direction and location oriented 3D sound to work throughout the game might not be feasible.

Affected Resource: Paul White

P .25

C .5

RF .56

Response or avoidance: 1. Research on http://connect.creativelabs.com/openal/default.aspx to see if they have a solution before 1/18/09 2. If not done before 2/01/09 ask Trevor how he did his sound system. 3. If not done by 2/7/09 talk to Richard Wright on how to implement it. 4. If not correct by 2/10/09 Ask EPs to let me look in the old game closet. 5. If not done by 2/15/09 fake relative positions (i.e.

182

middle of the zombie horde) so that sounds come from them.

Time to Complete Estimate Research 1 day Implementation 7 days o Sound ID management 1 day o Integration of Spike Solution 1 day o Loading Sounds 1 day o Streaming 2 days o Playback Controls 2 days Testing 1 days 3D Sound Research 2 days Implementation 7 days o Listener Implementation 1day o Multiple Sound Buffers 2 days o Listener and Source Movement 2 days o 3D Sound Wrapper Implementation 2 Days Testing 2 days o Listener and Source 1 day o 3d Sound Wrapper Functionally 1 day

Module Author(s) Paul White

183

Timer This module is responsible for handling all of the times (i.e. elapsed time between frames) for our game. Dependencies Global. Return Int Int Int CTimer * Float Name Init Shutdown Update GetInstance GetTime Parameters Void Void Void Void Void Description Starts the timer. Destroys the timer. Updates current time. Gets the instance of the singleton. Get the time elapsed.

Time to Complete Estimate Complete. Module Author(s) Johnathan Garrett

184

Game Feature Breakdown


Level Manager This module handles the current level. It loads the level and manages all objects clamping to the ground and colliding with the walls. It also manages the spawning of enemies and collision with terrain effects by various game objects. Dependencies Access TO: o Object Manager Accessed BY: o Object Manager Algorithms Terrain Effects Collision o In order to save CPU processing time from checking every object against terrain effects volumes, we will instead load in a 2D texture that represents a top-down view of the map. The textures information will then be used to create a 1024x1024 2D character array. In order to determine what terrain effects an object is on, its position in world space will be used to reference the nearest element in the 2D character array. The character in the array will determine what type of terrain the object is on. U Conveyor Belt (+Z movement) D Conveyor Belt (-Z movement) L Conveyor Belt (-X movement) R Conveyor Belt (+X movement) S Sand I Ice H Heat Grate 0 None o By using this 2D array, we lose a small amount of accuracy and use a fair bit of memory, but as a result, our collision checks are much faster than checking each object against several bounding volumes. Return Int Int Name Init Update Void Void Parameters Description Initializes the Level Manager. Updates the level manager. This will handle the management of each wave.

185

Int

LoadLevel

Int

ProcessObject

String szLevelID // The ID of the level to load CObject* pObject // The object to process

Int

Shutdown

Void

Loads the level script associated with the level ID. Processes the object, performing ground clamping and collision checks. Shuts down the level manager, unloading the level and freeing up all resources associated with it.

Example Script The Courtyard MESHES: L_MOD_Courtyard MUSIC = BGMUSIC1 SKYBOX = SKYBOX1 WAVES = 2 WAVE: 2 Abomination 5 Ghoul 20 Zombie RATE = 2.0 AMOUNT = 3 // 3 enemies spawn every 2 seconds WAVE: 5 Abomination 10 Ghoul 10 Zombie RATE = 2.0 AMOUNT = 4 Time to Complete Estimate 16 Days o Research Custom Maya Attributes 2 Days o Exporting Levels with Attributes 2 Days o Loading Levels with Attribugtes 2 Days o Level Script Development 2 Days o Script Loading 1 Day o Terrain Following 1 Day o Exporting Levels with Spawn Points 3 Days o Creating Level Loading Scripts 3 Days

186

Module Author(s) Johnathan Garrett Brian Sorin Jim Sherrill

187

Combat Manager This module handles combat interactions between the players weapon and enemies, and also interactions between enemies and traps. When the player fires his weapon, information about the bullet or attack frustum is sent to the combat manager to see if the attack hit any enemies. If any enemies are hit, the combat manager sends a message to the enemy to take damage. If any enemies hit a trap, the trap will be processed within the update step of the combat manager. The player will not be able to trigger their own traps if they collide with them, but they will trigger the bone and health orb traps. Enemies, however, will trigger player traps, but not trigger bone or health orb traps. Dependencies Access TO: o Object Manager Accessed BY: o Game state Return Int Int Name Init Update Void Void Parameters Description Initializes the Combat Manager. Updates the combat manager, checking to see if any enemies are in range of any traps. Tests the bullet against all enemies. If an enemy is hit, a message is sent to the enemy, telling it to take damage based on the weapon damage. Tests the hit box against all enemies. If an enemy is hit, a message is sent to the enemy, telling it to take damage based on the weapon damage. Shuts down the combat manager.

Int

ProcessBullet

Weapon* pWeapon // The weapon that fired the bullet Ray* pBullet // The bullet to test

Int

ProcessMelee

Weapon* pWeapon // The weapon that was used Frustum* pHitBox // The area affected by the swing

Int

Shutdown

Void

188

Void

CheckCollisions

Void

Performs all necessary collision tests and handles any necessary responses.

Time to Complete Estimate Implementation 10 days o Bullet to enemy collision 1 day o Player to enemy collisions 1 day o Knife/Trap to Enemy collision 2 days o Objects to terrain effects 2 days o Rocket Launcher to enemies 2 days o Explosion Chaining 2 days Module Author(s) Jim Sherrill

189

AI Manager This module handles the movement and attack functions of all enemy types. Upon receiving the enemy list from the object manager, the AI manager will treat this enemy list like a flock. Separation will be used to prevent enemies from passing through each other, while making them all flock towards the player. When enemies are initialized, they will call the AI manager and receive a function pointer to their AI routine. This allows all AI functionality to be located in one area. Dependencies Access TO: o Object Manager Accessed BY: o Game State o Object Manager Return Int Int Name Init Update Void Void Parameters Description Initializes the AI Manager Updates the AI manager, performing a flocking behavior on all enemies. Returns a pointer to the function that handles the AI for the enemy type passed in. Shuts down the AI manager.

Function*

GetAIRoutine

Int nType // The enemy type.

Int

Shutdown

Void

Time to Complete Estimate Flocking Behavior 3 days AI Routines 5 days o Zombie 1 day o Ghoul 1 day o Abomination 1 day o Skeleton 1 day o Surgeon 1 day Module Author(s) Johnathan Garrett

190

Upgrade Manager This module will contain all information regarding the current players upgrades. It will be updated when the player purchases upgrades through the Interface Manager. Dependencies Accessed By o Menu Manager Sub-Module Access To o None. Return Int Init Name Void Parameters Description This will initialize all the upgrade values to those of the current profile. This will update the players upgrades with any changes that were made in the menu. This will update the Profile Manager of any changes to the players upgrades.

Int

Update

Void

Int

Shutdown

Void

Features Containment of the upgrades in a single module for easier updating and managing. Time to Complete Estimate Implementation 7 days o Script 2 days o Transitions 1 day o Player Upgrades 2 days o Weapon Upgrades 2 days Testing 1 day Integration 1 day Module Author(s) Shawn Kennedy

191

Scoring Manager This module will update and keep track of the players score and multiplier. When enemies die they will notify the Scoring Manager, and the score will be updated by the enemies point value times the current multiplier. The HUD Manager will get the score from the Scoring Manager for display. At the end of a level, the Profile Manager will be updated with the score earned in the level. Dependencies Access TO: o None. Accessed BY: o HUD Manager Sub-Module o Object Manager Return Int Init Name Void Int nScore // The amount to add Parameters Description This will initialize the score and multiplier of the level to zero. Increases the score. This will update the multiplier by draining it according to the time that has passed. This will notify the Profile Manager of the score earned in the level.

Void

IncreaseScore

Int

Update

Void

Int

Shutdown

Void

Features Containment of all scoring elements for easier updating and managing. Time to Complete Estimate Implementation 2 days o Score manager and score updating 1 day o Integrate multiplier mechanics 1 day Module Author(s) Jim Sherrill

192

Profile Manager The profile manager will keep track of all saved profiles the user has created. The profile will contain the players progress through the campaign, including which levels have been completed, and which quickplay types have been unlocked from their completion. It will also include their total points, and current points that they can spend on upgrades. Along with that it will include all upgrades purchased by the player. Finally, it will include the options layout of the player. Dependencies Global. Return Name CProfileManager* GetInstance Parameters Void Description Returns the current instance of CProfileManager Deletes the currently active instance of CProfileManager Shuts down the Profile manager, freeing all memory Initilizes the manager Passes the stream to optionsmanager for further saving Passes the stream to optionsmanager for further loading

Void

DeleteInstance

Void

Bool

Shutdown

Void

Void Void

Init SaveAll

Void String szFilename

Void

Load

String szFilename

Features Container for all of the users separate saved game files. A way to contain and track statistics throughout the game. Time to Complete Estimate Implementation 8 days o Profile class implementation 2 days o Profile menu 2 days o Profile slots 1 day o Options 1 day o Stat tracking 1 day o Character progress 1 day

193

Module Author(s) Brian Sorin

194

Milestone Deliverables
Proof of Concept o Completed Elements State Machine Timer Math Module Ray to Sphere Collision Sphere to Sphere Collision Mouse and Keyboard Input Keypress Responses Multiplier Mechanics Model Manager Animation Manager o Tech Elements Render Manager Texture Manager POC Render Node Hierarchy Render Shapes POC Scene Management Lights Camera Render Nodes Toon Context and Shader Animation Manager Maya Exporter Plugin Model Loading Animation Loading and Interpolation Camera HUD Manager HUD System Structure, Updating Circular Progress and Health Bar Math and Physics Collision Response Bullet to Enemy, Player to Enemy Score Manager Input Manager Sound Manager Loading Sounds Streaming w/ Playback Controls o Gameplay Elements Creation of a Player Creation of Enemies Shooting and Killing of Enemies Respawning of Enemies Enemy Chase and Attack POC Game Environment Win/Loss Condition

195

POC Game Reset Functionality Sound Feedback Shooting, Hitting and Death, Background Music

Feature Frag #1 o Tech Elements Object Manager Object Hierarchy Weapons and Effects Object Scripts Player, Zombie, Weapon Loading Scripts AI Manager Flocking with Seperation Level Manager Combat Manager Knife and Trap Collision Interface and Menu Manager Sound Manager 3D Sound o Gameplay Elements Effects Muzzle Flash Flesh Hit Health Orb Effect Health Orbs Enemy Wave Spawning Behaviors Weapons Pistol, Knife, and Spike stats functionality and balancing Credits Zombie and Ghoul Attack Patterns

196

Feature Frag #2 o Tech Elements Object Manager Abomination, Ghoul and Weapon Scripts AI Manager Abomination and Ghoul Behavior HUD Manager Weapon Bar Switching Functionality Upgrade Manager Level manager Terrain Effects Options Manager Quickplay Menus Profile Manager Basic Implementation Profile Slots o Gameplay Elements Effects Stasis Mine, Sword Slash, Blood Splash, Abomination Explosion, Smoke Trail Terrain Effects Sand, Lava, Ice Level Integration and Enemy Balancing Weapons Shotgun, Stasis Mine, Sword Functionality and Balance Ingame weapon swapping Jumping Intro Basic profile creation and saving

197

Alpha o Weapons Rocket Launcher, Baseball Bat, Stasis Mine Functionality and Balance o Effects Explosion Effects o Knockback Functionality o Animation Transitioning o External Playtesting o Bug Fixing Beta o AI Manager Skeleton and Surgeon Behavior o New Weapons Upgrades o Level Specific Loading Screens o Stat Tracking o Saving o Unlockable System o Profile Options Integration Stat Integration Character Progress Integration o Pause and Pause Menus o Conveyor Belts o Dynamic Terrain Tiles o Explosion Chaining o Quickplay o Balance o Polish o Bug Fixing

198

Appendix A
Memory Map Total memory footprint: ~45MB o o o o o o o o o o o o o o o Character Models 720kb Character Animations 1.5mb Weapon Models 500kb Level Mesh 3.5mb Collision Geometry 100kb Terrain Effects 1mb Game Objects 300kb Game Executable 2mb Spawn Information 5kb Texture Information 24mb Shaders 10kb Sounds 6mb Menu Structures 2mb Profile Information 1mb Effects 300kb

199

Integration Plan For this project, we will be practicing continuous integration, that is, every team member will be working on files that are part of a master solution folder. When a person modifies a file that he has checked out, he will not submit that file until it is free of warnings and errors. When a particular module is ready to be integrated into the build, Johnathan Garrett will be asked to tie it in. If any errors result from integrating the module, a maximum of 30 minutes will be spent diagnosing the problem. If a solution is not found, the module will be disconnected from the build until a solution is found. To manage all of our source files, we will be using Alienbrain. When changes are going to be made to any source files, the person making the changes will go to the source folder of the solution and check out the files he needs. If the files are already checked out, he will work on something else until they are available. Multiple checkouts are not allowed on files.

200

Appendix B
Game Folder Hierarchy

201

You might also like