186
Production Document Doof N’ Dash Short Lived Studios Chimeric Creations Internal Producer Daniel Attella Artists John Den Adel Michael Johnson Programmers Jason Dietzel Omar Khan Adam Lis Arnaldo Mendez

CC- Doof N' Dash - Production Document - Final

Embed Size (px)

Citation preview

Page 1: CC- Doof N' Dash - Production Document - Final

Production DocumentDoof N’ Dash

Short Lived Studios

Chimeric CreationsInternal Producer

Daniel AttellaArtists

John Den Adel Michael JohnsonProgrammersJason DietzelOmar KhanAdam Lis

Arnaldo MendezPatrick Moscova

Reinol OrtaJorge RodriguezSteven Serafin

Eric Tjader

Page 2: CC- Doof N' Dash - Production Document - Final
Page 3: CC- Doof N' Dash - Production Document - Final

ContactsDaniel Attella [email protected] 508.615.9679

John Den Adel [email protected] 407.625.1228

Jason Dietzel [email protected] 989.798.4043

Michael Johnson [email protected] 843.298.5893

Omar Khan [email protected] 407.409.8696

Adam Lis [email protected] 727.686.3670

Arnaldo Mendez [email protected] 704.577.1634

Patrick Moscova [email protected] 973.687.0595

Reinol Orta [email protected] 786.239.0556

Jorge Rodriguez [email protected] 305.951.4848

Steven Serafin [email protected] 510.566.1044

Eric Tjader [email protected] 401.323.8996

CONTENTS

Page 4: CC- Doof N' Dash - Production Document - Final

Game Charter...................................................1Vision Statement................................................................................................2Meeting Schedule..............................................................................................2Hours Worked per Week....................................................................................7When Things Go Wrong....................................................................................8Decision-Making Process..................................................................................9Rules of Conduct...............................................................................................9Team Roles.....................................................................................................10Technical Systems...........................................................................................12

Charter Sign off Sheet...................................14Interactivity.....................................................16

Summary.........................................................................................................16Goals...............................................................................................................17Interface...........................................................................................................18Controls:..........................................................................................................20Interactive Rhythm...........................................................................................23How the Player Marks Progress......................................................................27

Detailed Design Breakdown..........................28Front End Flow Chart.......................................................................................28Game Flow Chart.............................................................................................29Glossary of Terms...........................................................................................34

Characters......................................................36Dash the Dino..................................................................................................37The Doof Family..............................................................................................40Normal Doof.....................................................................................................40Skinny Doof.....................................................................................................41Fat Doof...........................................................................................................42Golden Doof.....................................................................................................43Momma Doof...................................................................................................44

Levels and Maps............................................453D Environment Level Design......................45

Visual Design...................................................................................................45Goal.................................................................................................................45Level Travel.....................................................................................................45Scale................................................................................................................45Environmental Interactions - Behaviors...........................................................45Ambient Environmental Aspects/Objects in the Level......................................473D Environment Map.......................................................................................49

Game Walkthrough – 3D Verbal Map...........54Side Scrolling Level Design..........................56

Page 5: CC- Doof N' Dash - Production Document - Final

Summary.........................................................................................................56Goal.................................................................................................................56Interface...........................................................................................................56Interactive Rhythm...........................................................................................58How the Player Marks Progress......................................................................58Level Travel.....................................................................................................58Scale................................................................................................................59Environmental Interactions - Behaviors...........................................................59Attributes..........................................................................................................59Ambient Environmental Aspects/Objects in the Level......................................59Time.................................................................................................................602D Environment Map.......................................................................................60

Game Walkthrough – 2.5D Verbal Map........61Pounce Sequence..........................................63Game Logic, Algorithms, and Rules............65

Interaction Component Matrix..........................................................................65Interaction Component Matrix(2.5D “Fleeing” segment)..................................68

FAQ:................................................................70Reference of Key Elements...........................72

Scoring.............................................................................................................72Winning/Losing................................................................................................72Transitions.......................................................................................................73Rewards...........................................................................................................74

Art and Production Design............................753D Art & Animation Deliverables......................................................................75Characters.......................................................................................................75Statics..............................................................................................................76Animations.......................................................................................................772D Art (HUD/Menu/Particle/Textures) Deliverables.........................................78Sound Effects Deliverables..............................................................................82Music Deliverables...........................................................................................85Cutscenes/Pre-rendered scene Deliverables..................................................86

Technical Document......................................88Milestone Deliverables..................................89Development Environment............................97System Architecture......................................97

Game Engine – Flow Chart..............................................................................97

Game Engine..................................................99Context Module Description.............................................................................99

Page 6: CC- Doof N' Dash - Production Document - Final

Module Breakdown......................................102State Manager...............................................................................................1033D Gameplay.................................................................................................1032.5D Gameplay..............................................................................................105Player.............................................................................................................105HUD...............................................................................................................107Camera..........................................................................................................107Terrain Manager............................................................................................109Terrain Loader...............................................................................................110Field...............................................................................................................111Object Manager.............................................................................................112Doof...............................................................................................................112Momma Doof.................................................................................................114AI...................................................................................................................115Scent Trail......................................................................................................116Bounding Volume..........................................................................................117Render Manager............................................................................................118Scene Manager.............................................................................................120Particle Manager............................................................................................121Shader Manager............................................................................................122Texture Manager...........................................................................................123Mesh Manager...............................................................................................124Font Manager................................................................................................125Input...............................................................................................................126Events............................................................................................................128Loader............................................................................................................129Error...............................................................................................................131Sound............................................................................................................131

Memory Map.................................................134Code Review Plan........................................135Integration Plan............................................136Asset Pipeline...............................................139Asset Naming Conventions........................140Testing Plan..................................................142Game Folder Hierarchy................................148

Page 7: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 1

DESIGN DOCUMENT

Page 8: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 2

Game CharterVision Statement

Chimeric Creations' objective is to create a unique game of the highest quality that raises the standard for final projects at Full Sail University. The entire team has agreed to devote 100% of their available time to meeting this goal. The team will strive for these goals while communicating ideas, opinions, problems and risks in a completely transparent manner throughout the lifecycle of the project. Every team member is required to accurately and honestly communicate their needs and issues as well as give accurate time estimates in regards to completing assigned tasks to the Internal Producer. All team members are made to understand that the work hours agreed upon in this documentation belong to the team as a whole. It is at the Internal Producers discretion as to how to allocate and delegate tasks and assignments within this time frame. All team members should understand that they will only be working on the tasks assigned to them. Once the assigned task is completed, they are to notify the IP and a new task will be assigned. Individual team members are not permitted to work on tasks that are not included within the Internal Producers schedule. The individual team members are expected to stay within scope with all aspects of their code as well as follow all coding standards established by GP Games and the Technical Lead.

The game that the team will be making is called "Doof N’ Dash" and is a 3D Action/Hunt & Capture title planned to operate on the PC platform. The game’s core mechanics are derived from and inspired by; The Legend of Zelda: Twilight Princess, Crazy Taxi, and Jambo Safari. The goal of the game is to capture as much prey as possible within the set amount of time and claim victory, thus becoming remembered among the top ten best players of all time. This game will be unlike any other game that has been created during final project because of its unique combination of fun features, combined with its Cartoony artistic style that will leave fans of Warner Brother’s cartoons reminiscing about their favorite classics. The team will attempt to set the bar high in order to challenge each individual team member, leaving room for the opportunity to learn new methods and processes throughout the project, and apply them as often as possible. The potentially large scope of this game will require each team member to devote a majority of the next five months to creating the highest quality game they can possibly produce.

Meeting Schedule

Minimal Meeting DaysMeetings will take place 5 days a week, Monday through Friday unless otherwise specified by the External/Internal Producers.

Page 9: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 3

Pre-Production February

GPP Production

March GPA APD GCE

April GP1

May GP2

Post-Production June

GP3

Saturdays will be on reserve for Q/A, and extra work time. On Sundays, the entire team will be on call in case of emergency or crunch time, for example: a broken build before turn-in. All relevant information will be noted during these meetings and documented in a Turbo Team document and posted on alienbrain for the EP’s approval.

Code Reviews: Will be done consistently as the project progresses. After working together for a few weeks the team has found that the best process to review code is to review it as it get integrated. In the event that the team is suffering because of this policy, a weekly code review will be implemented.

Code Freezes: Code freezes will be scheduled throughout the project. All code freezes will be implemented and properly enforced less than three days before a turn-in. The build should be stabilized and reviewed according to the respective M/S acceptance. If the current build is acceptable, the IP/Tech Lead will make a label for turn-in. The programmers can continue working at the Internal Producers discretion.

Q/A Reviews: The internal producer will be performing all main quality assurance duties. Q/A will be constantly be playing the game in its present state. There will be two sequential steps in the Q/A process that every individual must adhere to.

1. The owner of the task is to test the code for bugs. Does the code function? Is it doing its most basic purpose without crashing or causing any more issues?

Page 10: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 4

2. It will then be passed to the IP to test for design functionality. The IP will base the percentage completed off of how well it meets up to the pre-determined completion criteria.

Page 11: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 5

Where and when will meetings take place?

Meetings will take place for the next five months in the respective lab room that the IP checks out for the team to utilize. In the event that the IP is not able to acquire a room to work in, the team meetings will take place at John Den Adel’s or Adam Lis’ apartments for the next five months. Typically, meetings will begin at 5PM and run until 10PM on class days and 11AM-9PM on non-class days. Team members are expected to be on time for every meeting. There are exceptions to being tardy; however, these are left to the discretion of the Internal Producer.

Be aware that all late/absent team members, whether excused or not, will be documented in the Turbo Team Meetings. Team members must notify the Internal Producer via phone call/voicemail one hour prior to the start of a meeting if they are going to be late. 

How will meetings be conducted?

Meetings will begin at either 11AM or 5PM depending on whether or not it’s a class day. The Internal Producer will start by reviewing the most recent Turbo Team. Turbo Teams will be reviewed and updated on a daily basis in order to ensure that the project schedule is still accurate and to ensure that all tasks are properly delegated. Turbo Teams should not last more than 30 minutes. Once the team has been briefed, the Internal Producer will begin first, discussing the previous day’s goals and whether or not they were met to the degree of excellence that is expected of all members of Chimeric Creations.

Next, the Internal Producer will mediate a discussion revolving around the previous day's goals as well as risks, and introduce any recent problems the developers or artists are having in regards to technical, design or gameplay. The team will spend a short period of time brainstorming and discussing solutions. Daily goals will be established and discussed for the next turbo team meeting. The meeting will adjourn with a relatively quick Q&A session in order to ensure that everyone is on the same page. Tasks will be delegated accordingly and the time, as well as the location, will be set for the next meeting. The remaining time is reserved for group work sessions including a one hour break for dinner as well as optional two half hour breaks in between.

What is the goal of having these meetings?

The main goal of every meeting is to address the prior days turbo teams and to openly discuss any road blocks or issues that are occurring during development. Another important goal of the meetings is to ensure that everyone walks away with a clear understanding of what their next task is, how they should go about completing it, and what the acceptance requirements and expectations are.

Page 12: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 6

What is the Maximum Time Limit for a meeting?

The maximum time limit for team meetings is ten hours. If there are any remaining questions, the appropriate lead will sit down with the individuals involved and attempt to resolve the issue. All other team members should continue working on the tasks assigned to them.

What are the requirements for these meetings?

During Turbo Team meetings all team members are required to keep their laptops closed unless otherwise instructed by the Internal Producer. Cellphones should be set to vibrate in order to minimize interruptions and distractions. Phone calls are not permitted during meetings unless in the event of an emergency or during the designated break times. If this rule is violated, you will be documented. If there are any questions, please raise your hand to allow everyone a chance to speak. Please be prepared to take simple notes, on paper, when something is discussed and is pertinent for you to remember! 

During work sessions however many of these rules are fairly lenient and detrimental to the teams well being. A few weeks into the production process it is evident that the individuals on this team do not need to be babysat. They get their work done and strict rules and constraints are not necessary at this point for work session times. If the event arises that work is not getting completed during this allotted time than strict rules and policies will be implemented and enforced.

Page 13: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 7

Hours Worked per Week

A capacity plan has been constructed in order to maximize the efficiency of the team. Each team member is expected to work 50hrs per week on their tasks. This does not include contingency time, Q/A time (20% of maximum capacity) and meeting time (roughly 2.5 hours per week).

What is the maximum number of hours allowed to work per week?

The maximum number of hours allocated for a “normal” work week is 60 hours. During team development crunch times, the schedule can changed based upon the discretion of the Internal Producer, and you may be asked to work up to 70hrs a week for a period of time. All team members will be prepared to put in long hours throughout the course of this project.

Page 14: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 8

Important Key Points: Always CC your leads and Internal Producer   with any project related

emails/material. Be on the lookout for opportunities to utilize the amazing pool of resources

around us at Full Sail. Ask questions, contact your old professors! If you’re going to be late, or you have a serious emergency, please call the

Internal Producer and inform him. Please try to refrain from contacting others to inform him for you. It’s unprofessional and important communication points can be lost in the process.  

When Things Go Wrong

How will the team know an emergency has arisen?

All team members are expected to be on call during reasonable hours. Reasonable hours constitute 10AM till 11PM. Team members will not be contacted unless there is truly an emergency and there is a desperate need for the individual member. The IP will do all in his power to prevent this from happening. However, please recognize your responsibility to the team. 

What is the protocol to inform all members of an emergency?

In the event of an emergency, for example, a broken build before turn-in, the Internal Producer will contact each person individually. If, for any reason, the IP is unavailable, it is the leads’ responsibility to contact the team.

What steps will be taken to reduce risks involved with an emergency?

All team members are also expected to act responsibly outside of class. Responsible is defined by the team as a manner that does not put your availability and commitment to the project at risk. For example, drag racing your team members home is not a good idea. If you; god forbid get into an accident or get arrested we will be down a team member and the scope of our game will be significantly decreased while the workload will increase!

Page 15: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 9

Decision-Making Process

How will the team make decisions regarding game design, technical design and implementation?

All important decisions related to design will be made via a democratic voting process. If there are serious qualms with the decision, the individuals who had the issue will be asked to defend their reasoning. If their reasoning is valid, the team will reassess the decisions and see if it can be tweaked, until people can come to an agreement. In regards to technical design and implementation, the technical lead will be a consultant in regards to any decisions that need to be made. However the Internal Producer will have the ultimate power of approval.

What is the ultimate time limit for making decisions?

Most decisions will be required to be made in less than thirty minutes. However, in the event that there is a really important decision to make, and an immediate resolution cannot be decided upon, then the issue will be left till the next day in order to discuss any possible solutions. This second session of decision making should not last more than thirty minutes.

What is the process for a decision resulting in a stalemate?

In the event of a stalemate, the ultimate decision will be left to the Internal Producer. 

Rules of Conduct

What behavioral standards are expected of each team member during team meetings, work sessions, etc?

All team members are expected to act in a professional manner and make decisions based upon what is best for the group, not what is best for them. Professionalism as defined by the team includes cell phones on silent, no answering phone calls and raising your hand to allow everyone to speak.

1. Behavioral Standardsa. Proper Hygieneb. No outside Games During Meetings. Only Our Game may be

played during a meeting/work session for Completion of a Scheduled Task

c. Arrive On Time to Meetingsd. No Habitually Lazy Behaviore. Honestyf. No Walking Out of Meetings without Informing the IPsg. Respect Each Other

Page 16: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 10

2. Process for Dealing with Deviationa. The first two times a member fails to abide to the rules of conduct, it

will be recorded by the Internal Producers, and they will inquire about the problem.

b. After the third time, the External Producers will be made aware of the issue and will be given documentation of the issue by the IPs.

c. Should a situation arise, the Internal Producers may separate team members, remove disruptive team members from meetings and otherwise exercise their best judgment in dealing complications that may affect the project, the well being of team members or personal and university property.

What process is used if any standards are not met by any team member?

In the event that a team member does not meet the standards set by the Internal Producer, the IP will have a private discussion with the individual. The issue will then be documented in the Turbo Team. If a member violates these standards on a regular basis, the Internal Producer will set up a meeting involving both the internal and external producer and the individual in question. The Internal Producer and External Producer will come to a mutual agreement as to how to deal with the individual in question.

Team Roles

Administrative Roles

