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
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
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
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
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
C h i m e r i c C r e a t i o n s | P a g e | 1
DESIGN DOCUMENT
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.
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?
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.
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.
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.
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.
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!
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
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.
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
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
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
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 __________________________________________
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: _____________________ ______
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.
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.
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
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
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
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.
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.
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.
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.
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.
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
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.
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
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.
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.
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
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.
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
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
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
C h i m e r i c C r e a t i o n s | P a g e | 36
Characters
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.
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
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
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.
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.
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
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
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
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
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
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.
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.
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
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
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
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)
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
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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)
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
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?
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.
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.
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
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.
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
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
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.
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
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
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
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
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:
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
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
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
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
C h i m e r i c C r e a t i o n s | P a g e | 86
Technical Document
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.
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)
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.
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
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
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
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
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
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
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.
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()
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()
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()
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.
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.
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
C h i m e r i c C r e a t i o n s | P a g e | 128
Reinol Orta
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
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
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
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
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.
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.
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.
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
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.
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.
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.
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
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
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
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
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
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.
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.