Project Lead: Daniel Attella

The project lead will be responsible for establishing the schedule, as well as delegating tasks, to the entire team. The project lead should also be responsible for ensuring that the overall vision of the game is consistent and fully developed. All Q/A duties fall on the project lead as well. One of the biggest responsibilities of the Project Lead is to play test the game as a whole and individual feature in order to identify deviations from the completion criteria established in this document and the schedule.

Technical Lead: Steve Serafin

The Technical Lead is responsible for ensuring that the documentation and delegation of all technical aspects of the project as a whole is completed correctly. Also, the Tech lead should establish coding standards for the entire team to follow, obtain accurate estimates from all team members in regards to technical tasks, and communicate these estimates to the Internal Producer. Other tasks that the technical lead is responsible for is the oversight of the core game engine as well as the proper creation and use of the software architecture of the game.

Page 17: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 11

Asset Lead: Omar Khan

The Asset lead serves as the main liaison between the artists and the programmers. All communication going to or from the artists/programmers should be passed through the Asset Lead. Other duties include the facilitations and creation of importers and exporters, as well as assist in the design and creation of rendering systems. The asset lead is also responsible for overseeing the implementation of asset-loading as well as animation systems.

Design Lead: Jorge Rodriguez

The Design lead is responsible for overseeing the design of levels as well as the use of scripting systems and its utilization of the camera, sound, and animation systems within the level. The core job of the design lead is to ensure the overall game contains a high level of playability and consistency.

Art Lead: John Den Adel

The Art Lead is responsible for the oversight and creation of all visual elements. The core role of the art lead is to ensure the consistency of all visual elements throughout the creation of the game. The art lead should be in constant touch with the asset lead in order to ensure proper rendering and loading within the game world. The art lead should work with the asset lead in order to communicate with the programmers.

Quality Assurance Lead: Daniel Attella

The Quality assurance lead is responsible for spearheading the bug identification and resolution process with the assistance of Test-Track Pro. The Q/A Lead is also responsible for delegating bugs to various team members and ensuring their resolution within the allotted amount of time.

Technical Roles

ProgrammersReinol Orta, Omar Khan, Jason Dietzel, Jorge Rodriguez, Patrick Moscova, Adam Lis, Arnold Mendez, Eric Tjader, Steve Serafin

ArtistsJohn Den Adel, Michael Johnson

Page 18: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 12

Technical Systems

Rendering: Steven Serafin

Responsibilities include the overall rendering engine, handling culling, sorting, blending, and all effects the game requires.

Animation: Omar Khan

Responsibilities include integration of smooth skinned animations.

Artificial Intelligence: Jorge Rodriguez

Responsibilities include implementing behaviors and path finding of our NPC’s.

Collision: Eric Tjader

Responsibilities include implementing algorithms for bounding volume collisions and any subsequent collisions.

Sound: Arnaldo Mendez

Responsibilities include implementing FMOD/Wise sound engines.

Tools: Adam Lis

Responsibilities include an animation exporter, level exporter, and static mesh exporter. The animation exporter’s primary function is to handle skinning animation. The level exporter will save out the game world, positions of level objects, and any triggers we need. The static mesh exporter is responsible for saving out a non-animating model.

Camera: Reinol Orta

Responsibilities include basic creation and implementation of a third-person 3D camera.

HUD/Interface: Patrick Moscova

Responsible for ensuring that the feedback the user receives from the game is consistent and accurate.

Particles/Effects: Eric Tjader

Page 19: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 13

Responsibilities include implementing the particle engine that handles creating and updating the particle effects used in the game.

Gameplay: Adam Lis

Responsibilities include implementing level design and behavior. 

Menus: Jason Dietzel

Page 20: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 14

Charter Sign off Sheet Name Signature DateDaniel Attella ____________________________________________

John Den Adel ___________________________________________

Jason Dietzel ____________________________________________

Michael Johnson __________________________________________

Omar Khan ______________________________________________

Adam Lis ________________________________________________

Arnaldo Mendez __________________________________________

Patrick Moscova __________________________________________

Reinol Orta _____________________________________________

Jorge Rodriguez __________________________________________

Page 21: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 15

Steven Serafin ___________________________________________

Eric Tjader ______________________________________________

Internal Producer: _________________ ______

Executive Producer: ________________ ______

Art Director: _____________________ ______

Page 22: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 16

Interactivity Summary

Doof N’ Dash is an arcade style game where the player takes control of a hungry, silly looking T-Rex dinosaur named Dash the Dino. The player navigates the dinosaur through a semi-open world level consisting of multiple paths that intertwine. The level is designed to resemble a canyon, with some of the paths in the level having different environmental aspects. The games environment consists of prehistoric forested areas as well as small open fields.

Scattered throughout the level are doof bird nests. These nests allow the player to capture the scent of the relative doof bird. When the scent has been obtained by the player, then the player may activate Tracking mode, where the player’s view gets reduced by half, allowing the player to view the scent trail that will lead them to their prey. Once the player encounters the prey, it will run, BloodLust mode will be activated, where the player must keep the prey centered on the screen while it moves left and right.

While the player is hunting for prey, there is a chance that a giant doof bird, known as Momma Doof, will appear. If Momma Doof appears, then the game perspective switches to 2.5D, and the player now has to try to escape Momma Doof, while avoiding hazards that are similar to those found in the previous level.1

1 The 2.5D level perspective change, as well as the Momma Doof appearing have been cut from the final game due to time restraints.

Page 23: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 17

GoalsMain Goal of the game:

Obtain the highest score in the game based upon the amount of prey captured within the given time limit.

Goals while chasing the prey: Locate a doof bird nest to obtain the prey’s scent. Follow the scent trail to locate the prey.

o Prey must be located within 15 seconds or the scent trail disappears

Start chasing the prey. Get within 6 feet from the prey. Capture the prey and obtain the points.

o The prey must be captured within 15 seconds or it will outrun the player

Goal while fleeing from the Momma Doof: Avoid obstacles and hazards that are presented to you along the way.

Successfully escape Momma Doof’s pursuit.2

2 This aspect of the game was not able to be put into the final version.

Page 24: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 18

Interface While player is on main menu:

The player can cycle through the options in the main menu by either pressing the up and down arrow keys on the keyboard, or using the W and S keys on the keyboard, or by moving the mouse over the desired selection.

The current option selected by the player will be highlighted with a green color. There will also be floating dino prints next to the current selected item.3

As different menu items are selected, the text will scroll to one side of the screen and fade away, while new items are slid back onto the screen and faded in

3 No floating dino prints, the menu options are highlighted

Page 25: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 19

The player might select any of the following options from the main menu:o Play: sends the player to the main game.

o Options: sends the player to the options menu, where he can change music, SFX volume, and game duration.4

o High Scores: sends the player to the high scores screen, where he can see the top scores.

o Credits: sends the player to the credits screen for this game.

4 Game duration has not been included, however shadows and tutorial options as well as mouse sensitivity has been implemented

Page 26: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 20

Options are selected by pressing the enter key on the desired selection or by left clicking on the selection.

Controls: Menu Controls

o W/S Button Keys – Change Selection Up/Down Also the arrow keys

o Enter/Left Mouse Button – Select Optiono Escape Key – Previous Menu (when applicable)

Game Controls – Normal Play and Trackingo WASD – Move Playero Right Mouse Button – Rotate Camerao Left Mouse Button – Sniff Nests and activate trackingo Spacebar – Jumpo Shift Key - Sprinto Escape Key – Pause Game

Game Controls – BloodLust Modeo WASD – Move Playero Spacebar – Jumpo Left Mouse Button – Pounce on Doofo Escape Key – Pause Game

Game Controls - 2.5D Fleeing Sequenceo AD Keys – Move Player o Spacebar – Jumpo Escape Key – Pause Game

Pause Menuo W/S Button Keys – Change Selection

Also the arrow keyso Enter/Left Mouse Button – Select Optiono Escape – Resumes Game

Page 27: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 21

Gameplay interface:

When the player is in the world searching for a nest their screen will look like the picture above.

At the top left corner of the screen there is a timer, this timer indicates to the player the time remaining in the game.

At the top right corner of the screen there is a display of numbers. The numbers represent the current score that the player has obtained.

Also, the bottom right corner of the screen the player will see a filled bar. This bar, known as the “hunger meter” indicates to the player how hungry is the character at any given moment.

o This bar will also decrease over time.

Page 28: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 22

When the player is in BloodLust mode, a reticule 2 inches in diameter will appear on the center of the screen.

The player may press Esc at any time to pause the game.5

While the game is paused:

When the player presses Esc, the game stops and the pause menu appears.

The pause menu is a semi-transparent screen, allowing the player to still view the game behind the pause message box.

The player can cycle the pause options by using the keyboard arrow keys, the W and S keys on the keyboard, or by using the mouse.

Four options will appear in the pause menu for the player to choose, these options are: Resume, Options, Main Menu and Exit game.

The current option selected by the player will be highlighted in a green color.

To change volume, SFX volume, or the gamma intensity of the screen the player can select options to make adjustments to these settings.

If the desired action of the player is to return to the main menu, then he can choose the main menu option which will take him to the main menu.

To completely quit the game the player must choose the exit game option. To go back and keep playing then the player can choose the Resume option, which will take him out of the pause and into the game.

5 Also on the bottom left of the HUD there is a stamina meter. During play various other feedback mechanisms have also been implemented to further notify the player as to what is happening at the present moment, such as clear indications that the player has lost time, or gained points, as well as arrows to let them know where the nearest birds are.

Page 29: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 23

Interactive Rhythm

As the player is experiencing the game, they should always feel a sense of urgency at all times. We felt that this will give the player a constant rush of adrenaline throughout their play-through of the game. During BloodLust mode, the game will give the player a heightened sense of speed.

The entire game should last around 15-25 minutes.o The overall time given to the player at the start of play is 3 minutes.

Going into 2.5D mode pauses the overall time. To catch a doof bird should take a player 20 to 30 seconds to complete

both the Tracking and BloodLust phases of the chase.

Game Start

When the game starts, the camera rotates around the player. After the camera has orbited the player, it pans out and sits itself behind the character at an over the shoulder position.6

After the camera has placed itself over the shoulder then a pop-up screen will be displayed to the player. This screen will notify to the player, the objectives of the game.

6 This does not happen automatically, however the user has the option to freely move the camera around as they see fit with the right mouse button depressed.

Page 30: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 24

When the objective screen disappears, the player will gain control of Dash the Dino. The player, then, will see arrows that points towards the different elements of the hud, this arrows contains descriptions of what that element of the hud represents, this indicative is only shown when the player starts the game.

Lastly, it will be shown to the player what key presses he needs to make to make an action, this instructions will only appear the first time that the player interacts with an object, ex: first time that player approaches a doof nest.

Tracking Sequence The player starts off by searching for the nearest doof nest.

The nest is found by the player, and once activated, the player goes into Tracking mode, enabling him to see the path to the doof bird.

o This will severely limit the player’s sight.o The player will have 15 seconds to find the location of the doof bird

from this point.

Page 31: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 25

BloodLust Sequence

Doof is within sight. Game pauses. Camera zooms in towards doof and back out towards player.

o The player will resume control of Dash and, thus, begin BloodLust mode.

Large cursor surrounds the prey. Obstacles constantly try to hinder the player Prey gets further away. Player must keep the cursor centered on the prey for at least 3 seconds.

o If the player keeps the cursor centered correctly the "Jaw" cursor appears.

Page 32: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 26

The closer the player gets to the doof bird, the more the "Jaw" cursor closes in.

Once close enough, the "Jaw" cursor changes into a green color to indicate a successful pounce attack.

The player presses left mouse button and pounces on his prey.o The camera will orbit to a side view of the player, in order to get a

clear view of the actual pounce

After the pounce, the game goes into an animation showing a scuffle between the dinosaur and the doof.

After the scuffle, the game will show the dinosaur picking his teeth.7

Case of unsuccessful catch:

The dinosaur pounces but falls short. The dinosaur slows down for 2 sec to

catch its breath. Player's score increments

7 This has not been implemented to the full version of the game

Page 33: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 27

o If the player successfully catches the doof bird 470 points will be awarded.

o If the player catches the prey within 15 seconds, the remaining time will be added to the game’s timer.

o Every time there is a successful catch, the hunger bar will be completely refilled.8

o Also there is no time increment or refill of hunger bar in case of an unsuccessful catch.

How the Player Marks Progress

The player will get a sense of their progress as they slowly begin to clear the level of all the scent clouds representing the number of prey in the world. There will be an indicator, or tally, representing how many doof birds remain in the level. The faster the player is able to capture the prey, the more points they are potentially able to accumulate.

When the player does catch a doof bird, their hunger meter will refill, allowing the player to continue hunting. The player will be notified when they are doing badly, when the hunger meter is starting to get pretty low, and is nearing death due to starvation.

The player will also have chance meetings with the Momma Doof. The player will have to evade this angry entity in order to survive and continue hunting. By successfully completing these sequences, the player is awarded bonus points.

Every time a prey is captured, the hunger meter refills, giving the player more time to continue the hunt, and also marking progress.

After every successful chase scene, the player's score increases, giving the player a sense of their progress over time.

The more doof birds the player captures, the greater the risk of Momma Doof appearances.

8 The hunger meter does not fill up fully, but is filled up depending on what bird has been captured. Also 10 second are added only if the player has successfully captured all 3 birds, otherwise there is no time increment.

Page 34: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 28

Detailed Design Breakdown

Front End Flow Chart

Page 35: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 29

Game Flow Chart

9 Any references to Momma Doof are no longer valid in this chart.

Page 36: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 30

Game Start Up: GPGames logo Studio name

o Animation of Short Lived Studios logo Falling tombstone from the sky being planted into the ground

and written on the front of the tombstone is the studio’s name

o The player cannot progress beyond this logo before the three second period

Occurs the first time Doof N’ Dino is startedo The player does not need to provide input to go to the next screen

once the three second period is over Team Logo

o An image of Chimeric Creations logo will be put on the screen

The details of its length and player restrictions are similar to what is written above

Game Engine screen10

o An image of the game engine that we have created for the game ISIS Engine

Our own in house engine that the team has created specifically for this game

Title Screen

o Title Screen showing Doof N’ Dino splash screen with the text “Press Enter” flashing on the screen

10 We have removed this screen from the game. We also have a loading screen appear around this time depicting Dash chasing a doof and then being chased by a momma doof. This is the only appearance of the Momma Doof in our game.

Page 37: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 31

Main Menu Screen:

During any action for this menu, there is a ringing sound similar a tiny bell for each item when you switch over to them.

The main menu will be represented by an illustration of Dash the Dino’s cave.

o Each menu option will be highlighted clearly when it is selected There will be text boxes that will slide off the screen and fade

out, while new options, if available will fade in and glide back on the screen.

The options include:o Start game

Play the gameo Options Menu: This selection will contain

Page 38: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 32

Volume Control for: Sound Effects Background Music

Gamma control that controls the gamma of the game and the game only

Default button that will return all settings back to normal Mouse sensitivity slider Accept button to save any changes Cancel button to allow players to revert changes to the

settings of their last save11

o Credits: This will display game credits

This will include a list of all the members of Chimeric Creations that contributed to the game, a reference to Visual Studios, Maya, Photoshop and Wwise.

o Exit End the game

Pause Menu: Pause menu will include:

11 We have also included options for a tutorial along with shadows being turned on or off.

Page 39: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 33

o Resume button – continue the gameo Exit button – exit to the main menu

If this button is pressed, a confirmation screen will appear that will ask if the user really wants to quit

o Option Buttons – Goes back to the options menuo Main Menu – This will return the player back to the main menu

screen. There will be a confirmation screen asking the player if they

really want to return to the main menu

Page 40: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 34

Glossary of Terms

Doof Nests – While Dash is not using his Tracking mechanic, there will be nests on the floor giving the player a notification that there may be potential prey nearby

Blood Lust – When Dash is in the process of chasing the doof birds12

Jump - Dash leaps into the air, in order to avoid obstacles. Pounce/Attack – A reticule appears when Dash is chasing his prey. The

reticule is represented by two jaws that close in on the prey the closer the player gets to the target

Sneak – Dash tip toes towards an unsuspecting doof bird. The player is caught if he doesn’t stop movement when the doof bird turns to see if someone is there.

Nest & Food with flies – This is the indicator that will show the player when to activate Tracking mode and reveal the scent trail to his or her prey.

Doof – Dashs’ prey whom constantly taunts him. Dash the Dino – The main character of our game. He is a hungry T-Rex and

is looking for food!

Momma Doof – The giant mother doof bird that attempts to beat Dash for attacking her babies.13

Tar Pit - black muck on the ground of the Fleeing Sequence, which will slow the player down drastically.

Tree-Bridges - makeshift bridges made from fallen trees lying over hills. Once the player walks over them, the tree splits forcing the player to cross rapidly.

Tracking – After Dash sniffs the doof nests, this will begin Tracking mode, where the only way to see the scent trail is by having this activated. This will narrow the view range down for the player.

Boulders - large rocks that bring the player down to a complete halt if collided with. Appears in both the "chase" and "fleeing" sequences.

Watering hole - popular area for doofs to gather and drink. Tall grass - harder to see doof birds, common place for their nests.  Rock - This object serves to get in the way of the player. It will also add to the

aesthetics of the level. Static Tree - This object serves to get in the way of the player. It will also add

to the aesthetics of the level. Sideways Tree - This object serves to get in the way of the player. It will also

add to the aesthetics of the level.

12 Now considered to be Chase mode and not Blood Lust due to playful nature of the game13 Removed from the gmae

Page 41: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 35

Vines - This object serves to slow the player down. It will also add to the aesthetics of the level.

Nest - This serves as the starting point for scents to find prey. Once the player sniffs one of these, they will go into Tracking mode and then follow a scent trail.

Scent Trail - This object serves to show the player where the prey is. Bush - This object is just for aesthetics. Prey - This object serves to feed the player and give him points. Pitfall - The purpose of these obstacles are to slow the player down heavily Mountain - This object serves to keep the player inside the level. 

Death – Happens when the hunger bar is completely empty. In this case the player loses the game.14

Doof Bird Graze- Doof bird uses graze AI. This means the dodo will move randomly in a set area imitating the behavior of animals while they are eating grass.

Doof Bird Flee – Doof bird uses fleeing AI. This means that it will turn around in the opposite direction that the player is coming and its going to try to run away as far as possible from the proximity of the player.

Doof Bird Look-Around – Doof scans the area for danger.15

Momma Doof Chase – chases after Dash16

Player Caught by Momma Doof - If the Dash gets within 6 feet of Mamma Doof, she will swipe Dash with her wing. Dash will then go flying toward the camera. The player will spawn back in his cave (original spawn point at the beginning of the game) and will not be awarded any points for failing.17

14 There is no more death, once the player runs out of hunger meter, they will resume play with a penalty of 10 seconds removed from the game clock15 Not implemented in the final game16 Not implemented in the final game17 Not implemented in the final game

Page 42: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 36

Characters

Page 43: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 37

Dash the Dino

Dash the Dino. This is the main character of the game that the player is in control of.  PC.

Brief Description

Dash the Dino is the main predator of the game and is the entity that the player is in control of during their time playing the game. The player is able to control Dash the Dino when they are trying to explore the environment, searching for their prey.

He is able to find the scent of the prey he is searching for through the use of his keen sense of smell to track down the prey's location. Also, Dash is fast enough to avoid larger predators and has the abilities to pounce and jump, not only around and over obstacles, but also in order to assist him in capturing his prey.

Visual Design

Dash is a short “runt” of a T-Rex. He has an unusually large head that causes him much grief when on the hunt.

Fictional, iconic dinosaur with resemblance to Tyrannosaurus. Orange hide with yellow underbelly and red stripes on back. Highly exaggerated features: Large flat/broad head and feet, small round body, and tiny arms. Disproportionate eyes, one noticeably larger than the other, two toes per foot, nails on front and back. Large, dull teeth protruding from overbite. Dull, bone colored nails, blue eyes, light purple tongue. Approx. 5ft tall, 6 ft long and 3ft wide.

Page 44: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 38

Behaviors Jump BloodLust Tracking Pounce/Attack Death

AttributesBase Speed Speed Formula Acceleration

Walking 2.0 ft/s (base) - turning * 0.1 – (slope) * 0.75 3.5 ft/sRunning 5.0 ft/s (base) - turning * 0.3 – (slope) * 1.25 3.0 ft/s

Range Hits to kill Base Precision

Precision Formula

Penalty to speed on miss

Pounce 2 – 5 ft 1 100% (base) – Distance * 0.1

Speed – (1.0 – precision) * 0.2

Page 45: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 39

CollisionSpeed Penalty

Fall Time Respawn Time

Object Velocity

Pit N/A 0.3 secs 0.2 secs N/ATree (speed) –

(Tree length) * 0.1

N/A N/A ( Dash’s speed) * ( 1 – Tree length)

Rock (speed) – (rock mmass) * 0.01

N/A N/A N/A

Page 46: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 40

The Doof Family

The Doof family are the current residents of where Dash has decided to make his new home. There are four types of doofs that inhabit the neighborhood. The good news is that he will have plenty to eat! The bad news is that these buggers are fast and agile! (Except for the fat one…) The doof birds are the players’ primary goal. The player must capture these birds to keep their hunger meter full and survive the allotted time frame!

Normal Doof

Brief Description

Doof is a relatively unintelligent bird and is the only type of prey that Dash the Dino is able to successfully capture consistently. The only way the doof birds were able to survive this long without going extinct, was the ability for this bird to run, and run fast! 

Visual Design

Doof is a short, somewhat fat bird, similar in look to the long extinct Dodo bird. The doof birds will also have one eye that looks quite blind. 

Fictional, iconic ground bird similar to dodo. Blue/grey feathers, white underbelly feathers, yellow legs and beak. Exaggerated features: Round body, long slender 'S' neck to round head with overly large hooked beak. Round beady eyes, one small one large. Upturned tail (turkey-like) and red pointed tongue. Size: 2 ft tall, 2 ft long, and 1 ft wide.

Page 47: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 41

Behaviors Graze Flee  Look Around

AttributesBase Speed Speed

FormulaAcceleration Rate of Turn

Walking 0.5 ft/s (base) – turning * 0.05

3.5 ft / s2 Pi / 1.5 Rad / s

Running 3.2 ft/s (base) – turning * 0.15

1.5 ft / s2 Pi / 2 Rad / s

Skinny Doof Brief DescriptionThe Skinny Doof is the fastest of the four doofs. He is a bit taller, more slender and can run much faster than his cousins! He forgets to slow down when he comes up to a turn. Therefore he does not take turns very well and sometimes slips up in doing so.

Page 48: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 42

Visual DesignThe Skinny doof will be a bit taller than the normal doof and much more slender. He will have similar colors and markings. The only actually difference is his speed and agility.

Behvaiors

Graze Flee Stumble

AttributesBase Speed Speed

FormulaAcceleration Rate of Turn

Walking 0.8 ft/s (base) – turning * 0.07

4 ft / s2 Pi / 2 Rad / s

Running 4.2 ft/s (base) – turning * 0.17

2 ft / s2 Pi / 3 Rad / s

Fat Doof Brief DescriptionThe fat doof is the glutton of the doof bird family. He hordes coconuts and when no one is looking eats much more than what he needs! Coincidentally he has gained a lot of weight and has become a very easy target for Dash. The tradeoff comes in that he takes turns very well and can out juke Dash any day of the wekk!

Visual DesignThe fat doof should be shorter and much fatter than the normal doof. He will have similar markings and colors but easily identifiable from his short and stocky build.

Behaviors

Graze Flee

AttributesBase Speed Speed

FormulaAcceleration Rate of Turn

Walking 0.4 ft/s (base) – turning * 0.03

2 ft / s2 Pi / 1 Rad / s

Running 2.2 ft/s (base) – turning * 0.13

0.5 ft / s2 Pi / 0.5 Rad / s

Page 49: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 43

Golden Doof Brief DescriptionThe Golden doof is the most unique and rare of the species. He has evolved to the point of self awareness. He understands how special he is… Unfortunately he let it go to his head. The rest of the doofs could not care less if Dash catches him or not. They won’t miss his smug, beak in the air attitude.

Visual DesignThe golden doof has a similar body structure to the normal doof. Only his feathers are golden and has extra tail feathers that compliment his eccentric attitude!

Behvaiors

Graze Flee

AttributesBase Speed Speed

FormulaAcceleration Rate of Turn

Walking 1 ft/s (base) – turning * 0.05

4.5 ft / s2 Pi / 1.5 Rad / s

Running 4.5 ft/s (base) – turning * 0.15

2.5 ft / s2 Pi / 2 Rad / s

Page 50: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 44

Momma Doof 18

A large, powerful, doof bird who is furious at the player for eating her kind. NPC.

Brief DescriptionMomma Doof is a large doof bird. As Dash is hunting around the forest for a quick meal, there is a chance that Momma Doof might be doing the same.

Visual Design Angry momma of all the doofs that the dino has been eating. She

measures:o 5 feet wideo 10 feet long from end of beak to backo 10 feet tall from foot to head.

Behaviors Momma Doof Chase – chases after Dash Player Caught by Momma Doof - If Dash gets within 6 feet of Mamma Doof,

she will swipe him with her wing. Dash will then go flying toward the camera. The player will spawn back in his cave (original spawn point at the beginning of the game) and will not be awarded any points for failing.

Attributes

Slope is the radians of the hill Momma Doof is climbing.

Base Speed Acceleration Speed FormulaWalking 2.5 ft/s 2.5 ft / s^2 (base) – (slope) *

0.5Running 6.5 ft/s 1.0 ft / s^2 (base) – (slope) *

0.8

18 Momma Doof is not in the final game

Page 51: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 45

Levels and Maps

3D Environment Level Design Visual Design

Doof N’ Dash has a semi-open world, meaning that the player can roam freely within the constraints of our world. Visually, the world is a mix of canyon look with a mix of forest. The level will also contain rocks, tall grass, and watering holes, that can potentially be a deterrence for the player.

Goal The overall goal of this level is for the player to take control of Dash the

Dino, in order to catch as much prey as possible within a certain amount of time.

The player will achieve this goal by running to a Doof Nest, sniffing it, and thus making Dash go into Tracking mode.

Using Tracking, the player will follow the scent trail from the nest to find their prey.

Once they find their prey, the player will then be in BloodLust mode, dodging rocks, trees, and pitfalls, and even meteors in order to catch it.19

Level Travel Whenever Dash moves, he is in a constant run of 5 feet per second. He will be able to move in a variety of different directions very similar to a

third person shooter When he's running, his steps will be loud and clunky. He will be dodging rocks, jumping over and dodging trees, jumping over

pitfalls on the trails, sniffing nests, chasing prey, and even dodging meteors.

He will collide with everything on the map. This includes rocks, trees, mountains, nests, and water.

Scale The dimensions of the whole map are 210 Dash the Dino’s(630 feet) in the Z axis, 140 Dash the Dino’s(420 feet) in the X Axis, and 40 Dash the Dino’s(100 feet) in the Y axis. 

Environmental Interactions - Behaviors Player to Doof nest interaction

o Player comes within 5 feet from the Doof Nesto A message appears on screen letting the player know to press the

left mouse button to sniff the nest 19 Considered to be Chase mode and no longer referred to as Blood Lust

Page 52: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 46

o Dash the Dino goes from standing animation to sniffing animation.o While playing the sniffing animation, a sound of fast inhalation is

played.o Player goes into Tracking mode (See Glossary)o Scent trail appears.

Player to upright tree interactiono Crash sound effect is playedo Upright tree cracks in half along the X/Z plane.o Tree fades away.o Player’s velocity is decreased by 5%.

Player to horizontal(fallen) tree interactiono Crash sound effect is played.

o Upright tree cracks in half along the Y axis.20

o Tree fades away.o Player’s velocity is decreased by

5% Player to Rock interaction

o If player runs into Rock Player stops

o If player grazes rock Player slides off the side of the

rock the player grazed Player to Pit interaction

o Player falls down pito “Trailing scream” sound effect is playedo Player appears 1 foot ahead in the direction dinosaur was facing

when the player fell down in the hole in the first place with no velocity.

o Player is flickering.21

Player to Tree(Static geometry) interactiono If player runs into tree

Player stopso If player grazes tree

Player slides off the side of the tree the player grazed Scent trail to Tree(Static geometry)

o Scent trail follows a path that intentionally avoids static geometry20 This interaction is not found in the final game21 There are no deep pits found in the level, there are only tar pits

Page 53: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 47

Ambient Environmental Aspects/Objects in the Level Ambient Sounds:

As the player walks around the world there will be various ambient sounds and environmental objects in the distance.

Birds tweeting. Roaring dinosaurs. Sound of running water.

Since weather is dynamic, the environment is variable to change. We are going to need various different weather effects.

Regular sunny weather. Heavy rain weather. Thunderstorm with heavy rain

Ideally we will have wind that effects how the trees sway.

There will also be fields of grass found in various portions of the game.

Birds:

DD_SFX_Birds.wav

Various sound of birds singing.

Dinosaur:

DD_SFX_DinosaurRar.wav

Roaring dinosaur sound.

Water:

DD_SFX_Water.wav

Sound of running water

Time If the player runs straight across the map it would take him 3 minutes to

get from one side of the map to the other, but due to the winding trails the actual number is unpredictable.

Trying to find your first nest or trying to find one after a chase should take 10-20 seconds or more depending on what the player is doing.

Following a scent trail to a prey should take 8-14 seconds.

Page 54: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 48

3D Environment Map

Nest and Prey Spawn Locations

This is an example of how a prey would spawn. When the player sniffs a nest, the prey will have a chance to spawn anywhere in the blue highlighted area around that nest (not on other objects and mountains). If we can't make it completely random in that area, we still have set points in that area that we can use. Every Nest in the map uses this mechanic.

Page 55: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 49

Pitfall Locations22

Rock and TreesVariation 122 No Pitfalls found in the final game level

Page 56: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 50

Variation 2

Variation 3

Page 57: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 51

Tarpits

Everything with GridGrid squares are equivalent to the size of Dash the Dino

Page 58: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 52

(Key on next page)

Page 59: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 53

Game Walkthrough – 3D Verbal Map Enter level First thing player notices is a bar on the lower left hand side of the screen with

the words "Hunger" written on top of it. This bar is steadily decreasing. On the upper left hand side of the screen a red timer shows 3'00 and begins

to count down. Player walks out of the cave and is blocked off by a tree to his right and a tar

pit to his left The player gets a running start and easily leaps over the tar pit. Directly after, the player notices a nest with flocking flies over it in front of him. Player slowly approaches the nest and a dialogue box pops up saying "press

left mouse button to get scent" Player presses the left mouse button and Dash the Dino begins to sniff out

the nest. The screen's edges turn red and the player's sight decreases. A scent trail

appears to guide the player. Tracking mode has been activated. The player turns left, following the scent trail. A large boulder is in the middle of the player’s path. Going around the left

side of the boulder, the player notices its prey grazing off in the distance The player approaches its prey and the game pauses, zooming in towards

the doof. The camera pans out behind the player.

BloodLust mode has now been activated, which represents the actual chase mechanic.23

The player witnesses a burst of acceleration and moves in to catch its prey. A large dotted circle surrounds the doof which has now begun to flee. The doof runs in between a boulder and a tree. The player follows but is

slowed up by a tar pit on the left. This gives the doof an opportunity to gain some distance. The player persists and leaps over a small pit that obstructed its path. The player focuses the large dotted circle on the doof for three seconds and a

set of fangs appear surrounding the prey. The fangs indicate Dash’s ability to pounce on the target, closing in on

the doof the closer Dash’s gets. Once the fangs turn green, Dash is ready to pounce on his target. The doof dashes to its right, avoiding another boulder in front of it. The player goes around the left side of the boulder and leaps over a tar pit.

23 Considered chase mode

Page 60: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 54

o By taking a “risky” shortcut, the player is much closer to its prey.o The Fangs turn green.

A dialogue box appears, instructing the player to press the left mouse button.o The player presses the left mouse button.

Dash pounces on the doof and the dust cloud animation begins.

A few seconds later, the dust clears and Dash emerges victorious, using a bone as a toothpick.24

24 This animations is not found in the final version of the game, instead was replaced by a slow motion camera rotation effect to highlight a successful final capture only after all three birds have been caught

Page 61: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 55

Side Scrolling Level Design 25 Summary When the player catches a doof, there is a chance Momma Doof will spawn taking you into this level. Here the player will have to run away from Momma Doof for 15 seconds. The player will have to jump over rocks and trees and avoid tar pits if he hopes to survive.

If the player manages to survive, he will be taken back to the 3D worldo The player will spawn back at the same location they left from

The player fails if Momma Doof catches up to them.o If she does catch you, she knocks you into the screen, and you

have to start from the cave in the 3D Worldo The doof nests that were already captured will not respawn, forcing

the player to have to rush back to their original location in order to continue the hunt

Goal The player successfully evades the Momma Doof if he is able to outrun

Momma Doof for 15 seconds. The player will need to jump over rocks, trees, and other obstacles to

make sure he doesn't slow down, thereby increasing the risk of being caught by the Momma Doof.

Interface

In the 3D world, when Momma Doof spawns, the game will freeze for about 5 seconds during which the camera will rotate behind you to show Momma Doof. When the camera is looking at Momma Doof a squawk sound will play and you will be transitioned to a loading screen.

25 Completely removed from the game, there is no 2.5D level found, as well as no Momma Doof

Page 62: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 56

The loading screen will have Momma Doof chasing Dash, and will have the controls on it. After we finish loading, we won’t immediately transition the player to the game, instead he will be indicated that he has to push enter to continue when he’s ready.

Here the player will be told what he has to do in this level, which is basically run away.

This is basically Dash running away from Momma Doof.

Here we can see that the player will have the game timer paused in top-left corner of the screen, and under it will be a 15 second timer denoting how long the player has remaining to evade the Momma Doof.

Page 63: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 57

If the player manages to survive for 15 seconds, they will be shown a loading screen, with the controls for the 3D world again. Once they are ready, they can press enter and continue the game from wherever he left off.

Interactive Rhythm The player should be instilled with a sense of urgency during this portion

of the game. He really doesn’t want to get caught by Momma Doof. Typically this will last 15 seconds if the player properly evades the

Momma Doofo If they outlast this timer, the player is successful in this evasiono It can prematurely end before this if they get caught.

Since the level is a loop, meaning the end is connected with the beginning, and since the player can spawn at nearly anywhere on the level it will always be a unique experience.

How the Player Marks Progress The player will know they’re advancing when they get farther away from Momma Doof. If they’re doing badly, Momma Doof will get closer and closer until she eventually hits you.

Level Travel

Whenever Dash moves, his speed is based on the slope he’s running against.

Page 64: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 58

He will start on the left side of the screen and run to the right. When he's running his steps will be loud and clunky. He will be dodging rocks, jumping over pitfalls on the trails, and running

from Momma Doof. He will collide with everything on the map. This includes rocks, trees, and

mountains.

Scale This level can be looped, so theoretically its size is infinite in the X-axis,

but without the loop, this level is 75 Dash the Dino’s long It will be 30 Dash the Dino in the Y-Axis.

Environmental Interactions - Behaviors

When Dash

Runs into Rocko When player runs into rock in 2.5D “Fleeing” sequence player will

come to a complete stop. If player runs on top of a tree trunk, the tree breaks and is no longer a

solid object. If player runs into a tar pit, Dash will slow down based upon how deep he

is in the tar. Vertical force will pull him out of it, by jumping, or he will sink due to gravity.

Attributes

Speed Formula Depth Rate Max Depth

Tar (speed) – (depth) * 0.1 (Dash’s vertical velocity) * 0.1

3 ft

Rock (velocity) – (velocity) * (Direction to Rock)

N/a N/a

Ambient   Environmental Aspects/Objects in the Level Similar to 3D level in terms of ambient objects in the level.

The ambient sound effects are going to be the same as in 3D. You will still be able to hear the sounds of birds, dinosaurs, and water in the distance.

This level will have the same weather effects in the background as the 3D level. If it was raining when you got into the level, it will be raining when you are fleeing.

Page 65: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 59

Ambient Sounds:

Birds:

DD_SFX_Birds.wav

Various sound of birds singing.

Dinosaur:

DD_SFX_DinosaurRar.wav

Roaring dinosaur sound.

Time The player must evade Momma Doof within the given time limit. This limit

is set to 15 seconds.

2D Environment Map

One square is the size of Dash.

Page 66: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 60

Game Walkthrough – 2.5D Verbal Map The player hears a loud squawk. Before given a chance to run away, Momma Doof catches up with the player. A loading screen appears with a scaled 2D animation of Momma Doof

chasing Dash the Dino on the lower left hand side. The loading screen also gives the player a description of the controls for the

Fleeing sequence. The player is now in a 2.5D level. A dialogue box appears, explaining to the player how they must flee from

Momma Doof for 15 seconds to escape capture. Momma Doof appears on the left hand side of the screen and a timer appears

under the currently paused timer and flashes '15. The player begins to flee. The first obstacle a player encounters is a tar pit. Hesitating to jump, the

player gets caught in the tar, slowing his speed for a few seconds. Now more attentive, the player quickly jumps over a rock and widens the gap

between Momma Doof and themselves.

Page 67: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 61

The player runs up a sharply angled hill and leaps over a tar pit and a rock. To the player’s surprise, a large gap immediately follows the rock.

The player falls down the large opening and after a second, spawns on the other side.

Using a tree leaning away from the player at a 30 degree angle to their advantage, the player runs over it, avoiding the tar pit directly below it.

The player leaps off the head of the tree and lands on a large boulder a few yards forward.

With the height of the boulder, the player leaps over another large tar pit and lands on a smaller boulder.

The timer counts down to ‘0 and Dash runs off the screen, signifying that the player has successfully avoided Momma Doof.

Page 68: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 62

Pounce Sequence

The pounce sequence is split up into 3 phases and will be the ‘attack’ of the BloodLust mode portion of the game. While trying to complete the objectives below, the player must continue dodging obstacles while maintaining the appropriate distance from the prey.

Phase 1: During BloodLust mode, the player must reach a minimum distance of 20

feet from the prey, where a large circular reticule (200 screen pixels in diameter) will pop up on the center of the screen.

If the prey is further than 20 feet from the player, the reticle fades away and disappears until the appropriate distance is reached again.

The player must keep the prey within the circular reticule for 3 seconds for phase 2 to begin.

If the player fails to keep the prey within the reticle for the allotted amount of time, the 3 second timer will reset. The player also has a 0.25 second window of time to get the prey back within the reticule.

Phase 2: Inside of the circular reticle, a set of dinosaur jaws will appear. The jaws will open and close based on how far away the player is from the

prey. The farther the player is the more wide open the jaws will be. The closer the player is to the prey the more open the will be.

Once the player reaches 5 feet away from the prey, the jaws will turn green.

When the jaws are green, the player must left click to initialize the 3rd and final phase of the pounce.

During the entire lifetime of phase 2, the player must keep the prey within the reticle, and maintain a distance of <20 feet from the prey.

If the player left clicks and the prey is not in the center of the reticle and or clicks while the jaws are not green, the player will fail the pounce, which in turn causes the player to be snared (half their speed) for 2 seconds, and must restart the entire pounce process again.

The player has a 0.25 second delay to get the prey back within the reticule before having to restart.

Phase 3: (Successful pounce) A cut scene will appear with the player and prey wrestling in a big dust

cloud for about 2 seconds. The player will emerge from the dust cloud picking his teeth with a bone. The entire cut scene lasts about 3 seconds.

Page 69: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 63

After the cut scene, the camera will return to a 3rd person perspective and the player will be in roaming mode, successfully completing BloodLust mode.26

Phase 3: (unsuccessful pounce)

The doof hops out of the dust cloud and runs away. The player must now find another nest to sniff.

26 This cutscene has been replaced by a slow motion camera that rotates around the player once they have successfully captured three birds. They must capture all three birds in order to get bonuses.

Page 70: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 64

Game Logic, Algorithms, and Rules Interaction Component Matrix

Inte

ract

ions

Ed(P

lay

er

Doo

f ne

stSc

ent

trai

lD

oof

(Dod

o M

om ma

Tree

(U

prig

Tree

(Fa

llen

Roc

k

(Sta

ti c

Pit

Tree

(St

atic

Ed(Player controlled dinosaur)

1 2 3 4 5 6 7 8 9

Doof nest 1 X X X X X X X X X

Scent trail 2 X X X X X X 10 X 10

Doof (Dodo bird)

3 X X X X X X X X X

Momma Doof

4 X X X X X X X X X

Tree(upright) 5 X X X X X X X X X

Tree(fallen) 6 X X X X X X X X X

Rock 7 X X X X X X X X X

Pit 8 X X X X X X X X X

Tree(Static geometry)

X X 10 X X X X X X X

X = NO INTERACTION

1) Player to Doof nest interactiona) Player comes within 5 feet from a Doof Nest.b) Space bar pop up icon flashes on screen and a sound effect plays.

Page 71: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 65

c) Player presses space bar.d) Dash the Dino goes from standing animation to sniffing animation.e) While in sniffing animation, a sound of fast inhalation is played.f) Player goes into Tracking mode (See Glossary)g) Scent trail appears.

2) Player to Scent trail interactiona) Music and sound effects are muffled outb) Scent trail leads to corresponding doof bird.

3) Player to Doof interaction –After chase sequence( See “Winning/ Losing” section)a) Player catches preyb) Swirling animation is playedc) Chomping sound effect is played.d) Victory animation is played

4) Player to Momma Doof interactiona) In open world.

i) Player collides with Momma Doof.ii) Screen blurs out.iii) Sound effect is playediv) Pseudo-open world music stops.v) A black screen wipe occurs from the bottom of the screen to the top

(1) Screen wipe – A brief description(a) A 2 dimensional black square, the size of the screen, starts from

an off screen coordinate and blocks off the entire screen.vi) Pseudo-open world state is exited.vii) Loading screen is displayedviii) A black screen wipe occurs from the top of the screen to the

bottom.(1) (See ICM section 4.a.v.1: Screen wipe- A brief description)

ix) 2.5D “Being Chased” sequence/state begins.b) In 2.5D Fleeing sequence/state.

i) If player escapes.(1) Victory sound effect is played(2) Screen-camera stops scrolling (3) Screen wipe occurs from left to right

(a) (See ICM section 4.a.v.1: Screen wipe – A brief description)(4) 2.5D “Being Chased” sequence ends(5) Loading screen is displayed(6) Player enters Pseudo-open world state

ii) If player is caught by Momma Doof.(1) Screen camera stops scrolling

Page 72: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 66

(2) “Wacky” sound effect is played(3) Large Swirling animation is played (4) Screen wipe occurs from top of the screen to the bottom

(a) See (ICM Section 4.a.v.1: Screen wipe – A brief description)(5) Player returns to pseudo-open world state

5) Player to upright tree interactiona) Crash sound effect is playedb) Upright tree cracks in half along the X/Z planec) Tree fades awayd) Player’s velocity is decreased by 5%.

6) Player to horizontal(fallen) tree interactiona) Crash sound effect is playedb) Upright tree cracks in half along the Y axisc) Tree fades awayd) Player’s velocity is decreased by 5%

7) Player to Rock interactiona) If player runs into Rock

i) Player stopsb) If player grazes rock

i) Player slides off the side of the rock the Player grazed8) Player to Pit interaction

a) Player falls down pitb) “Trailing scream” sound effect is playedc) Player appears 1 foot ahead in the direction dinosaur was facing when the

player fell down in the hole in the first place with no velocity.d) Player is flickering.

9) Player to Tree(Static geometry) interactiona) If player runs into tree

i) Player stopsb) If player grazes tree

i) Player slides off the side of the tree the Player grazed10)Scent trail to Tree(Static geometry)

a) Scent trail follows a path that intentionally avoids static geometry.

Page 73: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 67

Interaction Component Matrix(2.5D “Fleeing” segment)

Interactions Dash(Player Controlled Character)

Vertical Tree

Rock Pitfall (Horizontal tree above pit)

Tar Pit Momma Doof

Dash(Player Controlled Character)

X X 2 3 4 5

Vertical tree 1 X X X X 6

Rock 2 X X X X X

Pitfall 3 X X X X X

Tar pit 4 X X X X X

Momma Doof

5 6 X X X X

X = NO INTERACTION

1) Player to Rock interactiona) Screen stops scrolling b) Player velocity is decreased proportionate to the slope of the side of the

rock player collides with2) Player to Pitfall(Horizontal tree above pit) interaction

a) “Crack” sound effect playsb) Horizontal tree cracks in half along the world’s Y-Axisc) Horizontal tree splits in two downwardsd) Player falls into pit

3) Player to Tar pit interactiona) “Glop” sound effect is playedb) Player velocity decreases by 10% per second in tarc) Player’s color is blackened by 20%

i) Texture colors become darker(1) i.e. RGB value goes from (100,100,100) to (120,120,120)

4) Player to Mama Doof interactiona) If player escapes.

i) Victory sound effect is playedii) Screen-camera stops scrolling iii) Screen wipe occurs from left to right

(1) (See ICM section 4.a.v.1: Screen wipe – A brief description)iv) 2.5D “Being Chased” sequence endsv) Loading screen is displayedvi) Player enters Pseudo-open world state at position enteredvii)

Page 74: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 68

b) If player is caught by Momma Doof.i) Screen camera stops scrolling

(1) “Smack” sound effect is played(2) Momma Doof plays Smacking animation(3) Player flies toward screen

Page 75: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 69

FAQ:

  Can I change the controls?o      While you cannot change the default controls, we will display and explain them thoroughly so as to ensure a fun and engaging gaming experience.

What happens when I can’t find the doof in Tracking mode?o      The trail disappears and you have to find another nest to get back into blood lust mode.

  Where are the nests?o      The nest are scattered throughout the map. If you search you will find them eventually.

 I can’t seem to catch the doof. What do I do?o      Cut corners and avoid traps. The doof follows a certain path so if you do this you can catch up.

What are those teeth that appear on the screen when I find a doof?o      That is an indicator as to how far away you are from the doof. The farther away the upper jaw is from the lower jaw the farther you are from the doof. When they turn green you are able to capture the doof.

What does the hunger meter signify?o      The hunger meter signifies how long you have till you starve to death. If you let it run out before time runs out you lose.

       See “Winning/Losing”What’s the best method to avoid traps?

o      Looking ahead and timing you jumpsWhy did you call it a doof and not a dodo bird?

o      This was done to give the artists creative freedom and also when you spell “doof” backwards you get the word “food”.

 What do you mean by dynamic weather?o      Dynamic weather is weather that changes on the fly. This adds to the Jurassic/Tropical rainforest theme we are going for.

 Why is there penalty for clicking the jump button too soon?o      This is to stop the player from constantly pressing the button and to get a successful capture/hunt/kill.

How long is a typical playtime of the game?o      The game time is given as a 3 minute timer. However, if the player is able to play well, the average game can last around 10 to 15 minutes.

Who do you expect to play the game?

Page 76: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 70

o      Prospective employers, Fullsail students, Fullsail instructors, and people ages 10 and up.

Who are the characters in the game?o      Dash the Dino, Momma Doof, and doof birds.

Is there a background story behind the doofs and Dash the dino?o      No, because gameplay is a priority and the time constraints we, the development team, have decided not to create a backstory.

How can the player affect the environment?o      The player can knock down trees, and crack already fallen trees.

What platforms will the game be available on?o      This game will be available on PC and the Fullsail arcade machines.

What game mechanics lend themselves to replayability?o      The high score table. With this the player has a goal to attain and a “footprint” to leave.

Where did the idea for the game come from?o      The idea for the game came from a crazy mix mash of Dino Run, Crazy Taxi, and dinosaurs. What we wanted to do was to keep the urgency and pace and add in a bit of a twist.

How is scoring decided?o As of right now scoring is as is in this document. It is, however, subject

to change.

Page 77: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 71

Reference of Key Elements Scoring

Scoring while player is chasing the pray:27

The player scores points depending on accuracy and number of successful catches.

For accuracy the player is awarded 80 extra points, only if the prey was in the center of the dinosaurs jaw.

Every successful catch the player will be awarded 470 points.

Scoring while being chased by Momma Doof There are no points awarded for successfully running away from Momma

Doof.

Total Score: The total score is the score obtained by the end of the duration of the

game or when the player loses all his lives.

Winning/Losing

Winning Condition: The player wins the game by successfully lasting for the duration of the

game (3 minutes).

Losing Conditions: The game ends when the timer has been completely depleted. The game is also over when the hunger meter depletes because of Dash

the dino succumbing to starvation.28

27 If the player is able to successfully capture all three of the doof birds that spawn when the nest has been sniffed, then there will be a score multiplier which will increase up to 4x the normal amount. 28 This has been removed, due to there only being a 10 second time penalty when the hunger meter depletes.

Page 78: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 72

Transitions

Because of the arcade style of gameplay, the only aspect of the game that is saved is the score that the player attains upon completion of the game. This will be saved in a high score portion of the menu.

Transition states:

The loading screen involves our main character, Dash the Dino, depicted in a scaled 2D image chasing a doof bird on the lower right hand side of the screen.

Main menu state to default game state via loading screen

Main menu state to option state, no load screen is involved

Default game state to versus state via loading screen

Default game state to high score state via loading screen

Default game state to main game state via loading screen

High score state to main menu state via loading screen

Page 79: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 73

Camera Transitions: When the game begins, the camera rotates around the player and ultimately

goes into a 3rd person view behind the player

When the player locates his prey, the game pauses and the camera zooms in to the prey and then quickly zooms back out to the 3rd person player view and gameplay resumes.

When the player goes into the sneaking sequence, the camera goes into an isometric view for the duration of the event.

When a player goes into the Fleeing sequence, the camera goes into a 2.5D view where the player moves only along the x-axis. 

Rewards

The ultimate reward in Doof N’ Dash is to achieve the highest score. The player will be rewarded throughout the game by being granted points depending on the amount of prey that the player obtains.

Page 80: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 74

Art and Production Design Asset list is also found as a separate xcel file available on Alienbrain.File name is _CC.AssetList.xlsx3D Art & Animation Deliverables

Characters Dino

Fictional, iconic dinosaur with resemblance to Tyrannosaurus. Orange hide with yellow underbelly and red stripes on back. Highly exaggerated features: Large flat/broad head and feet, small round body, and tiny arms. Disproportionate eyes, one noticeably larger than the other, two toes per foot, nails on front and back. Large, dull teeth protruding from overbite. Dull, bone colored nails, blue eyes, light purple tongue. Approx. 5ft tall, 6 ft long and 3ft wide.

o CC.3DM_Dino.mbo CC.2DT_Dino.png

Doofs (normal, fat, skinny, golden)

Fictional, iconic ground bird similar to dodo. Blue/grey feathers, white underbelly feathers, yellow legs and beak. Exaggerated features: Round body, long slender 'S' neck to round head with overly large hooked beak. Round beady eyes, one small one large. Upturned tail (turkey-like) and red pointed tongue. Approx. 2 ft tall, 2 ft long, and 1 ft wide.

o CC.3DM_Doof.mbo CC.2DT_Doof.png

Momma Doof29

Angry momma of all the doofs that Dash has been eating. Five times (5x) larger than a normal doof in scale.

o CC.3DM_MommaDoof.mbo CC.2DT_MommaDoof.png

Environment Levels CC.3DM_MainLevel.mb CC.2DT_MainLevel.png CC.3DM_SideScrollLevel.mb CC.2DT_MainLevel.png

Statics Rocks

Rock 1 - Large dark grey boulder with protruding section.29 Removed from the game

Page 81: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 75

o CC.3DM_Rock.001.mbo CC.2DT_Rock.001.png

Rock 2 - Small light gray rock with pebble nearby.o CC.3DM_Rock.002.mbo CC.2DT_Rock.002.png

Trees Tree 1 - Tall and slender, pale yellow trunk. Big droopy green leaves.

Orange/brown Coconuts. Palm tree like.o CC.3DM_Tree.001.mbo CC.2DT_Tree.001.png

Tree 2 - Shorter, stubbier version of Tree 1.o CC.3DM_Tree.002.mbo CC.2DT_Tree.002.png

Shrubs Berry Bush - Lumpy green bush, brown base, red sphere berries.

o CC.3DM_BerryBush.001.mbo CC.2DT_BerryBush.001.png

Fern 1 - Large, lavender leafy bush.o CC.3DM_Fern.001.mbo CC.2DT_Fern.001.png

Fern 2 - Small, earthy red leafy bush.o CC.3DM_Fern.002.mbo CC.2DT_Fern.002.png

Uniques Nest - Lumpy brown bowl with occasional twigs sticking out in

random ways. Broken shell bits. Shells are off-white with blue speckles.o CC.3DM_Nest.001.mbo CC.2DT_Nest.001.png

Watering Holeo CC.3DM_ WateringHole.001.mbo CC.2DT_WateringHole.001.png

Streamo CC.3DM_ Stream.001.mbo CC.2DT_Stream.001.png

TarPito CC.3DM_ TarPit.001.mbo CC.2DT_ TarPit.001.png

Animations Dino

Dino Idle

Page 82: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 76

o Standing with slight sway/movement. Dino Idle(Turn Right)

o Moving of legs to turn to the right in place. Dino Idle(Turn Left)

o Moving of legs to turn to the left in place. Dino Bored 1

o Looks side to side. Dino Bored 2

o Scratches head with foot. Dog-like. Dino Sniff/Track

o Dino leans down, sniffs tracks. Dino Run

o Standard movement. Dino Sprint

o Movement anim. For chase mode only. Faster and more exaggerated then run.

Dino Jump(Idle)o Jumping in place.

Dino Jump(Run)o Basic jump for overcoming terrain.

Dino Jump(Sprint)o Exaggeration of jump. To be used in chase mode.

Dino Attacko Dino lunges forward snapping jaws shut.

Dino Attack Successo Dino tackles doof resulting in a cartoon fight cloud. When it clears

dino stands tall as he uses a toothpick after a fine meal. Dino Attack Failure

o Dino tackles doof resulting in a cartoon fight cloud. The doof jumps out and runs off. Cloud clears to find dino a bit woozy, he shakes it off a bit and takes off after the doof once more.

Dino BloodLust Failureo Dino trips and stumbles to the ground as the doof disappears down

the trail. Dino Flail

o Dino flailing as he flies through the air and hits the screen.

Doof Doof Idle

o Slightly sways side to side. Doof Bored 1

o Pecks at something on the ground. Doof Bored 2

o Preens feathers under wing. Doof Sprint

o Head down, low pose, wings out.

Page 83: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 77

Doof Jump(Sprint)o Doof jumps into air, flaps wings, and lands.

Doof Dodgeo Jumps into air, flapping, avoiding Dino attack.

Momma Doof30

Doof Wing Smacko Momma Doof swings out with wing to send Dino flying. 

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

Main Menu

The ‘MainMenu’ appears in an illustration of Dash’s cave with him sleeping in the bottom right and a cave opening to the left. Center screen will be five buttons: Play, Options, High Score, Credits and Exit. Hovered text gains a green glow and activated buttons gain a white glow. Options screen contains three horizontal sliders (fx,music,gamma) and a row of buttons: Back, Default, and Save. High Score screen contains list of top 10 scores and a back button. Credits screen contains list of personnel and their roles, scroll bar if needed, and a back button. Exit terminates application and returns user to desktop. All menu transitions are fades with exception of play which fades to black before issuing the loading screen.

Play CC.2DT_Play_Default.png CC.2DT_Play_Hover.png CC.2DT_Play_Pressed.png

Options CC.2DT_Options_Default.png CC.2DT_Options_Hover.png CC.2DT_Options_Pressed.png

Exit CC.2DT_Exit_Default.png CC.2DT_Exit_Hover.png CC.2DT_Exit_Pressed.png

Arcade CC.2DT_Arcade_Default.png CC.2DT_Arcade_Hover.png CC.2DT_Arcade_Pressed.png

30 Removed from the game

Page 84: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 78

Trial CC.2DT_Trial_Default.png CC.2DT_Trial_Hover.png CC.2DT_Trial_Pressed.png

Back CC.2DT_Back_Default.png CC.2DT_Back_Hover.png CC.2DT_Back_Pressed.png

Sound FX CC.2DT_SoundFX_Box.png CC.2DT_SoundFX_Bar.png

Music CC.2DT_Music_Box.png CC.2DT_Music_Bar.png

Gamma CC.2DT_Gamma_Box.png CC.2DT_Gamma_Bar.png

Default CC.2DT_Default_Default.png CC.2DT_Default_Hover.png CC.2DT_Default_Pressed.png

Save Settings CC.2DT_SaveSettings_Default.png CC.2DT_SaveSettings_Hover.png CC.2DT_SaveSettings_Pressed.png

Page 85: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 79

HUD "Time Left" label and number in upper left corner, "Score" label and

number in upper right corner, horizontal hunger meter bar and label in bottom right corner. Moveable jaws cursor during chase, capable of closing vertically. Target ring to appear around doof. Ring glows green when targeting time has passed to achieve lock.

Files CC.HUD_Template.png CC.HUD_No_0.png CC.HUD_No_1.png CC.HUD_No_2.png CC.HUD_No_3.png CC.HUD_No_4.png CC.HUD_No_5.png CC.HUD_No_6.png CC.HUD_No_7.png CC.HUD_No_8.png CC.HUD_No_9.png CC.HUD_No_Colon.png CC.Hunger_Bar.png CC.JawCursorTop.png CC.JawCursorBottom.png CC.TargetRing_Unlocked.png CC.TargetRing_Locked.png 

Page 86: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 80

Sound Effects Deliverables

Sound effects:

NOTE: All the sound effects in this document are meant to be cartoon like.

Run:

DD_SFX_Run.wav

Stomping sound, similar to hitting the ground with a closed fist.

Jump:

DD_SFX_Jump.wav

The sound of wind fluttering through the branches of a tree.

Attacking:

DD_SFX_Attack.wav

The sound of a dog gnawing and crushing a bone, a fierce growling bite.

Pause:

DD_SFX_Pause.wav

Ringing sound similar to that of a Christmas bell.

Changing options in the main menu:

DD_SFX_OptChange.wav

Sound similar to pressing a key in a typewriter.

Colliding with obstacles:

DD_SFX_ObstacleCollide.wav

Crack sound like when a tree breaks fallowed by an yelp of pain.

Falling down a Pit:

DD_SFX_PitFall.wav

Page 87: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 81

Whistling sound of a character falling off a ledge, similar to the sound made in classic Looney Toons cartoons

Close to a Doof Nest:

DD_SFX_Nest.wav

Sniffing sound similar to the ones that dogs make, but more strong in sound.

Reduction of the Hunger Meter:

DD_SFX_HungerDrop.wav

The sound a stomach makes when it is hungry, almost like the grumble of a starving animal's stomach

Refilling the Hunger Meter:

DD_SFX_RefillHunger.wav

Gulping sound that is made in cartoons when a character tries to reduce their fear in a comedic situation.

Change to Tracking mode:

DD_SFX_BloodLustChange.wav

The swapping sound of a sheet of paper when is moved from one side to the other on top of a table.

While in Tracking mode:

DD_SFX_BloodLustMode.wav

Panting sound similar to the sound that a dog makes when he has his tongue outside his mouth.

While reticle is centered in chase mode phase one:

DD_SFX_ReticleCenter.wav

Ding sound equal to the sound of a desk bell.

While teeth are green in chase mode phase two:

Page 88: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 82

DD_SFX_ReticleCenter.wav

Repeated Ding sound like when touching a desk bell repeatedly in a short amount of time.

Timer is about to run out:

DD_SFX_TimerRunOut.wav

Sound used in timer of bombs to indicate the clock proximity to zero.

Doof Bird:

DD_SFX_Doof.wav

Sound similar to a parrot.

Captured doof:

DD_SFX_CaughtDoof.wav

Sound of a strangled parrot trying to speak.

Momma Doof:

DD_SFX_MommaDoof.wav

Sound like an angry screech from a parrot.

Momma Doof Steps:

DD_SFX_MommaDoofSteps.wav

Stomping sound similar to the steps of a giant dinosaurs.

Death:

DD_SFX_Death.wav

Sound of drums while the ambient music fades away.

Ambient Sounds:

Birds:

DD_SFX_Birds.wav

Page 89: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 83

Various sound of birds singing.

Dinosaur:

DD_SFX_DinosaurRar.wav

Roaring dinosaur sound.

Water:

DD_SFX_Water.wav

Sound of running water

  Music Deliverables Game Music:

NOTE: Music file extension subject to change

The music for the game will help to immerse the player in the prehistoric setting, also; it will let us portray the game as an upbeat arcade fun game that anybody can pick and have a blast.

Main Menu Background Music:

DD_ BGM_MainMenuMusic.wav

Main menu screen will have fun upbeat tribal music, which really portrays the prehistoric setting that is used in the game. The music will include drums, bongos, steal, bass and cymbals. It's going to sound fun and childish but it would make anybody that hears it smile.

(Moderato — moderately (108–120 bpm))

Options Menu Music:

DD_BGM_OptionsMenu.wav

Repeated drums sounds similar in tempo and sound to those found in mambo. If the player in the options menu selects or highlights the option to modify the volume of the sound effects, then the drums stops and a cartoon like dinosaur roaring sound will play.

Gameplay Background Music:

DD_BGM_OpenWorldMusic.wav

Page 90: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 84

The open world segment of the game will have upbeat yet relaxing music. It will contain steel drums, bongos, xylophone, and drums.

(Andante Moderato — a bit faster than andante)

DD_BGM_ChaseMusic.wav

The music in the chase segment of the game will be fast paced and dramatic. It will contain brass (trumpets, bugles, etc.), and strings (violin, cello, etc.)

(Allegro — fast and bright or "march tempo" (120–168 bpm))

DD_BGM_SneakMusic.wav

The music in the sneaking segment of the game will be normal pace, completely piano, it will start off abruptly, pause, and start again using the player's movement as an indicator to stop and start.(i.e. When the player stops moving the music stops)

(Adagio – Fun but quiet to give the impression of really been sneaking)

DD_BGM_MommaDoofIntro.wav

The music for the Momma Doof (when it appears in the open world) is slower than the open world background music. The drums are accentuated and keep an even tempo of throughout the duration of the song.

DD_BGM_MommaDoofChase.wav

The music in the "Being Chased" sequence/state of the game is fast paced, upbeat, and urgent. It contains drums, cymbals, bongos, steel drums, and violin. The drums and cymbals accentuated and frequent.

(Presto — very fast (168–200 bpm))

DD_BGM_CreditsMusic.wav

The music in the Credits is moderately slow. The music contains violin, piano, drums, steel drums, and xylophone. The purpose of the credits music is to give the player a sense of accomplishment for completing the game and to also to give prospective employers a positive audio representation of the development team.

(Moderato espressivo — moderately with expression) 

Cutscenes/Pre-rendered scene Deliverables

Page 91: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 85

Cinematics31

Arcade Starto Dino emerges from cave, stretching arms and yawning, then

stretches a leg and moves to ready stance. Arcade Complete

o Dino lying reclined against tree with hand on full belly. Arcade Failure

o Dino is lying on back, eyes closed, with flower held in hands.

31 None of these cinematics made it to the final version of the game

Page 92: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 86

Technical Document

Page 93: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 87

Milestone Deliverables

POC (50% core)Core Gameplay Core gameplay is defined as follows:

Main Menu Stateo Playo Exit

Free Roam Stateo The Player will be able to free roam

around the 3D environment as “Dash”, the main character.

o The Global Timer will begin at 3:00 and countdown to 0:00. In which all variables are reset and the game state loop is set back to the start.

Nest Locationo The player will be able to locate and

interact via left click with a single Doof Nest.

Bloodlust Modeo Once the Doof placeholder is located

the chase state is initiated. Dash will run faster in the chase state

(Explained below) Capture State

o Once within 20 ft of the doof placeholder (in the form of the Dash model with a different texture) the player will be notified to left click.

o The player has successfully captured the doof.

Loop Game Stateo The game state will transition (explained

below) to free roam and offer the player option to repeat the track and capture process.

Transitions Main Menu to Load Screeno The screen will fade out of the menu and fade

into the placeholder load screen. Load Screen to Free Roam

o Once the program is loaded, the load screen will fade out and Free Roam will fade in.

Page 94: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 88

Free Roam to BloodLusto Once the player interacts with the doof nest,

the worlds “Chase!” will appear at the top center of the screen.

BloodLust to Free Roamo Once the player has successfully captured the

doof, the word “Chase!” will be removed from the screen.

Free Roam to Exit

o Upon Pausing the game with ‘Esc’ the pause menu will appear over the main game screen

o Resume and Exit will be the only options available.

o Player selects exit = prompts the player… “Are you sure you wish to quit?”

o Player selects exit = The game returns to the main menu

Main Menu Inputo Keyboard

W – Up S – Down Enter – Select Esc. – Exit

o Mouse Left Click - Select

Menu Selectionso Play

Select to play the gameo Exit

Exits the game

Pause Menu Inputo Mouse

W – Up S – Down Enter – Select Esc -Resume Game

Menu Selectionso Resume

Will resume gameplayo Exit

Will exit the game to the main menuLoad Screen Load Screen (Placeholder)Description

The Load Screen will consist of a black screen.Loading word(Placeholder)

Page 95: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 89

The word “Loading” will flash while the game is loading up

In the event that the game freezes, the loading world will stop flashing.

Free Roam The player will be able to complete the entire gameplay session without a crash.

Inputo Mouse

Left Click – Interact with a Nest/Capture the doof placeholder

Right Click – Will allow the player to mouse look

Upon approaching a doof nest (5 feet away) the player will be notified via a text pop-up stating “Left Click to Interact with Nest”

o Keyboard W – Forward S – Backward A – Turn left D – Turn Right Will allow the player to move around

the environment. Free Roam State

o The player will be able to complete the entire gameplay session without a crash

Mouseo Upon approaching a doof nest ( 5 feet away

) the player will be notified via a text pop-up stating “Left Click to Interact with Nest”

Keyboardo Will allow the player to move around the

environment

BloodLust Mode Artificial Intelligenceo Steering Behavioro Once the BloodLust mode has been

initiated, the word “Chase!” will be displayed at the top center of the screen for the entire duration that the player is initiated in BloodLust mode

AI Stateso Idle

This state is what the doof is in prior to the activation of BloodLust.

o Fleeing Chase is initiated and the doof

placeholder begins to run away.

Page 96: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 90

o Captured Successful capture

o Running/Failed Capture Unsuccessful capture

Collision AABB to AABBo This will check Dash’s collision against

other AABB objects Frustum to AABB

o The frustum will check for collision with environmental objects to identify which ones will be rendered.

Ground Clampingo Ground clamping will be functional which will cause

the player to collide with the terrain. So Dash does not pass through the ground

Camera Hard Attacho The Camera will be hard attached to Dash

over his head at a 55 degree angle. Mouse Look

o In order to identify what is in the players immediate vicinity mouse look will be functional for POC.

o Mouse look is activated while holding the Right Mouse button

o The camera will snap back to original position when the button is let off.

HUD Built in DirectX font will be used to display basic HUD elements. Global Timer(Placeholder)

o Will appear at the top left of the screen as 3:00

o Will count down to 0:00 Score Counter(Placeholder)

o Will appear in the form of 0000 at the top right of the screen

Hunger Meter(Placeholder)o Will appear as 60 seconds and will

count down to 0. It will appear at the bottom right of the screen.

Chase Timer (Placeholder)o Will appear in the top center of the

screen as 15 seconds for chase. The counter will count down to 0. Once it reaches 0 the player has lost that doof and must find the nest again and start

Page 97: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 91

from free roam mode.

Feature Fragment 1 (100% Core)Blood Lust Mode Camera

o Screen boarders turn translucent red coloro All color saturation increases

HUD Global Timeo 3 Minutes to Win/Loseo Displayed as: 00:00 (min:sec)

Score Counter Hunger Meter

o Depletes over timeo Fills up completely when Doof is captured

Hunt Timero Only appears during Chase Mode

Character: Dash o Animation Blendingo Idle to Runningo Running to Idleo Running to Sprintingo Sprinting to Running

Character: Doof o Modelo Textureso Weightso Animations

o Idle (Standing still/swaying)o Sprinto Pounceo Finish Runo Finish Jump

o Animation Blendingo Idle to Sprintingo Running to Scuffle

Shaders o Toon/Cel Shadingo Per Pixel Lighting

Music o Main Game Background Musico Main Menu Background Music

Feature Fragment 2 (B&C Features)Main Menu High Score Chart

Optionso Mouse Sensitivity

Pounce Mode o Left Click

Page 98: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 92

o Camera Orbito Scuffle Animationo Scuffle Sound Effect

Character: Dash o Animationso Sniffo Idleo Turning

o Animation Blendingo Idle to Jumpingo Jumping to Idleo Sprinting to Jumpingo Jumping to Sprinting

Character: Doof o Animationso Idle (Pecking the ground)o Jump

o Animation Blendingo Sprinting to Jumpo Jump to Sprinting

Win Condition o Display 10 most recent high scoreso Did the Player have a high score?

o Display Players score and ranko Player Input (3 Letter Initials)

Keyboard Arcade controls

Environmental Objects o Tar Pito Texture

o Tree1o Breakable through collision

o Horizontal Treeo Tree2

o Modelo Textureso UVso Weightso Collision

o Rock2o Modelo Textureso Collision

o Tree3o Modelo Textureso UVso Weightso Collision

Page 99: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 93

o Rock3o Modelo Textureso Collision

2.5D Environment/World o Modelo Textureso UVo Collision

2.5D Obstacles o Pito Tar Pito Vertical Tree

Character: Momma Doof o Modelo Animations

o Entranceo Runningo Smacking

AlphaBitmap Fonts o Kerning

Camera o Mouse Looko Right Mouse Button activates Look Mode

Character: Dash o Animationo Winning Animationo Losing Animation

Win Condition o Play Dash’s Win Animation

Lose Condition o Play Dash’s Lose animationMusic o Alternative Music for Main Menu + Main Game

StateSound FX o Footstep SFX

o Menu selection changed SFX

BetaEnvironmental Objects o Dynamic/Falling Tree

o Logo Modelo UVso Collision

o Busho Modelo UV

o Tree 4 + 5

Page 100: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 94

o Modelo Textureso UVso Weightso Collision

o Rock 4 + 5o Modelo Textureso Collision

Particles o Flies over nestso Feathers around nestso Dust

o Kicked up by characters running through dirt/sand

o Tar o Kicked up by characters running through

tar

Camera o Mouse Wheel Zoom in and outo Avoidance

o Little to no geometry between the camera and Dash

Shaders o Motion Blurring

Page 101: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 95

Development Environment Compiler:Visual C++ 2008 by: Microsoft

Version: 2008

3 rd Party API’s and Exporters WWISE by: Audiokinetic

Version: v2009.3 Used to implement sound effects and music for Doof N’ Dash. OGG sound formats

DirectX 9.0c by: Microsoft Version: 9.0c, SDK Version: February 2010

cvXporter by: Chad Vernon Version: 1.3 Used to export animations from Maya into the DirectX X File format.

3D Modeling ToolsMaya by: Autodesk

Version: 2009 Used to create models, levels, and animations

Photoshop CS3 by: Adobe Used to create the textures

Source Control PackagesAlienbrain by: Avid Technology

Version: 9.0.0.10674

System Architecture Game Engine – Flow Chart This defines the top-most level of the game. Window creation is handled in the file “WinMain.cpp” which creates the main Game class. The responsibilities of this class are to initialize, update where applicable, and shutdown the following modules. Upon shutdown of these modules and the main Game class itself, the

Page 102: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 96

window will be destroyed and the main process and all subsequent threads will end.

Page 103: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 97

Game Engine Context Module Description

State Managero Calls to 3D Gameplay

Enter() Exit() GetInput() Update() Draw()

o Calls to 2.5D Gameplay Enter() Exit() GetInput() Update() Draw()

o Calls to Render Manager BeginScene() EndScene()

3D Gameplayo Calls to Player

GetPosition()o Calls to Doofo Calls to Camera

SetTarget() SetMode() SetObjectMatrix() SetOffset()

o Passes data to HUD SetBloodLustState() SetGameState()

o Passes data to Object Manager Update() AlterTime() GetInstance()

o Calls to Terrain Manager GetQuadrant() Move()

Player 2.5D Gameplay

o Calls to Player GetPosition()

o Calls to Momma Doofo Calls to Camera

SetTarget() SetMode()

Page 104: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 98

SetObjectMatrix() SetOffset()

o Passes data to HUD SetFleeingState()

o Passes data to Object Manager Update() AlterTime() GetInstance()

o Calls to Terrain Manager GetQuadrant() Move()

Doofo Calls to AI

BuildNavigationPath() Momma Doof

o Calls to Terrain Manager CheckCollision()

AIo Passes data to the Scent Trail

BuildNavigationPath() HUD

o Calls to 3D Gameplay GetBloodLustState() GetGameState() GetScore()

o Calls to 2.5D Gameplay GetFleeingState() GetScore()

o Calls to Render Manager Render2DTexture()

Camera Object Manager

o Passes data into Scene Manager AddObject()

o Calls to Mesh Manager GetMesh() GetMeshBV()

o Calls to Particle Manager CreateEmitter() GetEmitterData() PlayEmitter() StopEmitter() RemoveEmitter()

Scene Managero Calls to Render Manager

GetObjectList() Render Manager

o Calls to Shader Manager: Initialize()

Page 105: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 99

Shutdown()o Calls to Particle Manager:

Initialize() Shutdown() Update()

o Calls to Texture Manager: Initialize() Shutdown()

o Calls to Font Manager: Initialize() Shutdown()

o Calls to Mesh Manager Initialize() Shutdown()

Shader Manager Texture Manager Particle Manager Mesh Manager Terrain Manager

o Calls to Field GetQuadrant()

o Calls to Terrain Loader StreamQuadrant() CancelQuadrant() GetCriticalSection()

Field Terrain Loader

o Passes data into Field GetQuadrant()

Scent Trailo Calls to Particle Manager

CreateEmitter() GetEmitterData() PlayEmitter() StopEmitter() RemoveEmitter()

Page 106: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 100

Module Breakdown With gameplay in mind, the following system modules are outlines below, sorted logically by the influence they have on the main game architecture. Indentations indicate a sub-module of the parent system, and in many instances the indentations denote derivation. Defined in each is a summary of the modules functionality, a flow chart to indicate any sub-systems and their relationships, data members that will control the functionality of that system, and the public interface functions that other modules can interact with.

Page 107: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 101

State Manager The state machine’s basic responsibilities include functionality for switching between states. Included is functionality to let the states transition independent of each other, allowing for many special effects.

Public MethodsReturn Name Parameters DescriptionCIsisStateManager* GetInstance None Returns the singleton

instance for the manager

Bool Initialize None Placeholder Void Shutdown None Shuts down the

manager and all held states, releasing any memory

Void AddState CIsisBaseState* _pSttate,Bool _bRemoveAllStates

Adds a state to the stack, possibly removing all existing states

Void RemoveState CIsisBaseState* _pState Removes a specific state from the list

Void Update float dt Updates all states in the list

Void Draw None Draws any active state or any state transitioning on or off the screen

Accessors& ModifiersReturn Name Parameters DescriptioniListLite<CIsisBaseState* >

GetStateList None Returns the list of states

CIsisBaseState* GetCurrInputState None Returns the current state taking input from the user

Module AuthorSteven Serafin3D Gameplay Purpose:The 3D Gameplay state will be responsible for sending update and input calls down the hierarchy of modules that will also require the calls while keeping track of the current state for the game and chase states.

Page 108: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 102

Methods:Return: Name: Parameters: Purpose:void Enter void Initialize and set

data members. void Update const float,

constbool,constbool

Call successive update hierarchy

void Draw void Call render hierarchy in correct order

void GetInput void Call successive input hierarchy

void Exit void Shutdown what it controls

Void HandleEvent CIsisEvent* _pEvent

Handles Input from binding

eBloodLustStates GetBloodLustState Void Returns the state of blood lust mode

eGameStates GetGameState Void Returns the state of the game

Unsigned int GetScore Void Returns the score of the game

Void SetBloodLustState eBloodLustState val

Sets the state of Blood Lust mode

Void SetGameState eGameStates Sets the state of the game

Void SetScore Unsigned int Sets the score of the game

Module Authors:ReinolOrta, Adam Lis, Eric Tjader, Jason Dietzel

Page 109: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 103

2.5D Gameplay Purpose:The 2.5D Gameplay state will be responsible for sending update and input calls down the hierarchy of modules that will also require calls while keeping track of the current state for the fleeing sequence.

Methods:Return: Name: Parameters: Purpose:void Enter void Initialize and set data

members. Start the fleeing sequence.

void Update const float, constbool,constbool

Call successive update hierarchy

void Draw void Call render hierarchy in correct order

void GetInput void Call successive input hierarchy

void Exit void Shutdown what it controls

Void HandleEvent CIsisEvent* _pEvent

Handles Input from binding

eFleeingState GetFleeingState Void Returns the state of the fleeing mode

Unsigned int GetScore Void Returns the score of the game

Void SetFleeingState eFleeingState Sets the state of the fleeing mode

Void SetScore Unsigned int Sets the score of the game

Module Authors:ReinolOrta, Adam Lis, Eric Tjader

Player The Player module is responsible for the state transition of Dash in free roam, tracking mode, blood lust mode, and fleeing mode. It will hold a pointer to dash in order to easily change its state based on things like collision or the state of the game, and also to update the animations.Return Name Parameters DescriptionVec3f GetPosition None Returns the current position of

the character

Page 110: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 104

Void Update Const float _dt Updates the character, and updates dashes animations.

Void Draw Void Calls draw on the pointer to Dash.

Void Input Void Handles user input.Void ChangeGameType Unsigned int

eStateChanges the player’s state between 3D and 2.5D state.

Module Authors:Omar Khan. Eric Tjader, Arnold Mendez, Patrick Moscova

Page 111: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 105

HUD The Hud(Heads Up Display) is responsible for keeping track of, and rendering, information relevant to gameplay. The HUD will disappear during the 2.5D gameplay, and will reappear and be displayed as the standard HUD in 3D gameplay. The only element of the HUD that remains in 2.5D gameplay is the time remaining for the player to be able to avoid Momma Doof.MethodsReturn Name Parameters Descriptionnone HUD(Default Constructor) none Called when an

instance of the class is created

none HUD(Destructor) none Frees all memory associated with the HUD

none Initialize none Loads in all images/fonts associated with the HUD

none Update float –fElapsedTime Decreases global hunger and updates all text associated with the HUD

none Render none Displays information relevant to gameplay to the screen

none Shutdown none Releases all texture data associated with the HUD

Module AuthorPatrick Moscova

Camera PurposeThe purpose of the camera in our game is to keep track of what to render on the screen. To do this is will need a frustum test. It will be hard attached to the player most of the time, except in special scenarios and special effects. Some examples are: slowly rotating around an object, or a quick zoom to another object. The player will also have the functionality to rotate the camera around him, but it will turn back slowly to a hard attach when he’s done.

Page 112: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 106

MethodsReturn Name Parameters DescriptionVoid Initalize NoneVoid Update float fDeltaTime,

D3DXVECTOR3 Target

Update the camera based on the current state.

Void Shutdown None

Accessors& ModifiersReturn Name Parameters DescriptionVoid SetMode unsigned int

uiCamModeSets the cameras mode to the mode passed in for special camera effects. (Ex. FreeRoam, Spotted Doof)

Void SetObjectMatrix CIsisMatrix* pMat This will be the player most of the time, but it can be set to any matrix. It keeps track of the original matrix with a pointer.

Void SetTarget D3DXVECTOR3 Target

Used for special camera effects.

Void SetOffset D3DXVECTOR3 Offset

Sets the offset of the camera from the position of its follow object.

Module AuthorReinol Orta

Page 113: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 107

Terrain Manager The terrain manager will use a specialized loader that would be streaming on a different thread from a single file. The data will be sent to the object manager to use for ground clamping.

MethodsReturn Name Parameters Purposebool Initialize void Starts streaming processvoid Update floatvoid Shutdown void CleanuptQuadrant* GetQuadrant unsigned int ,

unsigned intReturns the address of the quadrant at that position. Returns NULL if non existant

tQuadrant* GetQuadrant D3DXVECTOR3& Returns the address of the quadrant at that position. Returns NULL if non existant

void GetQuadrantsInView iListLite* Adds all quadrants in view to list

tQuadrant* GetCurrentQuadrant void Returns quadrant Dash is in

void Move D3DXVECTOR3& Changes grid to center around

Module AuthorEric Tjader

Page 114: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 108

Terrain Loader Purpose:

The loader will load individual quadrants from a single file. Specialized loading since each quadrant is in a certain section of the file. It will handle a 2D static grid that will be used dynamically.

Methods:Return: Name: Parameters: Purpose:void StreamQuadrant tQuadrantLarge* Passes quadrant to

loadvoid CancelQuadrant tQuadrantLarge* Cancels quadrant

from loadCriticalSection* GetCriticalSection void Returns the address

of lock

Module AuthorEric Tjader

Page 115: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 109

Field The field will keep a grid of the terrain quadrants loaded into memory. It will use static grid dynamically to not use new and delete every change on the grid.

MethodsReturn Name Parameters PurposeType* GetQuadrant unsigned int,

unsigned intReturns the address of quadrant

Type* GetQuadrant CIsisVector3* Returns the address of quadrant

void Move CIsisVector3* Moves grid to have parameter as input

void Render void Render emitters on screen

Module AuthorEric Tjader

Page 116: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 110

Object Manager The object manager is responsible for updating all currently active objects in the game. It is also responsible for testing collision with other objects in the system, as well as the frustum. Also built in is functionality to control the global time applied to objects for their update, allowing for effects such as time slow.

Public MethodsReturn Name Parameters DescriptionCIsisObjectManager* GetInstance None Returns the

singleton instance for the manager

Bool Initialize None Gives good valuesVoid Shutdown None Shuts down the

manager and all held objects, releasing any memory

Void AddObject CIsisBaseObject* _pAddMe

Adds an object into the list

Void RemoveAllObjects None Removes all objects from the system

Void Update float dt Updates all objects in the list

Void AlterTime eGlobalTimeState _state,float _duration

Change the current global time state

Assessors& ModifiersReturn Name Parameters DescriptioniListLite<CIsisBaseObject* >

GetObjectList None Returns the list of objects

Module AuthorSteven Serafin

Doof The doof module defines the doof (primary objective in the game). It derives from IRendererListener. This module will contain all the elements necessary to portray

Page 117: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 111

the doof to the screen visually as well as in behavior. This module derives from the base class isisBaseObject.

MethodsReturn Name Parameters DescriptionVoid Draw None Function Draws

the Doof to the screen,

Void Update Float Updates the doof state and position in the world.

Void Destroy None It unloads all the allocated memory for the Doof.

Void Create None Loads any needed memory for the Doof object

Void CheckCollision None Function is in charge of checking collision for the Doof object.

Float GetVelocity None Returns the current velocity value of the Doof.

Void SetVelocity Float Set’s the Doof velocity to the passed numerical value.

Module Author:Arnaldo Mendez

Page 118: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 112

Momma Doof This module defines Momma Doof, and how she collides and moves in the world. The module contains the functionality to draw Momma Doof, as well as updating Momma Doof position within the 2.5D level.MethodsReturn Name Parameters DescriptionVoid Draw None Function draws

Momma Doof to the screen.

Void Update Float It updates Momma Doof states, position and velocity.

Void Destroy None Function unloads all the allocated memory for Momma Doof.

Void SetVelocity Float Set’s the Momma Doof Velocity to the passed in value.

Float GetVelocity None It returns the current velocity value of Momma Doof.

Void CheckCollision None Overloaded function from base object. It checks collision for Momma Doof.

Module Author:Arnaldo Mendez

Page 119: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 113

AI Purpose:The AI Module uses A* pathfinding to navigate through a Navigational Mesh in order to generate the scent trail the player uses to find the doofs and the paths the doofs use to run away from the player.

MethodsReturn Name Parameters DescriptionBool BuildNavigationPath CNavPath& NavPath,

CNavCell* pStartCell,CNavCell* pEndCell,IsisVector3& StartPos,IsisVector3& EndPos

Builds a navigation path using the points given and the A* method

Module AuthorOmar Khan, Jorge Rodriguez

Page 120: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 114

Scent Trail Purpose:The Scent-Trail uses a mixture of A* path finding and a Navigational Mesh to constantly create a path from Dash to the current doof. Once the path is generated, particles are called and rendered on the specific Nav Cells that form the path.Methods:Return: Name: Parameters: Purpose:void Enter void Initializes all the

members of the class

void Update const float updates the trail from Dash to the current doof and updates the calls to the particle manager to render to the screen

void Exit void Clears out all the allocated memory and sets all members to NULL

Module Author:Jorge Rodriguez

Page 121: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 115

Bounding Volume Purpose:The bounding volume will be used so collisions can be handled with polymorphism.

Methods:Return: Name: Parameters: Purpose:int CheckCollision CIsisBV* Returns 1 if collides, 0 if

doesn’t collide and -1 if no check occurred

eBVType GetType void Returns bvType

Module AuthorEric Tjader

Page 122: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 116

Render Manager PurposeThe purpose of this module is to wrap the various rendering functionality in DirectX in an easy to access and maintain class that will be used for all the various rendering that will be used in our game.

Methods:Return: Name: Parameters: Purpose:LPDIRECT3DDEVICE9

GetD3DDevice none Returns a pointer to the DirectX Device

LPD3DXSPRITE GetD3DSprite none Returns a pointer to the Sprite

bool Initialize HWND _hWnd, const U32 _nWndWidth, const U32 _nWndHeight, bool _isWindowed, bool _vSync

Initializes the window with the parameters passed in

Void Shutdown None Cleans up everything

Void Clear iColor& _color Clears the screen with the color passed in

Void Present None This function will render the final scene to the screen

Void BeginScene None To begin the sceneVoid EndScene None To end the sceneVoid Render2DTexture TEXTURE* _texture,

const iRect* _srcRect, const iColor& _color,const D3DXVECTOR2& _position, const float _rotation, const D3DXVECTOR2&_scale, const D3DXVECTOR2& _center

To render a 2D texture to the screen

Void RenderPrimitive const ePrimitiveType _eType, const CIsisVertexBuffer* _pBuffer, const U32 _uiPrimitiveCount, const U32

To render a primitive on the screen

Page 123: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 117

_uiVertIndexStartVoid RenderLine const

D3DXVECTOR2& _start, const D3DXVECTOR2& _end, const iColor& _color, const float _fWidth

To render a line to the screen.

Module AuthorSteve Serafin, Reinol Orta

Page 124: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 118

Scene Manager

Purpose:The scene manager will be the bridge linking the objects found in the object manager, to the render manager that will render these objects to the screen. The scene manager will be responsible for ensuring that the objects are correctly being sorted via their z-depth. The objects being passed in from the object manager will be added to a list in the scene manager, frustum culled, sorted correctly, and then passed into the render manager.

MethodsReturn Name Parameters DescriptionVoid AddObject iListLite<Base Objects*> This will add the

objects from the object manager into the iListLite linked list inside this function

Void AddObject IsisVector<Base Objects*>

This will add objects contained within the isis vector and

Void AddObject Base Object This will add a base object into the scene manager

Module AuthorOmar Khan

Page 125: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 119

Particle Manager

Purpose:The particle manager will hold all emitters and have a specific control over the scent trail. The manager will be able to switch emitters from stop and play so there isn’t constant creating and removing. Emitters will derive from a base class to have polymorphism, with structures holding data for the emitter derived alongside the emitter class. Emitter’s data can be accessed through the manager.

Public MethodsReturn Name Parameters Purposevoid Update float Updates emitters in

emitterlistvoid PlayEmitter unsigned int Puts the emitter in the

emitter listBaseEmitterData* GetEmitterData unsigned int Returns the address of

the data the emitter is using to create and control particles

void StopEmitter unsigned int Puts the emitter in the stopped list

void RemoveEmitter unsigned int Removes emitter from manager

Unsigned int CreateEmitter enum Adds emitter of parameter type to the stopped list

void Render void Render emitters on screen

Module AuthorEric Tjader

Page 126: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 120

Shader Manager

Purpose:This manager is responsible for instancing the load calls on a “CIsisShader” type, which wraps up the actual loading call to the system.

Public MethodsReturn Name Parameters DescriptionCIsisShaderManager*

GetInstance None Returns the singleton instance for the manager

Bool Initialize None Gives good valuesVoid Shutdown None Shuts down the

manager and all held shaders, releasing any memory

CIsisShader* LoadShader char* _szFileName,char* _szNameOfEffect

Loads, when necessary, the requested file and returns the object created

CIsisShader* GetShader char* _szNameOfEffect Returns a shader by name

Module AuthorSteven Serafin

Page 127: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 121

Texture Manager

Purpose:The texture manager is responsible for instancing load calls to textures. It returns integers from its load calls, allowing its’ users to efficiently keep track of their textures.

Public MethodsReturn Name Parameters DescriptionCIsisTextureManager* GetInstance None Returns the singleton

instance for the manager

Bool Initialize LPDIRECT3DDEVICE9 _pDevice,LPD3DXSPRITE _pSprite

Sets our pointers

Void Shutdown None Shuts down the manager and all held textures, releasing any memory

U32 LoadTexture char* _szFileName,DWORD _dwColorKey

Loads, when necessary, the requested file and returns index into our list

Void UnloadShader U32 _uiID Removes, when necessary a texture from memory

Module AuthorSteven Serafin

Page 128: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 122

Mesh Manager Purpose:Mesh Manager will be accessed by Render Manager and Object manager as they need information of the meshes, but the mesh manager will hold the data and is responsible for the loading and cleanup of the data. The render manager will instance the meshes as the object manager will retrieve bounding volumes when an object is created.

Methods:Return: Name: Parameters: Purpose:bool Initialize void Loads meshesvoid Update floatvoid Shutdown void CleanupCIsisMesh* GetMesh enum Returns address of mesh

corresponding to enumCIsisBVconst* const

GetMeshBV enum Returns address of mesh’s bounding volume corresponding to enum

Module Author:Eric Tjader

Page 129: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 123

Font Manager Purpose:The Font Manager handles instancing of textures that will be used as fonts. It also bridges to the rendering engine by providing “DrawString” functions.

MethodsReturn Name Parameters DescriptionVoid Initiatize Void Initializes the Font ManagerVoid DrawString string drawString

intfontIDintdrawposXintdrawposYfloat drawscaleXfloat drawscaleY

Renders the specified text information to the specified location on screen

Int LoadFont string fileNameeFontTypefontType

Loads in the font and adds it to the list of fonts.Returns the ID for the Font loaded in.

Bool RemoveFont

intremovefontID Deletes the font at the specified index. Returns true if successfully deleted, false if the id doesn’t exist.

Void Shutdown Void Shuts down the Font Manager, and deletes all the loaded data.

Module AuthorPatrick Moscova

Page 130: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 124

Input

Purpose:This manager wraps up DirectInput8. It handles mouse input, keyboard input, and joypad input. Included is functionality to bind keys, as well as bind different sets of keys during different states of the game.

Public MethodsReturn Name Parameters DescriptionCIsisInput* GetInstance None Returns the

singleton instance for the manager

Bool Initialize HWND _hWnd,HINSTANCE _instance

Initalizes all forms of input and binding

Void Shutdown None Shuts down the manager

Void Update float dt Updates all states in the list

Void SetBinding eKeys _key,eAction _action,EVENT_ID _eventID

Adds a binding to the m_CurrentBindings set

Void SetBinding eMouseButton _button,eAction _action,EVENT_ID _eventID

Adds a binding to the m_CurrentBindings set

Void ClearCurrentBindings None Releases all things in m_CurrentBindings

Void SaveCurrentBinding char* _szName Saves the current m_CurrentBindings set

Void LoadBinding char* _szName Loads the specified set into m_CurrentBindings

Accessors& ModifiersReturn Name Parameters DescriptionBool KeyDown Keys _key True if downBool KeyUp Keys _key True if upBool KeyPressed Keys _key True on pressedBool KeyReleased Keys _key True when key is released

Page 131: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 125

Bool MouseButtonDown MouseButton _button

True if down

Bool MouseButtonUp MouseButton _button

True if up

Bool MouseButtonPressed MouseButton _button

True if just pressed

Bool MouseButtonReleased MouseButton _button

True when released

Long MouseWheelMovement None How much the wheel has moved

Long MouseMovementX None How much the wheel has moved in the X

Long MouseMovementY None How much the wheel has moved in the Y

Vector3 MouseMovement None How much the mouse has moved

Module AuthorSteven Serafin

Page 132: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 126

Events

Purpose:The event manager is responsible for handling all messages (events) used throughout run time. Any module that wants to receive event alerts must be derived from the class “IEventListener”, and must overload the “HandleEvent()” function. The events themselves have an ID (enumeration type) and a list of parameters (void*).

Public MethodsReturn Name Parameters DescriptionCIsisEventManager* GetInstance None Returns the

singleton instance for the manager

Void Shutdown None Releases any memory

Void RegisterClient EVENT_ID _id,IEventListener* _client

Sets the class to “listen” for that event

Void UnregisterClient EVENT_ID _id,IEventListener* _client

Stops the client from “listening” for that event

Void BroadcastEvent EVENT_ID _id,U32 _numParams,…

Sends the event id with the params to all listeners

Void ProcessEvents None Sends out all events

Void ClearEvents None Removes any events

Module AuthorSteven Serafin

Page 133: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 127

Loader Purpose:This module will be put in its own thread. Its purpose is to encapsulate all loading for the whole game in one module. It will be responsible for knowing how to load in external files such as textures, audio files, or meshes.Methods:Return: Name: Parameters: Purpose:Static CIsisLoader*

GetInstance None Make one instance of this class using lazy instantiation to make it a singleton.

Int LoadTexture iListLite<TEXTURE>& _Textures, Const char* _szFileName, DWORD _dwColorKey

Will get passed in the texture list by reference. This function will be responsible for loading in a texture and placing it in the list. Returns the texture ID.

Bool LoadMesh IsisVector<CIsisMesh>&meshList, const char* _szFileName

Will get a vector of meshes and will load in a mesh from the file passed in then put it in the vector.

CIsisShader* LoadShader iListLite<CIsisShader*>& _Shaders,Const char* _szFileName, Const char*_szName

Passes in a list of shaders, if the shader file isn’t there already, put it in. Return a pointer to that shader.

Module Author

Page 134: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 128

Reinol Orta

Page 135: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 129

Error Purpose:The purpose of this module is to display in the output menu of Visual Studios where an error message occurred. Within the code, if there is a try and catch block setup and print is called from the error system, it will not only print whatever message the programmer wants to display, but it will also pop up a new message box on the screen as well.MethodsReturn Name Parameters DescriptionStatic CIsisErrorManager*

GetInstance none Make one instance of this class using lazy instantiation to make it a singleton

Void Print Char* szOutput This will print the error message in the output window of visual studios and also pop up a message window with whatever message the programmer wants displayed.

Module AuthorOmar Khan

Sound Purpose:The sound Manager will serve as an intermediate system between our game and the Wwise API. It will be wrapper class that will handle the initialization and termination of the Wwise API, this module will also provide the necessary functionality to easily load, play music and 3d sounds

Page 136: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 130

The sound manager will handle the loading of sound effects and music of the music. It will handle also Stop, Panning, Looping and Setting the volume, and any other feature needed to have the best quality in sound possible for our game.Class Methods:

Return Name Parameters Descriptionstatic SoundManager*

GetInstance None Returns a single instance of this class;

Bool Initialize None Initializes all the required sound objects. It also loads the sound banks.

void Shutdown None This function handles the shutdown of the multiple Wwise objects.

void Play ConstAkUniqueId AkGameObjId

Function will take the unique Id for a specified sound and the gameObjId (speakers) and will play the desired sound.

void Stop ConstAkUniqueId AkGameObjId

Function will take the unique id for a specified sound and the desired Object and will stop playing it.

void Update None It updates the sound at all moment; it will mostly call RenderAudio function from the Wwise API.

int GetMusicVolume None Returns the value of the private variable musicVolume

int GetSFXVolume None Return the

Page 137: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 131

value of the private variable sfxVolume.

void IncreaseMusicVolume IntnRiseVol AkGameObjId

This function increases the volume of the music by the desired amount.

void DecreaseMusicVolume IntnDecVol AkGameObjId

This function decreases the music volume by the desired amount.

void IncreaseSFXVolume IntnIncreSFX AkGameObjId

This function increases the volume of the sound effects by the desired amount.

void DecreaseSFXVolume IntnDecresSFX AkGameObjId

This function decreases the sound effects volume by the desired amount.

void MuteAllSounds None Function will mute all the music and sound effects currently playing.

Void SetPos Vec3fAkGameObjId Sets the position of the speakers in the world.

Module AuthorArnaldo Mendez

Page 138: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 132

Memory Map The memory map details the memory usage caps for each system.

System RAM Graphics RAM2MB for Executable 80 MB for Texture Data

40 MB Mesh Texture Data

40 MB Terrain Texture Data

30MB for Mesh Vertex Data

20 MB for Animations

30 MB for Terrain Vertex Data

5 MB for Particle and other Effects

5 MB AI 2.5 MB for Waypoints 2.5 MB for Navigational

Mesh

10MB for Shader Effects

100 Audio Data 25MB Sound FX data 75MB Background

Music167 MB of Total Usage 115MB of Total Usage

Page 139: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 133

C ode Review Plan The purpose of the code review is for all of the programmers on the team

to sit down, and go over each module before it gets integrated. Therefore, the code review meetings will take place Wednesdays and Fridays directly before integration begins. The meetings will last long enough to cover all of the modules that need to be integrated.Reviews will consist of up to 10 minutes each to explain the basic usage of the module, including the public interface. After all of the modules have been reviewed, the group will have up to 20 minutes to question and discuss the quality of the work. After each code review, the Internal Producer will be informed of the current state of each module. The Module will be compared to its description in the technical document. If it matches up with the public interface, and completes all of the requirements for the module, then the Module will be ready to be implemented. If there are any discrepancies, then the Technical Lead will make the final call. If the module is determined to not be ready for integration, then it will be up to the programmer in charge of the module to get it done by the next code review.

Page 140: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 134

Integration Plan Responsible for integration

o Tech Lead – Steven SerafinSource Control Software

o AlienbrainSchedule for integration

All modules and features should be integrated within 24 hours of completion. The individual responsible for said module or feature should contact Steve via email to notify him that it is ready for integration.In order to be a candidate for integration

o Before integration is allowed, the module being worked on should have no warnings or memory leaks

o Must follow the coding conventions found in the Solution folder on Alienbraino Must run correctly on local version of the project for each individual prior to

submitting them on alienbrain for Steven to integrate.o Must run correctly on an updated version of the project for the individual

before turn in Must update your solution before you submit anything Use Alienbrain to get the newest import of the project files to your

local hard driveTime period for integration

o Integration time should take no more than 2 days. If it takes more than 2 days to integrate, the module will not be

integrated and must be worked on by the original module author separate from the main Alienbrain files. It is essentially removed from the game, but the author has the opportunity to reintegrate this module, through the approval of the tech lead and the internal producer, for the next deliverable.

Upload the file to Alienbrain – Everyone is responsible for uploading their own material to alienbrain.

o Must check out the vcproj files from Alienbrain before adding and submitting the new files

This will prevent any problems with integrating and making sure the proper files are being updated to the server and being registered in the project

If vcproj is not checked out, you will not be allowed to add new files to the project.

Make sure you have the current vcproj file before adding the new files

Testing prior to submissiono The build must run for 4 hours without crashingo The QA Lead will be responsible for the testing phases of the project, as

well as maintaining the bug database. Bugs detected will be submitted to Test Track Pro, and then reported to the QA Lead. The QA Lead will meet with the IP and the Tech Lead, to assign bugs to the person determined best able to fix them. The QA Lead will confirm that the bug has been fixed, and then update Test Track Pro.

Page 141: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 135

Bugs will be assigned to the person in charge of the system that the error is in. If it’s an AI error, then the individual responsible for AI will be responsible for fixing it. If the person assigned to it is unable to resolve the problem quickly, then someone else within the team will be assigned to assist in resolving the bugs. If it still cannot be fixed, then outside assistance, such as asking course directors for assistance, will be found to help fix the bug.

Acceptable bugso The bugs that are acceptable vary between milestone turn-ins. Please

look at the Testing Plan to see the list of bugs.If an integrated module breaks something

o The module must be first removed from the newest build and the project must be rebuilt and run to check to see if it is the integrated module that is at fault

o Once this is determined, then the integrated module must be implemented again and then debugged thoroughly to find the actual reason of the bug

If the integrated module permanently breaks the build, a rollback to a previously working version of the game will be a necessity.

The tech lead will determine if there is a necessity for a complete rollback.o No team member is authorized to roll back the build outside of the tech

lead’s approval. The Tech lead must also communicate a necessary rollback to the IP with proper justification of doing so.

o The entire programming team will be involved in the process of discussing whether we need a rollback or not. The people involved in the debate have a time period of, at the most, an hour to discuss this matter.

The final say, if there is no clear majority ruling over whether we should need a rollback or not will be determined by the Technical Lead.

Rollback votingo In order for rollback to be implemented, the entire team will have the

opportunity to discuss and decide on whether a rollback is needed. This will involve the entire team and the discussion should last no

more than half an hour If there is no majority vote, then it is up to the tech lead and the

internal producer as to how the team will continue from that point, whether there is a rollback or not

Source Control Software Ruleso The project needs to be updated only, and all changes must be done

locally In order to have a file uploaded and integrated into the main

project, the tech lead must approve of the file.o The files that are submitted must be checked for any merging issues by

the person integrating the actual code. If there are any merging problems, the people who were put in

charge of those sections of code must, first, inform the tech lead of the problems, and secondly, make no changes unless approved by the tech lead.

Page 142: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 136

Criteria to see if the module is at faulto Before the module is implemented, we need to test to make sure the

game is running correctly before the implementation of the module, once the module is implemented, then we will know whether the module is at fault or the class the module is communicating with

o Everyone that had a part to play with the module, whether it is the people who actually worked on the module, or the people who worked on the modules that the integrating module is communicating with, will be involved in integration and in determining whether the module is at fault or not.

Steps to recover from rollbacko Once it has been determined if the game needs to be rolled back to a

previous iteration of the code that was deemed bug free, based upon the testing criteria mentioned in this documentation, there are steps necessary to recover back to the new iteration

The modules that were introduced since the last working build will be re-implemented, based upon the schedule given in the Gantt chart.

As each module is implemented, the build will be tested to see if the game is still in workable condition based upon the testing criteria.

Once it is determined which module is causing the error, then that module will be reintegrated once it is deemed fixed and ready for deployment.

This will be again, based upon the criteria found in the testing section of this document

Code Freezeo Definition:

A code freeze is a solution of the project that has been determined, through the criteria found in the testing documentation, to be bug free and ready for submission.

This solution will be labeled in Alienbrain as the code freeze version of the game and this labeled solution will be set aside as code that will be turned in for the current deliverable.

We will continue implementing and integrating new code into our project, however, if there are any problems leading up to submission, the code we have frozen will be the code that is used for turn in.

This code should have all the features requested for the deliverable

o Code freeze will be assigned 3 days before deliverable If this is not done, then the previous code freeze will be

considered the code freeze for turn in, until we are able to have a properly assigned code freeze

Page 143: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 137

Asset Pipeline 1. In order for asset allocation to be designated to the artists, the programming

team must go through the asset lead and the IP for any requestsa. All models need to be in a format conducive to .x files.b. Models needs to be exported facing a –z direction.

2. Once art assets have been completed and are ready to be placed into a spike solution for testing, the art lead must send an email to the asset lead, letting them know that there is art available on alienbrain and where it can be found.

3. Assets will be delivered via alienbrain as soon as they are complete. It is then the Asset leads responsibility to delegate the work to the proper individual in order to integrate the asset.

4. The artist and asset lead will work with the exporter author in order to make sure that the asset is exported correctly

5. Once it has been determined that the file is correctly exported, through the use of a testing solution to check to see if the file is rendering correctly.

6. Once this test is valid, then the file will be sent from the spike solution into the actual project.

a. This will also be checked to make sure it is a valid integration, based upon what was written in our testing procedures documentation

7. Once it has been determined that the file is implemented correctly, the task can then be marked as 100% complete on the gantt chart and all individuals involved may proceed to their next assigned task.

a. If there are any problems with integration, the team has 24 hours to try to resolve the problem. If the asset cannot be integrated correctly within this time period, then it will be labeled as a risk and will be properly documented.

Page 144: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 138

Asset Naming Conventions Sound FX File Name FormatTeam Initials Sound Type_FileName File formatCC. A sound FX file will start

with SFX_ and then the file name

For example CC.SFX_Ding.bnk

The only file format for sound files is .ogg and .bnk files for a bank of all the sounds compressed together

Music File Name FormatTeam Initials Sound Type_FileName File formatCC. A music file will start with

MX_ and then the file name

For exampleCC.MX_Bongos.bnk

The only file format for sound files is .ogg and .bnk files for a bank of all the sounds compressed together

Model FilesTeam Initials File type _ Object Name File formatCC. The file name for Static

Meshes is SM_ObjectName, while the file name for animating meshes is AM_ObjectName. Static objects may have bounding volumes attached to them.

For ExampleCC.SM_Tree for a static mesh tree, CC.AM_Dash for the animating player, and either AABB or SPHERE for exported bounding volumes

Two types of file format. The first one will be for static objects which will be a custom export with its own file attachment.

For animating meshes, we will be using .X files.

TexturesTeam Initials File type _ Object Name File formatCC. For all texture files the

name will begin with T_ and then the file name

The file format for texture files will be .png format only.

Page 145: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 139

For exampleCC.T_Dash.png will be the textures for the player character

Menu Buttons and HUD ElementsTeam Initials File type _ Object Name File formatCC. For menu items that could

possibly have different states for the image, they will need to explain in what state the object is in that will display this image.

For example CC.T_StartButton.png for a depressed start button graphic

These images will all be saved as .png type file formats.

Page 146: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 140

Testing Plan QA Leads – Daniel Attella & Jason Dietzel

The QA Leads will be in charge of making sure that all known bugs are documented and reported to the Internal Producer. The lead is also responsible for working with the Internal Producer to assign the known bugs to the individuals most able to fix them.

QA Engineers – All ProgrammersThe QA Engineers will be responsible for finding bugs in the systems they are assigned to. General bugs or bugs not in systems assigned to the engineer should still be logged. The QA Engineers will report directly to the QA Lead with any high priority bug found.

QA Testers – Artists, Producers, and External Testers QA testers are testers without technical experience. They will be assigned to finding general bugs throughout the program. The testers are responsible for following the test plan very closely in order to ensure that all sections of the software are tested in regards to gameplay.

Standards

Product StandardsEveryone involved in the QA Process will be involved in monitoring the software to ensure it is meeting up to pre-determined standards. This includes checking to be sure that the game is consistent with the design document as well as the technical document. This includes graphics, code, and any printed materials.

Process StandardsEach programmer is responsible for their code meeting up to the standards. This includes file naming and code formatting standards set by GP Staff. As well as making sure the design and technical documents remain up to date.

Bugs A List

o Any bug that is detrimental to the game Crashes Memory leaks Anything that makes the game unplayable such as input

failing. B List

o In game bugs that affect gameplay

Page 147: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 141

Getting stuck in certain places Options not working correctly Info not being saved correctly

C List o Anything that has no effect on actual game play

Animations looking out of place Missing textures Odd visual artifacts Sound being out of place

Acceptance Standards POC

o 50% Core functionality must be working.o Visual issues are okay.o Code matches the coding standardso Placeholder art is ok for everything

FF1o 100% Core gameplay must be implemented and functionalo 70% Art can be placeholders. 30% should be in the works.

FF2o Only 30% of art can be placeholdero Polished core gameplayo 50% Extra Features should be implemented and functional

Alphao Visual Issues will be goneo No placeholder art.o C level bugs are ok.o 100% Extra Features should be implemented and functional

Beta o All Functionality needs to be doneo Less than 10 C level Bugso All extra features need to be polished and complete

Goldo Game is completely polished.o No Known Bugs

General Standardso Product

Page 148: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 142

The product shows that respectable quality and time has been put into it.

The product properly represents what is in the design document.

The player cannot purposely break the game.o Code

The product cannot crash within 4 hours of being launched.

The code is consistent with the coding standards. The individual components do exactly what they are

designed to do. The player cannot get stuck in an infinite loop.

o Art The rig does not break The normals are properly aligned The assets follow the proper naming conventions Animations function properly and smoothly

Reviews and AuditsOnce the Bug has been reported as fixed, the QA lead will perform several tests to ensure that bug has indeed been fixed. If the bug has not been completely fixed, or another bug has appeared due to the fix, then the previous bug will be adjusted to include the current error. This bug will be reassigned to be completed as soon as possible.

Records and ReportsRecords

Every bug that is submitted to the QA Lead will be documented using Test Track Pro. As the bug gets fixed, the document will be updated with the progress of the fix, the date fixed, and the person assigned to fix it. This record will be updated regularly and stored on Test-Track Pro. If any issues arise during the recording or fixing of bugs, the QA lead will record them, and they will be dealt with by the appropriate personnel.

ReportsEvery Friday, the QA Lead will be responsible for providing a report to the Internal Producer. This report will include any bugs detected during the week, as well as any progress currently made on those

Page 149: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 143

bugs. Older bugs that have not yet been fixed will also be listed in a separate section.

Test MachineThe team is required to put the latest build on the local test machine every class day as well as place the most recent label for all M/S deliverables on the test machine as well.

Making LabelsThe team will be required to make a label on alienbrain every Friday by midnight, assuming that it is functional and there are no class A or B bugs.

QA Tools, Techniques, and MethodsTest Track Pro

The main tool we will be using for bug tracking is TTP (Test Track Pro). Tester will log each and every bug found. The QA Lead will assign them to a person, and mark the bugs as they are fixed.

QA OverviewThe QA Lead will be responsible for the testing phases of the project, as well as maintaining the bug database. Bugs detected will be submitted to Test Track Pro, and then reported to the QA Lead. The QA Lead will meet with the IP to assign bugs to the person determined best able to fix them. Each bug will be given an estimated completion time by the QA Lead after being discussing it with the person responsible for fixing it, this will be noted on Test Track Pro. The QA Lead will confirm that the bug has been fixed, and then update Test Track Pro.

Chimeric Creations is planning on bringing in a limited number of outside testers to test our game. They will be supervised by the QA Lead to make sure that all bugs found will be documented correctly. Not only will this opportunity be used to find bugs but to identify usability issues as well.

Bugs will be assigned to the person in charge of the system that the error is in. If it’s an AI error, then the AI lead will be responsible for fixing it. If

Page 150: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 144

the person assigned to it is unable to resolve the problem within the allotted time, then someone else within the group will be assigned to work on it. If it still cannot be fixed, then outside assistance will be found to help fix the bug.

Test Track Pro will be updated every time a bug is found. If a known bug has been repaired, then the QA Lead will update Test Track Pro to reflect the new status of the bug. The QA Lead will be responsible for checking the database every morning before the group meeting. The QA Lead and Internal Producer will meet before the group meeting to discuss any bugs found, and determine when, and who, will fix the bugs. Low priority bugs may be set aside to be fixed at a later time.

Example Bug ReportSummary Prey runs into a wall.Type APriority Proof of ConceptComponent AIDescription When you chase the first doof, it runs into the

wall instead of turning to avoid it.Reproducible AlwaysSteps to Reproduce

Enter into a chase sequence, follow the doof until it heads towards a wall.

Workaround It is probably an avoidance issue within the AI pathing. Try stepping through the avoidance function.

Assigned to Jorge Rodriguez

Example Play Test ReportName John DoeDate 1/2/03Location Full SailPlay Time 6 hoursFun Level(not fun 1-10 very fun)

10

Most liked feature Chasing the doofLeast like feature Getting chased by momma doof

Bugs FoundSummary Doof ran into the wallPlay Time 1 hourWhat were you doing

Chasing the doof

Play Time 6 hoursDescription I was chasing the doof, when it ran into the

Page 151: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 145

wall and stopped moving.

Page 152: CC- Doof N' Dash - Production Document - Final

C h i m e r i c C r e a t i o n s | P a g e | 146

Game Folder Hierarchy This demonstrates the folder hierarchy created on the user’s system upon an install.