224
Production Document IncantoWhite Hat Studios Zachary Weaver Brandon [email protected] Germinal Rosell [email protected] Tyler Weikel [email protected] Marie Downey [email protected] Dinesh Nannapaneni [email protected] Robert Reategui [email protected] Matt Socha [email protected] Patrick Alvarez [email protected] Gant Briseño [email protected] Kevin Delorey [email protected] Michael Diaz [email protected] Dylan Hagen [email protected] Joshua Jacobs [email protected]

Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon [email protected] Germinal Rosell [email protected] Tyler Weikel

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 2: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel
Page 3: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

Table of Contents Game Charter ...................................................................................................... 1

Vision Statement ............................................................................................. 1 Regular Policies and Procedures .................................................................. 1

Human Resources Policies and Procedures ............................................. 1 Discipline Policies and Procedures ........................................................... 2

Schedule Policies and Procedures ............................................................ 2 Communication Policies and Procedures ................................................. 3

Meeting Schedule ............................................................................................ 4 Schedule Maintenance ................................................................................ 5 Holiday Scheduling ..................................................................................... 5

Roles and Responsibilities ............................................................................. 6

Interactivity .......................................................................................................... 8

Summary .......................................................................................................... 8 Goal .................................................................................................................. 8

Interface ........................................................................................................... 8 Camera ......................................................................................................... 8

User Interface ............................................................................................... 9 Splash Images, Title Screen, & Menus ........................................................ 13

Title Screen ................................................................................................ 13

Main Menu .................................................................................................. 14 Options Menu ............................................................................................. 15

Controls/Controller Menu.......................................................................... 16 Achievements Menu .................................................................................. 17 Credits ........................................................................................................ 17

Loading Screen .......................................................................................... 18

Pause Menu ................................................................................................ 19 Game over screen ...................................................................................... 19

Interactive Rhythm ........................................................................................ 21

Timing ......................................................................................................... 21 Interactive Rhythm Diagram ..................................................................... 22

How the Player Marks Progress ................................................................... 23 Altar Gates (Checkpoints) ......................................................................... 23 Mini-Map ..................................................................................................... 23 Location Feedback .................................................................................... 23

Level-up ...................................................................................................... 23 Achievements ............................................................................................ 23

Other ways to measure progress ............................................................. 24 Detailed Design Breakdown ............................................................................. 25

Front End Flow Chart .................................................................................... 25 Game Flow Chart ........................................................................................... 26 Glossary of Terms ......................................................................................... 26

Combat System .................................................................................................. 29 Characters ......................................................................................................... 30

Monk (Player) ................................................................................................. 30

Brief Description ........................................................................................ 30

Page 4: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

Visual Design ............................................................................................. 30

Dialogue...................................................................................................... 32 Behaviors ................................................................................................... 32

Attributes .................................................................................................... 32 Spell System .............................................................................................. 33

Wolf ................................................................................................................ 38 Brief Description ........................................................................................ 38 Visual Design ............................................................................................. 38

Dialogue...................................................................................................... 40 Behaviors ................................................................................................... 40 Attributes .................................................................................................... 41

Alpha Wolf...................................................................................................... 42 Brief Description ........................................................................................ 42

Visual Design ............................................................................................. 42 Dialogue...................................................................................................... 42

Behaviors ................................................................................................... 42

Attributes .................................................................................................... 43 Shadow .......................................................................................................... 44

Brief Description ........................................................................................ 44

Visual Design ............................................................................................. 44 Dialogue...................................................................................................... 46

Behaviors ................................................................................................... 46 Attributes .................................................................................................... 47

Amphibian ...................................................................................................... 48

Brief Description ........................................................................................ 48

Visual Design ............................................................................................. 48

Dialogue...................................................................................................... 50 Behaviors ................................................................................................... 50

Attributes .................................................................................................... 51 Garuda ............................................................................................................ 52

Brief Description ........................................................................................ 52

Visual Design ............................................................................................. 52 Behaviors ................................................................................................... 53

Attributes .................................................................................................... 53 Final Boss Fight ......................................................................................... 53

Levels and Maps ............................................................................................ 55

Verdenice ....................................................................................................... 55

Goal ............................................................................................................. 55 Level Travel ................................................................................................ 55 Scale ........................................................................................................... 55

Player / Enemy Interactions – Behaviors ................................................. 55 Spell Interactions – Behaviors .................................................................. 55 Environmental Interactions – Behaviors ................................................. 56 Ambient Environmental Aspects/Objects in the Level ........................... 56 Time ............................................................................................................ 57 Map ............................................................................................................. 57

Page 5: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

Level Walkthrough – Verbal Map .............................................................. 63

Level Breakdown – Walkthrough and Camera Concepts ....................... 65 Storyboards ................................................................................................... 79

Game Logic, and Rules .................................................................................... 103 Interaction Component Matrix .................................................................... 103 F.A.Q. ............................................................................................................ 105

When does the game come out? ............................................................ 105 How many spells will the character have? ............................................ 105

Why can’t I Melee? ................................................................................... 105 Why can’t I dodge, block or parry? ........................................................ 105 How long is the game? ............................................................................ 105 Why is the game fun? .............................................................................. 105 Can you describe the story of the game? .............................................. 106

What is the genre of the game? .............................................................. 106 What is the look and feel of the game?.................................................. 106

What is white hat studio?........................................................................ 106

How much is the game going to cost? .................................................. 106 Where can I get this game? .................................................................... 106

Reference of Key Elements ............................................................................ 107

Winning/Losing ........................................................................................... 107 Transitions ................................................................................................... 107

Rewards ....................................................................................................... 107 Achievements .............................................................................................. 108

Art and Production Design ............................................................................ 109

3D Art & Animation Deliverables ............................................................... 109

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

Sound Effects Deliverables ........................................................................ 114 Music Deliverables ...................................................................................... 117

Cutscenes/Pre-rendered scene Deliverables ............................................ 118 Technical Design Overview ........................................................................... 119 Milestone Deliverables ................................................................................... 120

Core .............................................................................................................. 120 Alpha ............................................................................................................ 121

Beta .............................................................................................................. 121 Gold .............................................................................................................. 122

System Architecture ....................................................................................... 124

Context Model Description............................................................................. 125

Module Breakdown ......................................................................................... 128 Globals ......................................................................................................... 128

CDebugOutput ......................................................................................... 128

CEffectsManager ..................................................................................... 129 CEventSystem .......................................................................................... 131 IListener .................................................................................................... 133 CEvent ...................................................................................................... 134 CSingleton ................................................................................................ 138 CGameTimer ............................................................................................ 139

Page 6: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

Data Structures ............................................................................................ 141

CDynArr .................................................................................................... 141 CHashMap ................................................................................................ 143

CQueue ..................................................................................................... 145 CString ...................................................................................................... 147

Game States................................................................................................. 149 State Manager .......................................................................................... 149 IGameState ............................................................................................... 151

Animations ................................................................................................... 153 CAnimationManager ................................................................................ 153 CAnimation ............................................................................................... 156 CAnimationInterpolator ........................................................................... 158 CAnimationBlender ................................................................................. 160

Renderer ...................................................................................................... 162 CEngineRenderer .................................................................................... 162

CRenderNode ........................................................................................... 165

CRenderContext ...................................................................................... 167 CRenderPipeline ...................................................................................... 169 CResourceManager ................................................................................. 171

IManager ................................................................................................... 173 CGeometryManager ................................................................................. 174

CGeometryData ........................................................................................ 176 CRenderEntity .......................................................................................... 178 CTextureManager .................................................................................... 180

Spells ............................................................................................................ 182

CSpellManager ......................................................................................... 182

ISpell ......................................................................................................... 183 CSpellSlot ................................................................................................. 185

ISpellObject .............................................................................................. 186 CSpellEffectManager ............................................................................... 187 CSpellEffectList ....................................................................................... 188

ISpellEffect ............................................................................................... 189 CSpellEffectSlot ....................................................................................... 190

WWise .......................................................................................................... 191 PreCompWWise ....................................................................................... 191 WWise ....................................................................................................... 193

Objects ......................................................................................................... 195

ICharacter ................................................................................................. 195 CActor ....................................................................................................... 197 CAgent ...................................................................................................... 198

CAIDirector ............................................................................................... 199 IState ......................................................................................................... 201 CFSM ........................................................................................................ 202

Miscellaneous .............................................................................................. 203 CCamera ................................................................................................... 203 CGame ...................................................................................................... 205

Page 7: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

CObjectManager ...................................................................................... 206

Derivation Charts ............................................................................................ 208 Memory Map .................................................................................................... 210

Code Review Plan ........................................................................................... 212 Integration Plan ............................................................................................... 213 Testing Plans................................................................................................... 214

Internal Testing ............................................................................................ 214 External Testing .......................................................................................... 214

Bug handling ............................................................................................... 214 Responsibilities ........................................................................................... 215

Sample External Testing Information Form........................................... 215 Sample Bug Report ................................................................................. 216

File Hierarchy .................................................................................................. 217

Page 8: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

1

Game Charter Vision Statement

The members of White Hat Studios are committed to the objective of

creating a fun and highly polished game project. This objective will be accomplished through cooperative teamwork, maintaining realistic project scope, and free opportunity for every member to share ideas and constructive criticism in an open-minded environment. The team is committed to fully completing each milestone and all its associated work, with time to spare while maintaining a balanced work schedule that allows the team to avoid burnout. The team recognizes that the game is paramount; design decisions and compromises will be made on the basis of “what is best for the game.” In summary, White Hat Studios seek both a collaborative effort and to present a solid game that represents fully the expectations of all team members at the end of the five-month project.

The purpose of this project is: to create a final project game with a team of programming, art, and production students using the skills acquired through the Game Development Bachelor of Science (GDBS), Game Art Bachelor of Science (GABS), and Game Design Master of Science (GDMS) programs; to fulfill graduation criteria; to gain five months of “real-world” game production experience; and to create a product worthy of inclusion in a high-quality portfolio for potential employers.

Regular Policies and Procedures

1. All Policies and Procedures are subject to change pending the approval of all IPs and notification of all team members.

2. All team members will physically sign the most current version of the Project Charter to signify their acceptance and willingness to adhere to the tenants therein.

a. The IP(s) are responsible for storing a hard copy of an agreement with all team members‟ signature agreeing to the hereby stated Policies and Procedures.

b. All team members that have signed the Project Charter will be bound by the Policies and Procedures therein.

Human Resources Policies and Procedures

1. All team members will be expected to complete 52 hours of work per week.

a. Exceptions will be made for classes and on an as-needed basis. 2. Team members will abstain from offensive behaviors towards other Team

members.

Page 9: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

2

a. „Offensive‟ is defined subjectively b. Grievances must be voiced in writing to IPs.

3. Bathroom breaks are allowed anytime. 4. Smoking breaks and any other breaks that take more than 5 minutes need

to be notified to the Internal Producer(s). 5. Team members are expected to arrive on time at the designated room for

every team meeting. 6. Aggressive behavior will not be tolerated. 7. Any conflict between the IPs shall be handled outside the purview of the

team to avoid damage to team cohesion.

Discipline Policies and Procedures

1. Infractions by any team member will result in the following procedure. a. The first infraction will be documented and reported to the External

Producer, Art Director, and the Course Instructor. i. The team member in question will be informed in private.

b. The second infraction will be documented and reported to the External Producer, Art Director, and the Course Instructor.

i. The team member in question will be disciplined publicly. c. The third infraction will be documented and reported to the External

Producer, Art Director, and the Course Instructor. i. The IPs will request a meeting with the External Producer,

Art Director, Course Instructor, and the team member in question to discuss methods for fixing the recurring issue.

d. Infractions will be defined as failures to abide the policies and procedures set forth in this Charter in any of the Sections therein.

Schedule Policies and Procedures

1. White Hat Studios Team will work from Monday to Friday accomplishing 52 hours of work per week.

a. Monday, Wednesday, and Friday will start at 9AM and will end at 9PM constituting twelve (12) hour days.

b. Tuesday and Thursday will start at 9AM and finish at 5PM, constituting 8 hour days.

c. Turn shifting (Starting at 1PM instead of 9AM or skipping any four hour segments of time) will be allowed under special circumstances.

i. Special Circumstances include not having a place to work and or other problems that impede the majority of the team to meet at the same location.

1. Majority of the team is more than half the team (7 members including IPs) or a higher number of people (eight or above) arbitrarily decided by the IPs.

Page 10: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

3

d. In case that four hours of work are lost due to turn shifts during twelve (12) hour days (Monday, Wednesday, or Friday), the following day will be considered a 12 hour day instead with the exception of Saturdays and Sundays

i. If a turn shift occurs on a Friday, Tuesday will be considered a twelve (12) hour day.

2. At the beginning of all meetings it is the responsibility of the Internal Producer(s) to discuss the plan for the day.

3. At the end of each meeting, before everyone leaves, the team will agree on the time and location that the team will be working.

a. It will be the Internal Producers‟ responsibility to acquire a room for the team to meet the following day and communicate the location to the team.

b. If the room can‟t be reserved for any reason, it is the Internal Producer(s)‟s responsibility to notify the rest of the team.

c. In the event that a room is not available, Kevin, Marie, or Zack‟s apartment will be used.

4. Sundays will be off for the team, unless there is work that needs to be accomplished for the team‟s success.

a. Extra hours or extra work days will be added by the IPs as needed.

Communication Policies and Procedures

1. Cell Phone numbers will be preferred to communicate urgent messages to other team members, since it is the most immediate form of communication.

a. All Team Members are encouraged to maintain their cell phones turned on and at hand so that in case of an emergency or an urgent question they can be notified immediately.

b. Through cell phone text messages and calls, students are to communicate to the Internal Producers about:

i. Arriving late during a workday (Include the reason). ii. Health Issues that impede assisting to work. iii. Car Accidents. iv. Urgent work related messages. v. Any other problems that Team Mates consider an urgent

matter for the Internal Producer to know. vi. Any questions they have on assignments.

c. Cell phone use during work sessions is forbidden, unless a Team Member is expecting urgent calls.

i. Team members will request permission from IPs to make phone calls.

ii. Texting is not allowed because this takes away time from work.

Page 11: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

4

d. If the IPs change the meetings and/or working sessions, Team Members will be notified by cell phone and the IPs will inform them of:

i. New Location (If applicable). ii. New meeting time.

2. Use of Facebook will not be allowed during scheduled work time. 3. Skype will be used at all times during working sessions for the best

interest of the team. It is especially important for team members working from home to remain available via Skype. During Skype meetings the following Policies and Procedures will be followed:

a. All Teammates summoned to a Skype meeting will communicate using a single window.

i. Different teammates on the Skype meeting might be assigned different window conversations in case that there are too many members on a meeting.

b. All content submitted to Skype is to be kept professional and relevant. The IPs reserve the right to copy for archiving purposes any conversations held over Skype.

c. Microphone and Headphone sets are preferred to be used, as this communicates more than just text.

d. If Headphones and Microphone sets are not available, typing will take place as the main communication form. When typing please adhere to the following Policies and Procedures:

i. Please, make sure that you make use of existing English words only. No abbreviations, no slang; just proper English.

e. Avatar pictures should be professional. No sexually suggestive images, no pornographic images, no racist images, no images that contain gore or violence of any kind, no images that denigrate, insult, or mock religions, genders, philosophies and or any other systems of belief.

Meeting Schedule

1. White Hat Studios will meet daily Monday through Friday to complete project work.

a. Project work is defined as any form of coding or asset creation, integration, or testing performed on Incanto.

b. Each day team members will be expected to contribute eight (8) hours of work to the Project.

2. All working team meetings will take place on the Full Sail campus. a. See “Schedule Policies and Procedures” in the previous section for

further information regarding exceptions to this rule. 3. Additional non-working meetings may be scheduled.

a. Non-working meetings will be used to manage team morale. b. Locations will be decided as needed.

4. Builds will be generated each night.

Page 12: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

5

a. During Production phases, safe builds must be produced on Mondays, Wednesdays, and Fridays.

b. Safe builds will be uploaded to Alien brain upon completion.

Schedule Maintenance

1. If one entire day is canceled during a working scheduled week (due to any reason), that missed day will be rescheduled for Saturday (same normal break time policies apply).

2. In case of schedule lag, Sundays may be used as make-up days. 3. In the case of an individual missing a scheduled day of work, that

individual is still responsible for the work assigned to him for that day. a. The missing individual shall endeavor to remain in communication

with the team via Skype and/or all other available methods. b. The missing individual‟s work shall be uploaded to Alienbrain so

that his respective lead can check the work. 4. If a team member will not be able to work for long periods of time, Internal

Producers will divide the workload evenly. 5. At the beginning of the working day, fifteen (15) minutes will be reserved

to check that team members are staying within schedule by performing Turbo-Team Meetings.

6. Before leaving for the day, the IPs will be responsible for updating the work in Hansoft.

7. If a team member is falling behind schedule, he/she will let the Internal Producer know ASAP so that they can reassign and/or distribute the work in order to stay within schedule.

a. If a team member falls behind schedule recurrently, it will be brought up to the attention of the External Producers in order to deal with the problem.

8. In any day, only assigned tasks for the specific day will be worked on by the team, unless a lead in the schedule is generated.

a. If an individual finishes their task ahead of schedule and his work has been reviewed by the corresponding lead, the team member might then move to the next task.

9. In case of a time lead on schedule, the spare time will be assigned to additional tasks.

10. In case of schedule lag or during crunch time, the team will work extra hours to ensure all tasks will be finished on time.

a. Features that need to be cut will be cut only after consideration by the IPs and the leads.

Holiday Scheduling

1. National Holidays will not be scheduled work days for the team. a. This will be reflected in the capacity plan. b. Team members can choose to work if they want to.

Page 13: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

6

c. Days to be considered holidays through the duration of Final Project are:

Table 1. Holidays

Summer Break July 2nd – July 11th

Labor Day September 5

Roles and Responsibilities

1. Certain team members will fill the roles of an Art Lead and Tech Leads. 2. The following tables lay out the responsibilities of the Art and Tech Leads:

Table 2. Lead Artist

Job Title: Lead Artitst

Name: Matt Socha

Job Description: The Lead Artist (LA) supervises all other artists in developing the art for the FP game. He ensures that all feature tasks are completed and integrated uniformly into the game. The LA represents the first step in the management chain of command, and as such, acts as a liaison between the IPs and the art team.

Responsibilities: Reviews the art submitted by other artists once a week for all artists.

Ensure that the Asset Pipeline is being followed

Submits reviews to IPs for Weekly Evaluations.

Work with QA to assign priorities and offer direction to find and fix bugs.

Complete individual tasks as required.

Remain current on all art used in the game.

Provide assistance to any team artist in need.

Facilitate communication between artist and IPs/EPs/Artists.

Maintain Professionalism among Artists.

Motivates team members and maintains a positive energy.

Authority to: Administrate the art team‟s completion of tasks.

Maintain appropriate checklists.

Provide assistance to any team artist in need.

Help IPs assign tasks to artists.

Request changes regarding features, Policies &Procedures, and schedule work packages.

Reporting Relationships:

Reports to Internal Producers.

Communicates with all team Artists.

Qualifications: Excellent communication and people skills.

Knowledge of art foundation.

Communications The LA must communicate daily and weekly progress to the art

Page 14: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

7

Requirements: team during Turbo Team Meetings. The LA is also required to communicate current progress and relevant issues directly to the IPs.

Table 3. Lead Programmers

Job Title: Lead Programmers

Name: Gant Briseño & Joshua Jacobs

Job Description: The Lead Programmers (LPs) supervise all other programmers in developing the code for the FP game. They ensure that all feature tasks are completed and integrated uniformly into the game. The LPs represent the first step in the management chain of command, and as such, act as a liaison between the IPs and the programming team.

Responsibilities: Integration of all code.

Code reviews will be done every week; LP will ensure that the coding standards are being followed.

Submits reviews to IPs for Weekly Evaluations.

Implementation of code into the game.

Work with QA Team to assign priorities and offer direction to find and fix bugs.

Complete individual tasks as required.

Remain current on all systems used in the game.

Provide assistance to any team programmer in need.

Facilitate communication between programmers and IPs/EPs/Artists.

Motivates team members and maintains a positive energy.

Authority to: Administrate the programming team‟s completion of tasks.

Provide assistance to any team programmer in need.

Help IPs assign tasks to programmers.

Sign off on the technical design of the game.

Request changes regarding features, Policies &Procedures, and schedule work packages.

Reporting Relationships:

Reports to Internal Producers (TBD).

Communicates with all team programmers.

Qualifications: Strong inter personal communication

Good listener

Strong organizational skills

Diligence

Communications Requirements:

The LPs must communicate daily and weekly progress to the programming team during Turbo Team Meetings. The LPs are also required to communicate current progress and relevant issues directly to the IPs.

Page 15: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

8

Interactivity

Summary Incanto is an Action RPG game that takes place in a medieval-like natural environment. Your mission is to take the role of a monk as he takes revenge on the Deity Garuda for destroying the shrine of the Dragon God. The player will accomplish this by traversing through a natural environment map that includes a forest, ruins, waterfalls, and a cave that leads to the end boss. The environments will be filled with enemies that will be hostile towards the player and will try to damage, and eventually kill him. To defend himself the player will have a range of spells that will provide different ways of attacking and dispatching of enemies. At the end of the play through, the player will have to fight a boss that will be broken in three phases. Once the boss is defeated, the player will win the game. If the player dies during his adventure, the game will end, and then re-start at the nearest checkpoint.

Goal The goal of this game is to defeat the boss at the end of the level. To accomplish this, the player will have to travel through environments that are populated with enemies that will try to hinder the player‟s progress by attacking him or her. To counter enemies the player will use spells that level up through repetition getting stronger as they gain levels.

Interface

Camera

1. Third Person Perspective View: a. The player can visibly see the body of the controlled character. b. Field of View is approximately 45 degrees. c. The camera is approximately 5 yards behind the character along

the circumference of a circle; the position is based on the character‟s rotation.

2. The camera‟s behavior is in a soft attached state, targeting the character. 3. Controlling the camera:

a. The camera can be controlled with the Right Mouse Button, holding the mouse button will allow the camera to perform yaw and pitch rotations around the character.

b. Basically rotate around the X and Y axis always keeping the character in view.

Page 16: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

9

c. Whenever the Left Mouse Button is pressed on a visible enemy agent, the camera will perform a soft turn-to behavior targeting the agent emulating a “Lock-On Targeting System.”

d. The camera will still stay behind the character keeping the body in view and looking in the direction of the agent.

e. The speed of the camera rotation is based on the mouse sensitivity.

User Interface

1. Spell Wheel: a. The spell wheel will indicate the current spell set to the casting

button. b. Each spell will be represented by a small image

i. Upon mouse over the image will display a tool-tip detailing the spell.

c. The player can scroll through the spells to highlight any one at a time.

d. The spell located at the top of the wheel is the spell that will be used upon clicking a target.

2. Mini-Map: a. The mini-map will be a circular reference at the top-right of the

screen that will indicate the location of the enemies relative to the player and the location of objects of interest.

Figure 1. Concept Camera Perspective 1

Page 17: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

10

Figure 2. Concept Camera Perspective 2

Figure 3. Concept Camera Perspective 3

Page 18: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

11

Figure 4. Concept Camera Perspective 4

Figure 5. Concept Camera Perspective (Rotated)

Page 19: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

12

Figure 6. Spell Wheel Concept

Page 20: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

13

Splash Images, Title Screen, & Menus

The GP game studios splash screen fades in upon game start (1 second fade in, 3 seconds screen time). The GP studios splash screen fades out (1 second fade out) and the White Hat Studios splash screen fades in (1 second fade in, 3 second screen time). The White Hat Studios logo fades out (1 second fade out), followed by the title screen fading in (1 second fade in, stays on screen and plays title screen music until player input). The title screen will then appear and player will be able to access the Main Menu by pressing any key.

1. Sounds a. Interactions will play a chirping sound. b. Confirming selections will play a chiming sound. c. Cancelling selections will play a distinct lower chirping sound.

2. Transitions a. All transitions will be like fire burning an image onto the screen.

Title Screen This will be displayed at the beginning of the game saying “press any button”

1. Start Game will direct the player to the Main Menu.

Figure 7. Title Screen Concept

Page 21: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

14

Main Menu

1. When transitioning to the Options or Achievement Menus the menu will slide across the screen revealing the new menu.

2. Play: Initiates a play session. 3. Options: Opens the “Options Menu.” 4. Achievements: Opens the “Achievements Menu” 5. Exit: Terminates the application.

Figure 8. Main Menu Concept

Page 22: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

15

Options Menu

1. Video: a. Gamma/Brightness: Adjusts the brightness of the screen image to

suit player preference. b. Resolution: Adjusts the number of pixels displayed on screen to

improve the sharpness of the image. c. Windowed Mode: Toggles between windowed and full screen

modes. i. Windowed: The application runs in a distinct window. ii. Full Screen: The application fills the screen without any

window seams. d. V-Sync: Adjusts the position of the image on the screen.

2. Sounds: a. Master Volume: Toggles the overall volume of the game. b. Music Volume: Toggles the volume of the music in the game. c. SFX Volume: Toggles the volume of the effects and voice acting

played during the game. 3. Controls: Opens the Controller Menu.

Figure 9. Options Menu Concept

Page 23: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

16

Controls/Controller Menu

1. The Controller Menu will explain the controls to the player. a. Refer to the Control section for further details.

Table 4. Control Scheme

Action Keyboard Xbox 360 Controller

Walk/ Run Forward

W key Tilt/ Press Forward on left thumb stick

Walk/ Run Backward

S key Tilt/ Press Backward on left thumb stick

Walk/ Run Left

A key Tilt/ Press Left on the left thumb stick

Walk/ Run Right

D key Tilt/ Press Right on the left thumb stick

Cast spell Left Mouse Click A, B, X, Y, RB depending on the spell assigned by Player

Change Spell Middle Mouse Button Scroll Left/Right Triggers

Page 24: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

17

Achievements Menu

1. It shows the achievements acquired through playing the game. 2. Achievements not yet acquired will be grayed out. 3. Refer to the achievements sections for specific achievement information.

Figure 10. Achievements Menu Concept

Credits

1. Scrolls the Credits. 2. Any button input will return the player to the Main Menu screen.

Page 25: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

18

Loading Screen

1. Gameplay tips will display during load time. 2. Tutorial images will be rendered on screen.

a. The player may scroll through them with the arrow keys. 3. Once the loading time is completed, the phrase “Press Space Bar” will

appear. 4. Pressing the space bar will then start the game 5. A flame animation will inform the player that the game has not frozen.

Figure 11. Loading Screen Concept

Page 26: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

19

Pause Menu

1. Play: Return to playing the game. 2. Options: Opens the Options Menu. 3. Achievements: Opens the Achievements Menu. 4. Exit: Terminates the play session and returns the player to the Main Menu

screen.

Figure 12. Pause Menu Concept

Game over screen

1. When the player wins the game the game goes to the credits screen 2. When the player loses the game:

a. Continue: Returns the player to the last checkpoint to resume play. b. Quit: Returns the player to the Main Menu screen. c. Check points are the start of each area (Forest, Ruins, Waterfall,

Path to Cave, Cave)

Page 27: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

20

Figure 13. Game Over Concept

Page 28: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

21

Interactive Rhythm

Timing

1. The typical play session should last between 10 minutes and 15 minutes. 2. The entire game will last 15 minutes. 3. Replay value will be maintained through the different ways the player can

choose to level up their spells. a. By choosing to use different spells with different frequencies will

change the level of the spells the player will have acquired by the time they reach the boss.

4. Additional replay value will come from an achievement system that will also serve to inform the player of progress in the game.

5. Each enemy encounter will be followed by a 8-10 second period of movement.

6. Enemy kill times (per individual enemy): a. Wolf – 5 Seconds b. Alpha Wolf – 8 Seconds c. Shadow – 5 Seconds d. Amphibian – 5 Seconds e. Garuda (Final Boss) – 3.5 mins

i. Minions – 38 Seconds 1. Amphibian – 5 Seconds 2. Shadow – 5 Seconds 3. Alpha – 8 Seconds 4. Two Wolves – 10 Seconds 5. Garuda (Wings) – 10 Seconds

ii. Altar – 10 Seconds iii. Repeat Four Times (4 x 48 = 192 Seconds)

Page 29: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

22

Interactive Rhythm Diagram

Players Starts the Games

Player explores the Environment

Player encounters Enemies

Player casts spells on enemies

Re-Spawn

Player Loses Player wins

Player moves into next Environment

Figure 14. Basic Interactive Rhythm/Flow

Page 30: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

23

How the Player Marks Progress

Altar Gates (Checkpoints)

1. At the end of each major section of the path the player will encounter altars.

a. Each altar will have an associated color related to the colors for the spells.

b. The player will be blocked by a glowing barrier until the altar is struck with the corresponding spell.

c. Once the altar is properly struck it will give audio and visual feedback to inform the player.

2. The purpose of the altars is to teach the player the color/spell system in preparation for the final battle where this knowledge will be put to the test.

Mini-Map

1. The mini-map will display at the top right corner of the screen. a. Enemy positions, relative to the player, will display on the mini-map. b. When enemies die they will fade from the mini-map.

Location Feedback

1. Upon entering a different section of the world an introduction will display. 2. The name of the section will display for the player (e.g. upon entering the

forest a message will display saying “The Forest”). 3. The image will fade out after five seconds.

Level-up

1. Each spell icon (circular image on the spell wheel) will fill with experience upon successful uses (see Spell System section for details on success).

a. This meter will reset upon a level up. 2. When a spell levels up, a short particle effect will generate that will match

the color of the design property of the spell. a. Green for Gust (Wind Spell). b. Red for Conflagration (Fire Spell). c. Brown for Quake (Earth Spell). d. Blue for Riptide (Water Spell). e. White for Refresh (Holy Spell).

Achievements

1. When certain conditions are met, certain Achievements will display indicating player completion of content.

Page 31: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

24

2. The name of the Achievement will display for the player. 3. The image will fade out after five seconds.

Other ways to measure progress

1. As the player advances through the game, the enemy groups will increase in numbers thus increasing the difficulty of the game.

2. The player will encounter a boss at the end of the level, marking the end of the game.

Page 32: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

25

Detailed Design Breakdown

Front End Flow Chart

Into / Title Screen

Main Menu

Start Game Options Credits

ProfileSelection /

Saved Games

In Game

Acheivments

Exit Game

IfNo input for 30

seconds

Pause Menu

Figure 15. Front End Flow Chart

Page 33: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

26

Game Flow Chart

New Game Load Level Enter Forest

Move Forward

Start at Checkpoint

Load Level Load Game

Encounter Enemies

Fight Enemies

Player Health >= 0

Yes

Defeat Enemies

NoEnter Cave

Area

No

Fight Boss Yes

Defeat Boss

Complete Game

Figure 16. Game Flow Chart

Glossary of Terms Achievements – A game award that can be unlocked through the player performing specified requirements. AOE – The area affected by either spells or enemy attacks measured in yards. Cast Spell – A combat ability in which the player character casts a magic spell based on input. Camera – A view frustum that displays the games world to the player and events. Character – Main playable character for Incanto; the Player Character. Change Spell – An interface ability in which the player changes the currently selected spell. Checkpoint – A point in game play that the player will be re-spawned to if he has died or hit a game over, they get triggered based off events or progressed areas. Cool down – The minimum amount of time that needs to pass before a spell can be re-used again.

Page 34: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

27

Credits – Screen where every person that took part in the game making will be listed along with their roles in the process. Field of View – The angle at which you can view the space before your eye. Damage – The amount subtracted from either the player‟s or the enemies‟ HP. Debuff – Temporary alteration to player‟s or enemies‟ attributes. Duration – The amount of time a spell lasts in screen. Experience Points – Points assigned for using spells. Accumulation leads to increased levels. Increased levels increase spell impact. Failure (Spell) – When a spell doesn‟t damage an enemy. Frustum – Six planes that are used to define an amount of space. Field of View – Distance or range of the games world that the games camera will allow the player to view. Game over – Death in the game world (not a final state), which prompts the choice to quit or to continue from a checkpoint. Gamma – Attribute that adjusts games brightness. HP – Health Points that reduce when the player or the enemies are struck by attacks. Level-Up – Result of reaching a predetermined number of Experience Points. Spells get stronger through usage repetition. Master Volume – The overall volume of the game; modulates the Sound Effects and Music volume. Music Volume – Controls the volume of all music in the game. Pause – Interrupts gameplay to allow the player to step away from the keyboard. Perspective – The state of existing in space before the eye. Pitch – Defines the angle of rotation along the X axis. Player Progress – Amount of time the player has spent playing the game along with how far along they are until finishing the game.

Page 35: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

28

SFX Volume – Sound attribute for sound effects. Splash Screen – Screens that fades in and displays teams and licensed software that was involved in the games making. Success (Spell) – Whenever a spell connects to an enemy and deals damage. Range – The distance that a spell reaches measured in yards. Roll – Defines the angle of rotation along the Z axis. Targeting – An in-game mechanic that will select an enemy NPC and allow the player to cast towards their position. Tool-Tip – A help message that defines an option in the game. Yaw – Defines the angle of rotation along the Y axis. .

Page 36: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

29

Combat System

1. Targeting

a. Enemies are targeted by highlighting them with mouse cursor and clicking the left mouse button to cast the spell on them.

b. The camera will remain unaffected during the targeting and casting phase.

2. Range a. Range will be marked in yards. b. When clicking a spell cast, if the player is out of range there will be

an audio reminder that the spell is not castable. 3. Damage

a. Both the player character and the enemies will have Health Points (HP).

b. HP decrease when hit by spells and abilities. c. HP does not regenerate independently of a healing spell.

4. Spells a. The player will use spells to damage enemies. b. See the Spell System section in Characters for details about the

Spell System.

Page 37: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

30

Characters

Figure 17. Character Art Style Guide

Figure 18. Character Art Style Guide II

Monk (Player)

Brief Description The Monk represents the player‟s avatar. He will be the means through which the player interacts with the world. He will be able to caste spells to defeat enemies.

Visual Design All of the monk‟s clothing will be made of cloth. Most of his torso will be exposed, showing his many tattoos. His tattoos will be glowing. The Monk will be six feet tall.

Page 38: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

31

Figure 19. Player Tattoo Color Concept

Figure 20. Player Texture Concept

Page 39: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

32

Dialogue

1. Upon spawning or respawning: a. “For the Dragon!”

2. When casting: a. Gust:

i. “Get away from me!” ii. “Be gone, filth!

b. Riptide: i. “Drink up!” ii. “Drown in the deeps!”

c. Earthquake: i. “The earth rages!” ii. “I‟ll crush you!”

d. Conflagration: i. “By fire be purged!” ii. <in hales> “Burn!”

e. Refresh: i. “Do not forsake me!” ii. “I refuse to die.”

3. When injured: a. <grunting>

4. When cast fails: a. “I cannot reach it!”

5. Upon death: a. “I have… failed… you.”

Behaviors

1. Walk: the player moves around the environment. 2. Run: the player moves around the environment quickly. 3. Spells: the primary form of combat is spell casting.

a. Gust b. Riptide c. Earthquake d. Conflagration e. Refresh f. For spell attributes, see “Spells” section.

Attributes

Health 25 hp

Walk Speed 2.5 ft/s

Run Speed 4.5 ft/s

Page 40: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

33

Spell System

1. Spell Behaviors a. Each spell will have a unique ~1.5 second casting animation to

occur concurrently to the spell effect animations. b. Each spell will have a unique audio-visual effect.

i. Quake: 1. The player produces a projectile that strikes at the

feet of the enemy. 2. The ground at the feet of the enemy erupts (not lava,

just an explosion) in an area around the targeted enemy causing all nearby enemies to slow down.

3. This produces the sound of two rocks being crushed together.

ii. Gust: 1. The player extends an arm toward a target and

pushes enemies back with a mighty wind. 2. This produces the sound of a gust of wind.

iii. Riptide: 1. The player makes a rising motion toward an enemy. 2. A geyser bursts out of the ground under the enemy

stunning nearby enemies. 3. This produces the sound of surging water.

iv. Conflagration: 1. The player creates a flame and drops it on the ground

where it spreads into a small inferno. 2. This produces the sound of a roaring blaze.

v. Refresh: 1. The player glows brightly and HP are restored. 2. This makes a harmonious sound.

c. Success i. Counts toward leveling up a given spell. ii. Requires that the spell deal damage to at least one enemy.

d. Failure i. Does not count toward leveling up a given spell. ii. Requires that the spell fail to cause damage at any point

during its duration. 2. Cooldowns

a. Cooldowns will run concurrently. 3. Tool-Tips

a. Spell tool-tips will display upon mouse-over. b. Spell tool-tips will display the current level of the spell, the progress

as a percentage toward leveling-up the spell, and its „flavor text‟. c. Spell tool-tips‟ flavor texts will reflect potential changes to individual

spells through the leveling process via the text:

Page 41: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

34

i. “Quake: Hex the ground beneath an enemy causing the earth to erupt tripping surrounding enemies.”

ii. “Gust: Create a mighty wind that blows enemies away.” iii. “Riptide: Summon a geyser at the feet of an enemy stunning

it and any enemies within range.” iv. “Conflagration: Burn the ground at your feet to injure nearby

foes v. “Refresh

4. Leveling Up Spells a. Experience toward a given spell is awarded by the first hit to an

enemy following the casting of the spell (i.e. per use). i. E.G. Conflagration may strike no enemies if cast outside of

combat and will therefore not generate an experience point. b. Notification of Level Up

i. Each time a spell reaches a new level the player will receive feedback in the form of an animation around the player character.

ii. The animation will be accompanied by a textual explanation of what has happened: “X Spell has reached level Y!”

Figure 21. Spell Level Up Concept

Page 42: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

35

Figure 22. Quake Concept

Figure 23. Gust Concept

Figure 24. Riptide Concept

Figure 25. Conflagration Concept

Page 43: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

36

Figure 26. Refresh Concept

Page 44: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

37

Table 5. Spell Breakdown

Spell Name Damage Spell Effect

AOE Notes Duration Range Cooldown Uses to Level-

Up

Quake LV 1

4 HP Target Reduces Movement

Speed 35%

.5 Unit Radius Projectile Debuff:

2.5 Seconds

8 6 Seconds 13 2 HP

Splash 2 Unit Radius Around Target

Quake LV 2

4 HP Target Reduces Movement

Speed 40%

.5 Unit Radius Projectile Debuff:

2.5 Seconds

8 6 Seconds 24 3 HP

Splash 2.5 Unit Radius Around Target

Quake LV 3

5 HP Target Reduces Movement

Speed 45%

.5 Unit Radius Projectile Debuff:

2.5 Seconds

8 6 Seconds 4 HP

Splash 3 Unit Radius Around Target

Gust LV 1 3 HP Pushback

5 Units

5 Unit Radius Cone N/A 5 6 Seconds 13

45 Degree Arc

Gust LV 2 5 HP Pushback

6 Units

5 Unit Radius Cone N/A 5 6 Seconds 24

45 Degree Arc

Gust LV 3 7 HP Pushback

7 Units

5 Unit Radius Cone N/A 5 6 Seconds

45 Degree Arc

Riptide LV 1

4 HP Target

Stun 1 Unit Radius Around Target

Debuff: 1.25

Seconds 8 3 Seconds 15 2 HP

Splash

Riptide LV 2

5 HP Target

Stun 1.5 Unit Radius Around Target

Debuff: 1.25

Seconds 8 3 Seconds 30 3 HP

Splash

Riptide LV 3

6 HP Target

Stun 2 Unit Radius Around Target

Debuff: 1.25

Seconds 8 3 Seconds 4 HP

Splash

Conflagration LV 1

1 HP/Second

N/A 3 Unit Radius Around Player

5 Seconds

N/A 7 Seconds 12

Conflagration LV 2

1 HP/Second

N/A 4 Unit Radius Around Player

7 Seconds

N/A 8 Seconds 30

Conflagration LV 2

1 HP/Second

N/A 5 Unit Radius Around Player

9 Seconds

N/A 9.5

Seconds

Refresh LV 1 9 HP N/A N/A N/A N/A 25

Seconds 10

Refresh LV 2 15 HP N/A N/A N/A N/A 25

Seconds 15

Refresh LV 3 21 HP N/A N/A N/A N/A 25

Seconds

Page 45: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

38

Wolf

Brief Description The wolf is the “cannon fodder” enemy of the game. While not threatening alone, when in numbers or if lead by an alpha wolf, he can become quite formidable. Wolves are 3.5 feet tall and 5 feet long.

Visual Design The wolf will be purple in color. He will look like a normal wolf, except he will have two tails.

Figure 27. Wolf Face Concept

Page 46: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

39

Figure 28. Wolf Early Concept

Figure 29. Wolf Body Structure Concept

Page 47: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

40

Figure 30. Wolf Early Color Concept

Dialogue N/A

Behaviors

Skill Name Damage Spell Effect AOE Notes Debuff

Duration Range Cooldown

Bite 2 HP N/A N/A N/A 0 FT 2 Seconds

Leap 1.5 HP N/A Caster moves

8 FT 2.5

Seconds 8 FT 10 Seconds

Howl 0 HP

Increases Player

Cooldowns By 1 Second

3 FT Radius Around Caster

4 Seconds

8 FT 15 Seconds

Claw Swipe 1 HP N/A N/A N/A 0 FT 1.5

Seconds

1. Run: Wolf moves at a fast rate to pursue the player. 2. Bite: The wolf will bite at the player. 3. Leap: The wolf will leap at the player, dealing damage. 4. Howl: The wolf will howl, causing the player‟s cooldowns to increase by 1

second (not cumulative). 5. Claw Swipe: The wolf will swipe at the player with his claws.

Page 48: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

41

Wolf Monster

(Medium Enemy)

Health > 0

Combat State

Flee State

Death State

Yes

Distance to Player

> 20

Health < 30%

No

Health > 30%

Yes No

NoYes

Distance to Player

< 1

Bite is Ready

Leap is Ready

Yes No

Bite

Leap

(to distance < 1)

Claw Swipe is

Ready

Move Towards

Player

(to distance < 1)

Yes No

NoYes

Leap is Ready

Leap

(to distance > 20)

Move Away from

Player

(to distance > 20)

NoYes

Idle State

Regeneration State

(to Health = 3 over

time)

NoYes

Howl is Ready

Howl

Yes

No

Claw Swipe

Flank Player

(surround player)

Yes No

Figure 31. Wolf AI

Attributes

Health 8 hp

Run Speed 6.5 ft/s

Page 49: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

42

Alpha Wolf

Brief Description The alpha wolf will be larger and more threatening than the wolf. He will also be able to command packs of wolves, as well as summon more should his situation become dire. The Alpha wolf is larger than its pack members at 5 feet tall and 7 feet long.

Visual Design The alpha wolf will have a similar visual style to the wolf. He will be larger than the wolf and also have more fur around his neck and head area. His ears will also be larger and more prominent.

Figure 32. Alpha Wolf Color Concept

Dialogue N/A

Behaviors

Skill Name Damage Spell Effect AOE Notes Debuff

Duration Range Cooldown

Bite 2.5 HP N/A N/A N/A 0 FT 2 Seconds

Leap 1.5 HP N/A Caster moves 8 FT over 1

second

2.5 Seconds

8 FT 10 Seconds

Howl 0 HP Summons

Two Wolves 3 FT Radius

Around Caster N/A 3 FT

One Time Cast

Claw Swipe 1 HP N/A N/A N/A 0 FT 1.5

Seconds

Page 50: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

43

1. Run: Alpha wolf moves at a faster rate to pursue the player. 2. Bite: The alpha wolf will bite at the player. 3. Leap: The alpha wolf will leap at the player, dealing damage. 4. Bark: The alpha wolf will bark orders, summoning two more wolves to

attack the player.

Alpha Wolf

(Squad AI)

Scatter State

(Disband Squad)

Leader Health > 0

Leader Distance <

20

Yes No

Leader Health >

30%

Leader Health >

30%

Yes No

Combat State

Total Pack Size - 2 > 0

&&

Total Pack Size -2 >=

Current Pack Size

Yes No

Leap is Ready

Howl is Ready &&

Is first howl

Bite is Ready

Yes Yes NoNo

Howl

(call 2 more

wolves)

Move Away from

Player

(to Leader distance >

20)

Idle State

Regeneration State

(Leader Health to 3

over time)

NoYes

Leader Distance <

1

Leap

(to Leader

Distance < 1)

Flank Player

(surround player)

Bite

Move In

(to Leader

Distance < 1)

NoNo YesYes

Figure 33. Alpha Wolf Pack AI

Attributes

Health 12 hp

Run Speed 6 ft/s

Page 51: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

44

Shadow

Brief Description A swift enemy, the Shadow relies on darkness to maneuver around the player and attack from a medium range. The shadow is 8 feet tall.

Visual Design The shadow is humanoid shaped. He will be all black. The player will most often only see his upper body, as he will be submerged in a pool of shadow.

Figure 34. Shadow Musculature Concept

Figure 35. Shadow Early Concept

Page 52: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

45

Figure 36. Shadow Features Concept

Page 53: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

46

Figure 37. Shadow Rough Concept 2

Dialogue N/A

Behaviors

Skill Name Damage Spell Effect AOE

Notes Debuff

Duration Range Cooldown

Shadow Slash 1 HP Caster Dashes 8

FT In One Second

8 FT Line N/A 8 FT 1.5 Seconds

Shadow Slap 1 HP N/A N/A N/A 8 FT 2 Seconds

Shadow Bind 0 HP

100% Movement

Speed Reduction

N/A Until

Shadow is Struck

11 FT 15 Seconds

1. Shadow Move: The shadow will sink into his shadow pool and move to

another location. Upon arrival, he will rise back up out of the pool.

Page 54: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

47

2. Shadow Slash: Shadow will dash past the player, dealing damage as he passes.

3. Shadow Slap: Shadow stretches out his arm and strikes the player. 4. Shadow Bind: Shadow reaches into the shadow pool and causes another

shadow pool to form around the player‟s feet. The player‟s movement is then completely arrested.

Shadow

(Light Enemy)

Combat State

Death State

Health > 0

Player Health >

40%

Distance to Player

< 4

Distance to Player

< 20

Slap is Ready

Slash is Ready

Slash

Slap

Idle State

Distance to Player

< 4

Move Towards

Player

Move Towards

Player

Bind is Ready

&& Player Not

Bound

Move Towards

Player

Bind

(until hit)

Yes

Yes

YesYes

Yes

Yes

Yes

No

No

No

No

NoNo

No

Yes

Figure 38. Shadow AI

Attributes

Health 8 hp

Shadow Move Speed 8 ft/s

Page 55: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

48

Amphibian

Brief Description The Amphibian is a slow moving water insect that casts spells from a long range. The Amphibian is 9 feet tall.

Visual Design The amphibian is a four-legged creature with a gray skin tone. He will have two serrated blades for arms. His neck will have orange gills on either side. His eyes are solid black and his lips small and red.

Figure 39. Amphibian Concept (color)

Page 56: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

49

Figure 40. Amphibian Exaggerated Concept

Figure 41. Amphibian Features Concept

Page 57: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

50

Dialogue N/A

Behaviors

Skill Name Damage Spell Effect AOE

Notes Debuff

Duration Range Cooldown

Slash 3 HP N/A N/A N/A 0 FT 1 Seconds

Spike Shot 2.5 HP N/A N/A N/A 10 FT 2 Seconds

Acid Shot 0.5 HP

per Second

75% Movement Speed

Reduction N/A

3 Seconds

4 FT 10 Seconds

1. Run: The amphibian moves at a faster rate to pursue the player. 2. Slash: Amphibian will slash at the player with his serrated forearm. 3. Spike Shot: Amphibian will shoot spines from his forearms at the player. 4. Acid Shot: Amphibian shoots acid ooze at the player that slows the

player‟s movement and deals damage over time.

Amphibian

(Heavy Enemy)

Death State

Health > 0

Combat State

Spike is Ready

Distance to Player

< 20

Spike

Idle State

Distance to Player

> 2

Move Towards

Player

Acid Shot is Ready

Slash is Ready

Acid Shot

Yes

Yes Yes

Yes

Yes

No

No

NoNo

No

Yes

Slash

Yes

Move Towards

Player

No

Distance to Player

> 4

Figure 42. Amphibian AI

Page 58: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

51

Attributes

Health 8 hp

Run Speed 4 ft/s

Page 59: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

52

Garuda

Brief Description The Garuda is a massive boss monster that commands lesser enemies and fills a cavernous shrine with its monstrous feathered serpent form.

Visual Design Garuda will be a giant, winged serpent monster. His body will be that of a snake. He will have the head of an eagle and his wings will stretch out from his back. His snake skin will be green and his feathers will be red and white. He will be 54 feet tall.

Figure 43. Garuda Concept

Page 60: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

53

Behaviors

Skill Name Damage Spell Effect AOE

Notes Debuff

Duration Range Cooldown

Fireball 2 HP per Second

DOT AOE Zone 6 Feet Circle

10 Seconds

0 FT 1 Seconds

Summon Minions

N/A Spawns Minions N/A N/A N/A Automatic After Gust

Gust 10 HP 75% Movement

Speed Reduction

N/A 3

Seconds 4 FT

Automatic Upon Altar Hit

1. Fireball: Garuda will breath fire towards the player. 2. Gust: Garuda uses his wings to push the player back.

Garuda

(Boss)

Health % 15 == 0

Guard State

(wings over alter)

Yes

Stun State

(wings not over alter)

No

Timer > 10s ||

Alter is Hit

Fireball is Ready

Fireball

No

Yes

Gust State(spawn minions)

No

Yes

Health > 0

Death State

Yes

No

Attributes

Health (Wings) 15 HP

Health (Altar 1 HP

Final Boss Fight

1. Player enters the cave

Page 61: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

54

2. Action stops and boss is presented to the player

a. Garuda: Demon King is shown on the bottom center of the screen

3. Battle starts

4. Garuda has its wings covering a pedestal

5. Garuda breathes fire into the player

6. Player gets hit, player is damaged for 3HP total

7. The player is given a hint on hitting Garuda‟s wings with spells (how?

8. Player hits Garuda‟s wings until 15HP of damage are dealt to the wings

9. Garuda then opens its wings exposing a pedestal that reflects the

checking point pedestals

a. The player remembers the checkpoint pedestals and decides to hit

the pedestal with the appropriate spells

b. The player hits successfully

10. Garuda closes its wings back; the player can‟t get out of the way on time.

a. Player gets hurt for 4HP

11. Garuda summons enemies to pester the player

12. Player gets rid of the enemies by casting spell

13. Player casts a healing spell on himself to recover life

14. Repeat steps 3 through13 with variations in spells and boss attacks until

boss is defeated

Fight Minions Attack Wings Attack AltarSummon Minions

Enter CaveHit Altar 4

times?No

Defeat Boss

Yes

Figure 44. Final Boss Flow Chart

Page 62: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

55

Levels and Maps

Verdenice

Goal The goal of Incanto is to make it through the various areas and find the cave where the sky god‟s shrine is located. Once the shrine is found, the player must defeat the sky god as retribution for the dragon lord.

Level Travel Units travel at various speeds throughout the level which can be seen in the Character section of the document.

Scale The world is divided into square units which are each 3ft x 3ft. The player will fit inside one square unit. The area of the world is 114 units x 138 units.

Player / Enemy Interactions – Behaviors Traverse (Walk/Run) Walk/Run through grass, foliage, water Fight enemies via spells Shadow can walk through solids

Spell Interactions – Behaviors Spell illuminates environment Gust – leaves fly in direction of gust Conflagration – fire on ground (illuminates) Earthquake – cracked/broken earth on ground Refresh – illuminates character Riptide – large plume of water Character radiates light (if dark)

Page 63: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

56

Environmental Interactions – Behaviors

1. Enemies Melee Ranged Snare/Stun spell Boss

Ambient Environmental Aspects/Objects in the Level

1. Ambient terrain noises: a. Waterfall b. Forest Sounds

The environment of the game is set in a forest which has a vast and expansive landscape. The trees are like skyscrapers as they hang over the forest floor which is covered with various forms of flora. The ground is covered in a mixture of grass, dry leaves, rocks and dirt. The pond which is hidden in the forest makes use of small flowers to accentuate the water‟s surface. Deeper in the forest there are ruins of a fortress which once stood with a majestic grace, but now is a shattered image with destroyed pillars, a huge concrete floor and rocks which are highlighted by moss, vines, and spider webs to show the amount of time that has passed. The ruins area has a dark eerie aura which is brought out by the shadow creature. The path to the water fall is a rocky path with almost no vegetation which foreshadows the showdown that is to come. Two imposing mountains straddle over the pass in which the player must travel. The pass follows the edge of one of the towering mountains while the other edge gives a view of the cliff. Near the end of the pass lies a natural bridge which connects the two mountains. As the player emerges from the mountain pass they are overtaken by the breathtaking view of the waterfall. The environment surrounding the waterfall gives the player a feeling of tranquility as the player encounters rocks covered with algae, soft flowing water and in the distance the player can hear the roar of the water as it crashes at the mountain base. But while the environment helps keep the player at ease, the farther they progress through the area the feeling changes from peaceful to unsettling as enemy presence grows in the area. The player will enter an area which has little to no vegetation which is also highlighted with dead trees and huge rocks to give a dominating feeling as the objects tower in comparison to the player. The cave which can be seen at the

Page 64: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

57

end of the path seems to be formed by natural erosion of the river which once flowed through its mouth and continued towards the waterfall.

Time Section Duration Quantity ====== ======= =======

Forest 2.5 minutes (3 fights) Ruins 1 minute (1 fights) Path to Waterfall 1.5 minute (2 fights) Waterfall 2.5 minutes (4 fights) Cave 5 minutes (Boss fight)

Map

Figure 45. Overhead Map

Page 65: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

58

Figure 46. Enemy Key

Figure 47. First Encounter

Page 66: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

59

Figure 48. Second – Fifth Encounters

Page 67: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

60

Figure 49. Sixth and Seventh Encounters

Page 68: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

61

Figure 50. Eighth and Ninth Encounters

Page 69: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

62

Figure 51. Tenth and Eleventh Encounters

Page 70: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

63

Figure 52. Twelfth and Thirteenth Encounters

Level Walkthrough – Verbal Map

1. Start at Entrance of Forest. 2. Player encounters 2 wolves. 3. Player continues on the path 30 ft. 4. Player encounters 4 wolves. 5. Player continues on the path 30 ft. 6. Player encounters 1 alpha wolf with a 4 wolf pack and 2 amphibians. 7. Player passes by a tranquil pond. 8. Player continues on the path 30 ft.

9. Player enters the Ruins. 10. Player encounters 2 shadows. 11. Player continues on the path 20 ft. 12. Player encounters another enemy group.

13. Player enters Path to Waterfall. 14. Player encounters 1 alpha wolf with a 2 wolf pack and 1 shadow. 15. Player continues along the path 15 ft. 16. Player encounters 3 amphibians. 17. Player continues along the path 30 ft.

Page 71: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

64

18. Player enters Waterfall. 19. Player encounters 1 alpha wolf, 1 amphibian, and 1 shadow. 20. Player continues along the path 30 ft. 21. Player encounters 2 amphibians. 22. Player continues along the path 15 ft. 23. Player encounters 2 shadows, 2 amphibians, and 1 alpha wolf. 24. Player continues along the path 40 ft.

25. Player enters the Cave. 26. Player encounters 3 shadows. 27. Continue along path 20 ft. 28. Boss Fight.

Page 72: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

65

Level Breakdown – Walkthrough and Camera Concepts

Figure 53. Level Start

Figure 54. Level Start: Top Down

Page 73: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

66

Figure 55. First Encounter

Figure 56. First Encounter: Top Down

Page 74: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

67

Figure 57. Second Encounter

Figure 58. Second Encounter: Top Down

Page 75: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

68

Figure 59. Third Encounter

Figure 60. Third Encounter: Top Down

Page 76: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

69

Figure 61. Ruins Arrival Screenshot Concept

Figure 62. Fourth Encounter

Page 77: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

70

Figure 63. Fourth Encounter: Top Down

Figure 64. Entering the Waterfall

Page 78: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

71

Figure 65. Fifth Encounter

Figure 66. Fifth Encounter: Top Down

Page 79: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

72

Figure 67. Sixth Encounter

Figure 68. Sixth Encounter (Top Down)

Page 80: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

73

Figure 69. Seventh Encounter

Figure 70. Seventh Encounter: Top Down

Page 81: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

74

Figure 71. Eighth Encounter

Figure 72. Eighth Encounter: Top Down

Page 82: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

75

Figure 73. Ninth Encounter

Figure 74. Ninth Encounter: Top Down

Page 83: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

76

Figure 75. Path to Cave Screenshot Concept

Figure 76. Tenth Encounter

Page 84: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

77

Figure 77. Tenth Encounter

Figure 78. Boss Cave

Page 85: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

78

Figure 79. Boss Cave: Top Down

Page 86: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

79

Storyboards

Figure 80. Entrance & Forest Transition

Figure 81. Entering the Forest

Page 87: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

80

Figure 82. First Encounter in the Forest

Figure 83. Enemies Attack (Event)

Page 88: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

81

Figure 84. Traversing the Forest

Figure 85. Using Riptide (Spell) Against Second Encounter

Page 89: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

82

Figure 86. Using Conflagration (Spell) Against Second Encounter

Figure 87. Victory and Feedback

Page 90: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

83

Figure 88. Encounter with the Forest Amphibian

Page 91: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

84

Figure 89. Encounter with the Forest Wolves

Page 92: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

85

Figure 90. Encounter with the Second Forest Amphibian

Page 93: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

86

Figure 91. Transitioning from Forest to Ruins

Figure 92. Battle with the Ruins Shadows

Page 94: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

87

Figure 93. Encountering Enemies at the Waterfalls

Figure 94. Transition to the Waterfall

Page 95: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

88

Figure 95. Encounters in the Waterfall Region Top Down

Figure 96. Second Encounter in the Waterfall Area Top Down

Page 96: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

89

Figure 97. Encounter by the Waterfalls at an Angle

Figure 98. Transition from Waterfall to Cavern Road

Page 97: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

90

Figure 99. Traversing the Cavern Road

Figure 100. Encounter with Shadows on the Cavern Road

Page 98: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

91

Figure 101. Casting Gust on Shadows

Figure 102. Casting Refresh to Heal

Page 99: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

92

Figure 103. Casting Conflagration

Figure 104. Casting Earthquake (Also Being Hit)

Page 100: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

93

Figure 105. Transtion to Cave

Page 101: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

94

Figure 106. Battle at the Mouth of the Cave

Page 102: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

95

Figure 107. Boss Battle Entrance

Figure 108. Boss Fight Start

Page 103: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

96

Figure 109. Boss Fight Minions (Round One)

Figure 110. Boss Fight Weakened (Fire Altar)

Page 104: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

97

Figure 111. Casting on the Altar

Figure 112. Boss Recovers (Gust on Player)

Page 105: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

98

Figure 113. Boss Fight Minions (Round Two)

Figure 114. Boss Fight Weakened (Earth Altar and Casting)

Page 106: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

99

Figure 115. Boss Recovers (Gust on Player)

Figure 116. Boss Fight Minions (Round Three)

Page 107: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

100

Figure 117. Boss Fight Weakened (Wind Alter and Casting)

Figure 118. Boss Recovers (Gust on Player)

Page 108: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

101

Figure 119. Boss Fight Minions (Round Four)

Figure 120. Boss Fight Weakened (Water Altar and Casting)

Page 109: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

102

Figure 121. Boss Dying

Page 110: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

103

Game Logic, and Rules

Interaction Component Matrix

Player Wolf Alpha Wolf

Shadow Amphibian Boss Head

Boss Arm

Boss (Split form)

Player

Wolf COL

Alpha Wolf COL COL

Shadow

Amphibian COL COL COL

Boss Head COL COL COL COL

Boss Arm COL COL COL COL COL

Boss (Split form)

COL COL COL COL COL COL

Earthquake Spell

DMG, SLOW

DMG, SLOW

DMG, SLOW

DMG, SLOW

DMG DMG DMG, SLOW

Riptide Spell DMG, SNARE

DMG, SNARE

DMG, SNARE

DMG, SNARE

DMG DMG DMG, SNARE

Gust Spell DMG, BACK

DMG, BACK

DMG, BACK

DMG, BACK

DMG DMG DMG, BACK

Conflagration Spell

DMG DMG DMG DMG DMG DMG DMG

Refresh Spell HEAL

Bite Attack DMG

Claw Swipe Attack

DMG

Leap Attack DMG

Howl Attack (Wolf)

SLOW

Howl Attack (Alpha Wolf)

Spike Shot Attack

DMG

Acid Shot Attack

DMG, SLOW

Slash Attack DMG

Shadow Slap Attack

DMG

Shadow Slash Attack

DMG

Page 111: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

104

Shadow Bind Attack

SNARE

Fire Breath (Boss Phase 2)

DMG

Fist Slam (Boss Phase 2)

DMG

Dash & Slash (Boss Phase 3)

DMG

Fire Breath (Boss Phase 3)

DMG

Tree COL COL COL COL COL COL COL COL

Rock COL COL COL COL COL COL COL COL

Ruin COL COL COL COL COL COL COL COL

Water COL COL COL COL COL COL COL COL

Grass COL COL COL COL COL COL COL COL

Legend

COL Collision occurs and reactions are calculated normally.

DMG The interaction causes damage to the character involved.

HEAL Health is restored to the player.

BACK The interaction causes the character involved to be knocked back.

Page 112: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

105

SNARE The interaction causes the character involved to be unable to move.

SLOW The interaction causes the character's movement speed to be reduced.

F.A.Q.

When does the game come out? A: Q4 of 2011

How many spells will the character have? A: Six

Why can’t I Melee? A: Because you are a monk who has taken a vow of pacifism

Why can’t I dodge, block or parry? A: We thought the fun of the game relies on spell casting, and not so much on agile combat and that is why

How long is the game? A: 15 minutes

Why is the game fun? A: Because you get the opportunity to manipulate spells at your will

Page 113: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

106

Can you describe the story of the game? A: You are a monk possessed by a dragon that wants revenge from another deity because it desecrated your dragon shrine

What is the genre of the game? A: This is mainly an RPG, you level up and you become stronger as you go. The battles are action oriented instead of turn-based

What is the look and feel of the game? A: The game develops in a natural environment. Our environment includes a forest, a waterfall, and a cave. We are trying to focus on a medieval feel

What is white hat studio? A: It refers to the government hackers that fight for good

How much is the game going to cost? A: Nothing, the game is free!

Where can I get this game? A: Gameproject.fullsail.com

Page 114: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

107

Reference of Key Elements

Winning/Losing

1. Main Goal a. Defeat the boss, Garuda, at the end of the game.

2. Sub-goals a. Defeat enemies b. Level-up spells

3. Winning a. The player wins the game by defeating the boss at the end of the

game. b. The player will then be presented with a “Victory Screen” informing

them that they have won. c. The game will then transition to the Credits, followed by the Main

Menu. 4. Losing

a. The player loses the game by losing all of their health. b. The player will be presented with a “Defeat Screen” informing them

that they have lost. c. The player will then be given the option to return to the main menu

or restart from their last checkpoint.

Transitions The player‟s progress will be saved automatically each time they enter a new area. Each area is locked by an altar using a spell color. Casting the correct spell will act as a key to opening the gate. Should the player die or decides to stop playing and load the game later, they will be place at the beginning of the last area they entered. The location of these area transitions can be seen on the level map above. All load screens in the game will present the player with the game‟s controls or tips on how to play the game.

Rewards The player will be primarily rewarded by leveling up their spells through use. By utilizing their spells a certain number of times, they spells will increase and level. The secondary reward is the achievements that are listed below.

Page 115: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

108

Achievements

1. First Steps a. Cast your first spell.

2. Master of the Elements a. Cast each spell once.

3. Big Bad Wolf my … a. Kill an alpha wolf.

4. Little Red Riding Hood a. Kill an alpha wolf without killing any of its pack.

5. Bringer of Light a. Kill a shadow

6. 9,001 a. Level up one spell to max level

7. Burn the witch! a. Catch 5 enemies in your conflagration spell.

8. The Avenger a. Defeat Garuda.

9. Genocide a. Kill all enemies in the game.

10. No Life a. Remain shadow bound for 3 minutes.

Page 116: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

109

Art and Production Design

3D Art & Animation Deliverables Filename: m_MainCharacter.bin Description: A monk with white boxer like bandages down the forearms with some wrapped around fingers as well as bandages wrapped around legs starting from calves down to ankles. His shoes are a lighter black boot with a v-cut between the big toe and other toes similar to a ninja shoes. His attire is white with orange accents and his tattoos emit blue at all times unless he is damaged Concept: Animation(s):

1. Idle a. Standing upright in a neutral position breathing

2. Attack Stance a. Legs spread further apart, back hunched slightly. Head still facing

forward. 3. Walking/Running

a. Character moves regular pace or briskly 4. Hurt

a. Character rocks backwards in chest area when hit 5. Dead

a. Character falls forward first to knees then chest first into ground 6. Spell Casts

a. Gust i. Characters right hand moves backwards then pushes

outwards like a punch but with palm open and a gust of air knockbacks the enemy.

b. Riptide i. Character lifts hand from side in an upward motion as water

lifts from the ground and stuns the enemy c. Quake

i. Character punches ground a surge of earth quakes and hits the enemy with a stun

d. Conflagration i. Character claps hand and in a downward motion drops his

hands and a ring of fire appears around the character. e. Refresh

i. Character lifts both hands with elbows bent and closes fists to heal self

Filename: m_Wolf.bin Description: A skinny wolf with purple fur which fades to dark blue on the tips of the hairs. Its eyes are yellow. It has two bushy tails. Concept:

Page 117: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

110

Animation(s): 1. Idle

a. Idle is just the wolf standing and breathing. 2. Attack Stance

a. Attack stance is its back end rises up in the air slightly while its front lowers and he begins to growl.

3. Run a. Wolf walks cautiously. Runs with intent.

4. Death a. Enemy falls over to its side.

5. Leaping a. While the wolf is running it lunges forward and strikes player to deal

damage. 6. Howl

a. The wolf anticipates and looks up then belts a loud howl that sends out a shockwave.

7. Bite a. The wolf leans forward and bites the player

8. Claw Swipe a. The wolf leans forward and slashes the player with his right claw

Filename: m_AlphaWolf.bin Description: A larger wolf than the standard wolf with longer ears and a fuller mane. He has three bushy tails. It has purple fur which fades to dark blue on the tips of the hairs, on the back part of legs and near feet the hairs are more course and sharper. His eyes are an ice cold blue. Concept: Animation(s):

1. Idle a. Idle is just the wolf standing and breathing.

2. Attack Stance a. Attack stance is its back end rises up in the air slightly while its front

lowers and he begins to growl. 3. Run

a. Wolf walks cautiously. Runs with intent. 4. Death

a. Enemy falls over to its side.

5. Leaping a. While the wolf is running it lunges forward and strikes player to deal

damage. 6. Howl

a. The wolf anticipates and looks up then belts a loud howl that sends out a shockwave.

7. Bite a. The wolf leans forward and bites the player

Page 118: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

111

8. Claw Swipe a. The wolf leans forward and slashes the player with his right claw

Filename: m_Amphibian.bin Description: An amphibious creature that has tentacles for arms and legs. It‟s skin is a bluish green that‟s rubbery. Concept: Animation(s):

1. Idle a. Idle is just the creature standing upright breathing in and out

2. Run a. Tentacles glide along ground slowly. Tentacles glide along ground

quickly. 3. Death

a. Screams out in agony and falls forward. 4. Slash

a. The enemy reels back and slashes with its serrated tentacles. 5. Spike Shot

a. Crosses arms in X pattern and pushes forward as spikes from tentacles shoot out.

6. Acid Shot a. Chest raises as body reels backwards and spits a projectile vomit

Filename: m_Garuda.bin Description: A humanoid torso, the head and wings of an eagle with the bottom body which is that of a snake. Concept: Animation(s):

1. Idle a. Idle is just the creature standing upright breathing in and out

2. Death a. Screams out in agony and falls forward.

3. Breathe Fire a. The enemy reels back and gathers breath and breathes a lot of fire

4. Wings Open a. Garuda is stunned and wings are open revealing the altar

Filename: Altar.bin Description: A generic marble altar with a colored sphere on it. Concept: Animation(s): none Filename: m_Tree01.bin Description: A redwood tree which is very tall. Concept: Animation(s): none

Page 119: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

112

Filename: m_Tree02.bin Description: A redwood tree which is very tall. Concept: Animation(s): none Filename: m_Tree03.bin Description: A redwood tree which is very tall. Concept: Animation(s): none Filename: m_Tree04.bin Description: A redwood tree which is very tall. Concept: Animation(s): none Filename: m_Grass.bin Description: Kentucky bluegrass. Concept: Animation(s): none Filename: m_Bush.bin Description: Honeysuckle dwarf Concept: Animation(s): none Filename: m_RockBundle01.bin Description: Gila Bend Arizona Rock Concept: Animation(s): none Filename: m_RockBundle02.bin Description: Gila Bend Arizona Rock Concept: Animation(s): none Filename: m_Plant01.bin Description: Concept: Animation(s): none Filename: m_Plant02.bin Description: Concept: Animation(s): none

Page 120: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

113

Filename: m_RuinArchway.bin Description: Greyish manmade rocks forming an archway assembled with moss coming off of it. Concept: Animation(s): none Filename: m_RuinBrokenWall.bin Description: Greyish manmade rock wall with moss coming off of it. Concept: Animation(s): none Filename: m_RuinBrokenPillar.bin Description: Greyish manmade rock pillar that has eroded with time. It also has moss coming off of it. Concept: Animation(s): none Filename: m_RuinConcreteFloor.bin Description: Greyish manmade rocks that have slightly separated over time with numerous cracks. Concept: Animation(s): none Filename: m_Lake.bin Description: A medium sized body of water Concept: Animation(s): none Filename: m_GroundPlane.bin Description: A dirt pathway Concept: Animation(s): none Filename: m_Cave.bin Description: Dark, dank, damp, dismal. Concept: Animation(s): none Filename: m_Mountain.bin Description: Rocky Mountains (literally) plus Mount Fuji (because it‟s awesome) Concept: Animation(s): none Filename: m_Skybox.bin Description: A mid day, bright blue sky with a lot of cumulonimbus clouds. Concept:

Page 121: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

114

Animation(s): none

2D Art (HUD/Menu/Particle/Textures) Deliverables Filename: HUDWheel.bin Description: A silver wheel that allows you to cycle through spells. There are multiple smaller circles on the main wheel in which your spells are indicated. Concept: Animation(s): none Filename: HUDHealthbar.bin Description: The green health bar. Concept: Animation(s): none Filename: MainMenu.bin Description: A dark grey box that sits to the left of the screen. Concept: Animation(s): none Filename: OptionsMenu.bin Description: A dark grey box that is across the entire screen. Concept: Animation(s): none Filename: SplashScreenLoading.bin Description: The dragon passing into the monk and granting him his powers. Concept: Animation(s): none Filename: SplashScreenGameOver.bin Description: The dragons eyes staring at you. With game over options on bottom. Concept: Animation(s): none Filename: GameOverMenu.bin Description: The dragons eyes staring at you. Concept: Animation(s): none

Sound Effects Deliverables Filename: MenuInteract.bin Description: A chirping sound.

Page 122: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

115

Filename: MenuConfirm.bin Description: A chiming sound. Filename: MenuCancel.bin Description: A distinct chirping sound – lower in tone. Filename: WalkStepDirt.bin Description: As if you were walking in dirt. Filename: WalkStepRock.bin Description: As if you were walking on stone. Filename: WalkStepSplash.bin Description: As if you were walking in shallow water. Filename: WolfGrowl.bin Description: Large dog growling. Filename: WolfBark.bin Description: Large dog barking. Filename: WolfSnarling.bin Description: Large dog snarling. Filename: WolfInjured.bin Description: Large dog yelping. Filename: WolfDeath.bin Description: Longer yelp. Filename: PlayerSpawnVoice.bin Description: Player says “For the Dragon!” Filename: PlayerCastGustVoice1.bin Description: Player says “Get away from me!” Filename: PlayerCastGustVoice2.bin Description: Player says “Be gone, filth!” Filename: PlayerCastRiptideVoice1.bin Description: Player says “Drink up!” Filename: PlayerCastRiptideVoice2.bin Description: Player says “Drown in the deeps!”

Page 123: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

116

Filename: PlayerCastEarthquakeVoice1.bin Description: Player says “The earth rages!” Filename: PlayerCastEarthquakeVoice2.bin Description: Player says “I‟ll crush you!” Filename: PlayerCastConflagrationVoice1.bin Description: Player says “By fire be purged!” Filename: PlayerCastConflagrationVoice2.bin Description: Player says “Burn!” Filename: PlayerCastRefreshVoice1.bin Description: Player says “Do not forsake me!” Filename: PlayerCastRefreshVoice2.bin Description: Player says “I refuse to die.” Filename: PlayerInjuredVoice.bin Description: Player makes grunting noises. Filename: PlayerCastFailVoice.bin Description: Player says “I cannot reach it!” Filename: PlayerDeathVoice.bin Description: Player says “I have… failed… you.” Filename: ShadowSlapSound.bin Description: His arm makes a “whoosh” sound as it extends out. Filename: ShadowSlapImpact.bin Description: A loud “slap.” Filename: ShadowSlashSound.bin Description: A “shing” sound is made as he dashes. Filename: ShadowBindSound.bin Description: Magical swirling noise. Filename: ShadowInjured.bin Description: A loud hiss. Filename: ShadowDeath.bin Description: Screaming hiss followed by magical swirling. Filename: AmphibianSpikeShotSound.bin

Page 124: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

117

Description: Sounds like an air gun firing a dart. Filename: AmphibianAcidSpitSound.bin Description: A hissing spit, similar to the Jurassic Park dinosaur that spit the slime. Filename: AmphibainAcidSpitAmbient.bin Description: Sounds like acid burning through a surface. Filename: AmphibianSlashSound.bin Description: Hacking sound. Filename: AmphibianInjured.bin Description: A reptilian hissing noise. Filename: AmphibianDeath.bin Description: Extended reptilian hissing noise. Filename: GarudaFireSpit.bin Description: Sounds like a dragon breathing fire. Filename: FireSpitImpact.bin Description: Sounds like a small, fiery explosion. Filename: GarudaWingsInjured.bin Description: Load roar mixed with eagle scream. Filename: GarudaStunned.bin Description: Heavy breathing. Filename: GarudaGust.bin Description: Large wings moving, air being pushed. Filename: GarudaAltarReaction.bin Description: Loud, drawn out roar/eagle scream. Filename: Description:

Music Deliverables Filename: MenuSong.bin Description: Soft orchestral music that‟s not intruding or extremely loud like its shouting at you. Filename: BattleSong.bin

Page 125: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

118

Description: Fast drum and orchestral melody. Filename: BossBattleSong.bin Description: Big beating drums and orchestra with deep chanting

Cutscenes/Pre-rendered scene Deliverables None Planned…

Page 126: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

119

Technical Design Overview The technical design documentation for Incanto is used as a blueprint for the upcoming project and its architecture. In this documentation you can learn about the coding standards, system architecture, testing procedures and code review plan for the project. This blueprint will also be used as a reference to the architecture as seen in the module breakdowns when the modules are being implemented.

Page 127: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

120

Milestone Deliverables The following breakdown is used to depict the systems and features that will be implemented for each associated phase of production.

Core

1. Animations a. Player animations b. Wolf animations

2. Camera a. 3rd person b. Soft attach c. Mouse look behavior (mouse can control view of camera)

3. Enemies a. Wolf

4. Enemy AI a. Wolf behaviors

5. HUD a. Spell wheel b. Health bar

6. Input a. Keyboard b. Mouse

7. Level a. Forest b. Ruins c. Terrain

8. Menus a. Main menu b. Pause menu c. Win screen d. Loss screen

9. Music a. Gameplay music b. Menu music c. Menu interactions d. Gust SFX e. Earthquake SFX f. Wolf hit SFX g. Wolf bark SFX h. Dialogue for player spawn

10. Player Actions a. Run b. Cast gust

Page 128: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

121

c. Cast earthquake d. Death

11. Player model a. Final model with UV coordinates

12. Skybox a. Placeholder skybox for world

13. Sound System a. Play looping sounds b. Play non-looping sounds

14. Spells a. Gust b. Earthquake

15. Win/Lose Condition a. Victory b. Cruel, bitter defeat

Alpha

1. Animations a. Alpha wolf animations b. Garuda animations c. Shadow animations

2. Enemies a. Alpha wolf b. Garuda c. Shadow

3. Enemy AI a. Alpha wolf behavior b. Garuda behavior c. Shadow behavior

4. Level a. Path to the waterfall b. Waterfall

5. Menus a. Options menu b. Credits menu

6. Music a. Conflagration SFX b. Refresh SFX

7. Spells a. Conflagration b. Refresh

Beta

Page 129: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

122

1. Animations a. Amphibian animations

2. Enemies a. Amphibian

3. Enemy AI a. Amphibian behavior

4. Level a. Cave

5. Menus a. Control menu b. Achievements

6. Spells a. Riptide

Gold

1. Animations a. Final animations

2. Music a. Final music b. Final SFX

3. Spells a. Final balancing

Page 130: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

123

Development Environment

Tool Name Version

IDE Compiler Microsoft Visual C++

2008

Graphics API OpenGL 3.0.0

OpenGL Profiler

gDEBugger 5.8.0

Shader Debugger

AMD Render Monkey

1.81

Sound API Audiokinetic Wwise

3.2

3D Modeling Autodesk Maya

2011

Image Creation

Adobe Photoshop

CS4

Sculpting Pixelogic ZBrush

4.0

2D Particle Animation

Particle Illusion

3.0

Source Control AlienBrain 9.0.0

Documentation Microsoft Word

2007 / 2010

Spread sheets Microsoft Excel

2007 / 2010

Diagrams Microsoft Visio

2007 / 2010

Page 131: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

124

System Architecture

Object Manager Camera

Renderer

Geometry Manager

Actor Agent

Animation Manager

Spells/Stats

A.I.

State Manager

Scene Manager

Texture Manager

Effects Manager

Sound Manager

Event Manager

Input Manager

Render Pipeline

Context ManagerCollision / Physics

KeyCalls Functionality

Passes Information

Effects Manager

Globals

Debug Logger Math / Physics

Memory Manager Timer

Page 132: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

125

Context Model Description

1. Events a. Input Manager->Event Manager

i. Input is gotten from the keyboard / controller and an event is sent out

ii. Calls Functionality 1. SendEvent

b. Event Manager->Sound Manager i. The event manager handles an event to play sound effects /

music ii. Calls Functionality

1. HandleEvent 2. State Manager

a. State Manager->Event Manager i. Calls Functionality

1. ProcessesEvents 2. RegisterClient 3. UnregisterClient 4. UnregisterClientAll 5. Shutdown

b. State Manager->Animation Manager i. Calls Functionality

1. LoadFromFile 2. Update 3. CleanUp 4. DeleteInstance

c. State Manager->Geometry Manager i. Calls Functionality

1. LoadFromFile 2. CleanUp

d. State Manager->Texture Manager i. Calls Functionality

1. LoadTexture 2. CleanUp

e. State Manager->Scene Manager i. Calls Functionality

1. Initialize 2. Update 3. Render 4. Shutdown

f. State Manager->Renderer i. Calls Functionality

1. Initilize 2. InitDevices

Page 133: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

126

3. CleanUp 4. BeginFrame 5. EndFrame 6. Resize 7. ToggleFullscreen 8. SetClearColor

3. Rendering Managers a. Animation Manager->Renderer

i. Passes Information 1. Animation Bones/Joints

b. Geometry Manager->Renderer i. Passes Information

1. Geometry Data ( ie. Verts/Normals/UVs ) c. Texture Manger->Renderer

i. Passes Information 1. Texture Data

4. Rendering Pipeline a. Render Pipeline->Context Manager

i. Calls Functionality 1. ClearAllContexts

b. Context Manager->Render Pipeline i. Passes Information

1. UpdateVisibleQueue c. Camera->Render Pipeline

i. Passes Information 1. GetFrustum

d. Render Pipeline->Renderer i. Passes Information

1. RenderScene 5. Scene Management

a. Scene Manager->Object Manager i. Calls Functionality

1. Init 2. Update 3. AddObject 4. Shutdown

b. Object Manager->Collision/Physics i. Calls Functionality

1. CheckCollision c. Collision/Physics->Object Manager

i. Passes Information 1. The result of checking collision True or False

6. Player / Enemy AI a. Object Manager->Actor/Agent

i. Actor ( Player ) and Agent ( Enemy ) are contained inside the object manager

Page 134: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

127

ii. Calls Functionality 1. Update

b. Agent->A.I. i. Calls Functionality

1. ChangeState 2. Update

c. A.I.->Agent i. Passes Information

1. State Information

7. Spells

a. StateManager->A.I. Director

i. UpdateState

ii. FormWolfPack

b. Actor/Agent->Spell/Stats i. Actor ( Player ) and Agent ( Enemy ) contain spells ii. Calls Functionality

1. Cast c. Effects Manager->Spell/Stats

i. Spells contain a visual effect ii. Passes Information

1. Renderable set d. Spells/Stats->Actor/Agent

i. Passes Information ii. Renderable set

Page 135: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

128

Module Breakdown

Globals CDebugOutput Description: Singleton console window used for logging debug information at runtime. This class is only available in debug build. This class is derived from “CSingleton.” Functions:

Return Type Function Name Parameters Description

CDebugOutput* GetInstance - void Returns a static instance of the object.

void PrintString - const char* szText

Writes out a string to the console.

void PrintValue - int nValue Writes out a value to the console.

Accesses: None Accessed By: Anything Stipulation: None

Risk(s): None

Time Estimate: 4 Hours Author(s): Michael Diaz

Page 136: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

129

CEffectsManager Description: The effects manager handles all effects made by our tool for spell effects. This controls geometry effects and particle effects. Functions:

Return Type Function Name Parameters Description

int AddEffect - IEffect* pEffect Adds an effect to the selection list. Also handles loading in assets for the effects.

IEffect* GetEffect - int nID Returns an effect that was associated with the index.

void UpdateEffects - void Updates all effects on the active list.

void RenderEffects - void Builds render data for all associated effects in the active list.

Accesses: None Accessed By: Spell Manager Stipulation: None

Risk(s): Unclear idea of how particle illusion will work with the game effects.

Time Estimate: 4 Hours

Page 137: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

130

Author(s): Kevin DeLorey

Page 138: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

131

CEventSystem Description: Collects and processes events sent out by individual modules to facilitate communication between them. Functions:

Return Name Parameters Description

void RegisterClient - CString szEventID - IListener* pClient

Registers the passed in client to the specified event

void UnregisterClient - CString szEventID - IListener* pClient

Unregisters the passed in client from the specified event

void UnregisterClientAll - IListener* pClient Unregistered the passed in client from all registered events

void SendEvent - CString szEventID - unsigned int uiParamCount

Sends the specified event out to all registered clients to be handled and acted upon

void ProcessEvents - void Processes all events currently in the event list

void ClearEvents - void Clears all events from the event list

void Shutdown - void Clears all events from the event list and clears all clients from the client list

CEventSystem* GetInstance - void Returns the instance of the event system

void DispatchEvent - CEvent* pEvent

Send the event out to all registered listeners

bool AlreadyRegistered - CString szEventID - IListener* pClient

Checks the event to see if the passed in client has already been registered to it

Accesses: Everything that sends or receives events.

Page 139: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

132

Accessed By: Everything that sends or receives events. Stipulation: This class is a singleton that can only be accessed through GetInstance.

Risk(s): None

Time Estimate: 4 Hours Events:

System Event Name Event Parameters

Achievements ACHIEVEMENT.UNLOCKED Bit assigned to achievement

Gameplay GAME.PAUSE Nothing

HUD HUD.CHANGESPELL Direction, Amount moved

Menu MENU.MOVEMENT Up / Down

Menu MENU.SELECTION Accept / Cancel

Menu MENU.GAMMA Gamma amount

Player PLAYER.MOVE Direction

Player PLAYER.DESTROY Nothing

Sound SOUND.START Sound ID Game Object, Is Looping

Sound SOUND.PAUSE Sound ID, Game Object

Sound SOUND.RESUME Sound ID, Game Object

Sound SOUND.STOP Sound ID, Game Object

Author(s): Dylan Hagen

Page 140: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

133

IListener Description: Interface class to derive from to enable receiving events. Functions:

Return Type Function Name Parameters Description

virtual void HandleEvent - CEvent* pEvent Handles and reacts to events passed in

Accesses: None Accessed By: None Stipulation: None

Risk(s): None

Time Estimate: 2 Hours Author(s): Dylan Hagen

Page 141: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

134

CEvent Description: Stores the type of and data associated with the events. Functions:

Return Name Parameters Description

CString GetEventID - void Returns the ID of the event

Vector<void*>& GetParams - void Returns the vector of data parameters

unsigned int GetNumParams - void Returns the size of the parameters vector

void* GetParam - unsigned int uiIndex

Returns the parameter at the specified index

None CEvent - CString szEventID - unsigned int uiNumParams - va_list args

Constructor for the event

Accesses: Everything that sends or receives events. Accessed By: Everything that sends or receives events. Stipulation: All classes must inherit for this interface to receive events.

Risk(s): None

Time Estimate: 1 Hour Author(s):

Page 142: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

135

Dylan Hagen

Page 143: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

136

CMemoryManager

Description: This class will pre-allocate a chunk of memory to be reused throughout the program. This will be used to eliminate most new/delete calls and allows us to limit our memory usage. This will not replace any allocation under STL data structures or third-party API‟s You will allocate memory by calling the Allocate function, passing it the pointer and the amount (size) of memory requested. And deallocate by calling the Deallocate function and passing the pointer you wish to free. Functions:

Return Type Function Name Parameters Description

void Init - void Allocates a large chunk of memory. Sets up head pointer and the first header. Only called when the program starts up

bool Allocate - char** p, uint size Finds a chunk of memory of the size specified. Sets the dereference of p to point at the memory. Returns true if successful and false if it couldn‟t allocate.

void Deallocate - char* p Marks the „used‟ memory as free and adds it back into the pool of free memory

void Shutdown - void Cleans up the dynamic memory. Only called when the program closes.

void Defrag - void Defragments the memory by moving all „used‟ chunks into a contiguous chunk.

Accesses: None

Page 144: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

137

Accessed By: All other systems. Stipulation: None

Risk(s): None

Time Estimate: 8 Hours Author(s): Gant Briseno

Page 145: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

138

CSingleton Description: A template singleton class that encapsulates a generic singleton design pattern. Functions:

Return Type Function Name Parameters Description

static T* GetInstance - void Returns a static instance of the object.

Accesses: None Accessed By: Classes that need to be a singleton. Stipulation: None

Risk(s): None

Time Estimate: 0.5 Hours Author(s): Michael Diaz

Page 146: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

139

CGameTimer Description: The game timer will be a windows specific High Performance game timer. Timer works like a stop watch. Functions:

Accesses: None Accessed By: CGame or any module that wishes to do timed calculations.

Return Type Function Name Parameters Description

void Start - void Takes a snapshot

of the current

processor tick,

used in calculating

time.

void Stop - void Takes a snapshot

of the current

processor tick,

and then decides

if it needs to

calculate time.

void Reset - void Resets the times

and flags back to

Zero, so it has to

start and stop

again.

void CalculateGameTime - void Calls Stop, reset,

start in order, to

be used at the top

of the main game

loop.

void GetElapsedTime - void Gets the

calculated time

since last frame.

Page 147: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

140

Stipulation: None

Risk(s): None

Time Estimate: 1 Hour Author(s): Kevin DeLorey

Page 148: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

141

Data Structures

CDynArr Description: This class will be replacing the std::vector class. This class will function in a similar way, with push_back and pop_back used to add and remove things. You will be able to use the subscript operator [ ] to index/loop through the CDynArr, alternatively you can use an iterator to go through the CDynArr. Functions:

Return Type Function Name Parameters Description

void Push_back - Type v Adds the variable v to the end of the internal list

void Pop_back - void Removes the last element of the internal list

Citer Begin - void Returns an iterator to the beginning of the list

Citer End - void Returns an iterator to the end of the list

Type Operator[] - unsigned int uiIndex Returns the value stored at the given index

Accesses: CMemoryManager Accessed By: Anything. Stipulation: None

Risk(s): None

Page 149: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

142

Time Estimate: 4 Hours Author(s): Gant Briseno

Page 150: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

143

CHashMap Description: This class will be replacing the std::map class. You will use a Pair that holds a key and a value, to access the HashMap at a specified location. You can also create an iterator to iterate through the HashMap element by element. This class will be used to hold databases of any type of information. Functions:

Return Type Function Name Parameters Description

iterator Begin - void Returns an iterator pointing to the beginning of the HashMap

iterator End - void Returns an iterator pointing to the end of the HashMap

void RemoveAll - void Removes all key-value pairs from the HashMap

Type& Operator[] - Key const& key Returns the value associated with the specified key, otherwise it creates a default-constructed element

void Remove - Key const& key Removes the first key-value pair found with the specified key and removes it

Accesses: CMemoryManager Accessed By: Anything. Stipulation: None

Page 151: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

144

Risk(s): None

Time Estimate: 4 Hours Author(s): Gant Briseno

Page 152: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

145

CQueue Description: This class will be replacing the std::queue class. It will function as a First In Last Out data structure. You will use the enqueue function to put an item on the top of the queue and dequeue to take an item off the top of the queue. Functions:

Return Type Function Name Parameters Description

void Push - Type v Adds the variable v to the front of the internal list

void Pop - void Removes the first element of the internal list

Type Front - void Returns the element at the beginning of the list

bool Empty - void Returns true if the list is empty, false if not

Accesses: CMemoryManager Accessed By: Anything Stipulation: None

Risk(s): None

Time Estimate: 4 Hours Author(s):

Page 153: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

146

Gant Briseno

Page 154: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

147

CString Description: This class will be replacing the std::string class. You will use the Append function or +=‟s operator to add onto the string. You can also Set, or use the assignment operator, to replace the character string instead of adding onto it. You will also be able to gain access to the char pointer, but it will be a const to prevent manipulation of the inner character string. Functions:

Return Type Function Name Parameters Description

CString& Operator+= - char* s Adds the character string to the end of the internal string

CString& Operator= - const CString& copy Sets the internal string to the passed in CString‟s internal string

char Operator[ ] - unsigned int index Returns the character at the “index” offset from the beginning of the internal string

bool Operator== Const CString& left, const CString& right

Compares the strings character by character to see if they are the same

void Append - char* s See “operator+=”

Const char* C_str[] - void Returns the inner string with const protection

void Clear - void Deletes the internal string

void Compare Const CString& s See “Operator==”

bool Empty - void Returns true if there is no internal string, otherwise false

int Length - void Returns the number of characters being held within the inner string

Accesses: CMemoryManager

Page 155: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

148

Accessed By: Anything. Stipulation: None

Risk(s): None

Time Estimate: 4 Hours Author(s): Gant Briseno

Page 156: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

149

Game States State Manager Description: The state manager will hold a stack of all states on the screen at any given time. The top most state will always be rendered and updated, but properties in the individual state can be set to allow update or render even if it is not the top state. Functions:

Return Type Function Name Parameters Description

void UpdateStates - const float& fElapsedTime

Invokes update on all the states on the stack, as long as the property is enabled, or it is the top state.

void RenderStates - void Invokes render on all the states on the stack, as long as the property is enabled, or it is the top state.

void PushState - IGameState* pState

Pushes the new game onto the top of the stack.

void PopState - void Pops the top most state off of the stack.

void ClearStack - void Removes all states on the stack. Generally used for game shutdown, for cleanup.

Accesses: None Accessed By:

Page 157: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

150

Any game state that wishes to add or remove states. Stipulation: None

Risk(s): None

Time Estimate: 3 Hours Author(s): Kevin DeLorey

Page 158: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

151

IGameState Description: Base Interface class that is inherited by all states. Provides a guideline for the game states to follow. Functions:

Return Type Function Name Parameters Description

virtual void (*Update) - ( const float& ) A function pointer that will update anything needed by the state, such as animations. Using a function pointer would allow multiple state machines for update, such as Fade In, Idle, Fade Out.

virtual void Render - void Builds the render set to be passed to the renderer for rendering.

virtual void Enter - void Loads any assets and/or data required for use.

virtual void Exit - void Un-Loads the assets and/or data that was loaded in for use.

void SetUpdateFunc - void (*func)(const float&)

Sets the update function, which will be used for updating.

void AlwaysRender - bool bRender Sets the property associated with the flag to always render even when not the top state

void AlwaysUpdate - bool bUpdate Sets the property associated with the flag to always update even when not the top state

void AlwaysInput - bool bInput Sets the property associated with the flag to always handle input even when not the top state

Page 159: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

152

Sub-Modules:

CMainMenuState

CGamePlayState

COptionsState o CKeyBindState

CCreditsState

CPausedState

CAcheivmentsState

CCharacterSelection

CIntroState

CLoadingMenu Accesses: None Accessed By: State Manager Stipulation: None

Risk(s): None

Time Estimate: 1 Hour Author(s): Kevin DeLorey

Page 160: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

153

Animations CAnimationManager Description: The games Animation Manager handles and stores all the games animations. It is used to access animations which will be used by Animation States and System when the current character has changed.

Functions:

Return Type Function Name

Parameters Description

Static CAnimationManager* GetInstance void Function returns the single instance of the Animation Manager.

Static void DeleteInstance void It deletes the Animation Manager instance when the game is being shut down.

CAnimation* LoadAnimation CString szFileName Releases and cleans up any allocated memory.

void CleanUp void Releases and cleans u any allocated memory.

bool LoadFromFile CString szFileName, CString szName

This function is called by load animation and loads up an animation.

Accesses: CAnimation Accessed By:

Page 161: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

154

CGame, Debug profiler Stipulation: None

Risk(s): None

Time Estimate: 4 Hours Author(s): Patrick Alvarez

Page 162: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

155

CAnimationData

Description: To encapsulate animation data, this will derive from CGeometryData. It will just store the weights and joints along with the other attributes from geometry data. This will still be stored within the GeometryManager. Functions:

Return Type Function Name Parameters Description

CDynArray< CDynArray<CJointInfluence> >&

GetWeights - void Returns the weights.

CDynArray<CJoint>& GetJoints - void Returns the joints.

Accesses: INSERT Accessed By: INSERT Stipulation: INSERT

Risk(s): INSERT

Time Estimate: INSERT Author(s): Michael Diaz

Page 163: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

156

CAnimation Description: CAnimation will be the game main animation class that holds its main data such as the duration Animated Bones and name. Functions:

Return Type Function Name Parameters Description

bool LoadFromBin - const char* szFileName

Loads the class‟s animation through a binary file.

CDynArr<CAnimatedBone>& GetAnimatedBones - void Returns the Dynamic Array animated bones that consist of a Dynamic Array of KeyFrames and an iBoneIndex for the current bone index.

float GetDuration - void Returns the current animations time duration.

Accesses: CBoneFrame, tKeyFrame, tAnimatedBone Accessed By: CAnimationManager, CAnimationInerpolator Stipulation: None

Risk(s): None

Time Estimate: 2 Hours

Page 164: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

157

Author(s): Patrick Alvarez

Page 165: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

158

CAnimationInterpolator Description: The Interpolator will handle the processing or animating of an entity which includes but is not limited to the Player character or enemies. Functions:

Return Type Function Name Parameters Description

CAnimation* GetCurrentAnimation - void This function returns a pointer to the Interpolators current animation.

void SetAnimation - CAnimation* pInAnimation

Re-points the Interpolators current pointer to the sent in Animation pointer.

void AddTime - float fTime Adds the send in time to the Interpolators current time.

void SetTime - float fTime Re-sets the current time to the passed in time.

void Process - void Process will loop through all the Interpolators Animation data and through the use of joints and key frames it will animate the character.

CDynArr<CBoneFrame> GetCurrentBoneFrames - void Returns the Interpolators Dynamic Array of key frames that

Accesses: CBoneFrame Accessed By: CAnimationBlender, CAnimationEntity Stipulation:

Page 166: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

159

None

Risk(s): None

Time Estimate: 4 Hours Author(s): Patrick Alvarez

Page 167: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

160

CAnimationBlender Description: The Animation Blender will handle blending or interpolating between the current frame of the playing animation and the starting frame of the animation we will be switching to through the use of interpolators. Functions:

Return Type Function Name

Parameters Description

void SetTransitionTime float fTime Sets the blender‟s transition time.

void SetCurrentTime float fTime Sets the blender‟s current time to the time passed in.

void AddCurrentTime void Adds the time passed in to the blender‟s current time.

CDynnArr<CFrame>& GetFrames void Returns the blender‟s current dynamic array of blended frames.

float GetDissolveFactor Void Returns the blender‟s dissolve factor.

bool SetInterpolators CInterpolator* pInterpPrev, CInterpolator* pInterpNext

Sets the blender‟s interpolator pointers to the pointers passed in.

bool Dissolve void Dissolve will interpolate between the current animation‟s current key frame and the

Page 168: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

161

next animation‟s current key frame which can both be accessed through the blender‟s CInterpolator pointers.

Accesses: CAnimationInterpolator Accessed By: Character state machine Stipulation: None

Risk(s): Rigid blending or trashing between animations.

Time Estimate: 40 Hours Author(s): Patrick Alvarez

Page 169: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

162

Renderer

CEngineRenderer Description: The core engine renderer is responsible for rendering the current frame of the game. This is a main core component of the engine which handles 3D and 2D scene rendering. The visible set will be passed into this to render the current visible scene. This set will be sorted by render context if the render pipeline is used. The renderer will support:

Shaders with default attributes and uniforms. o ModelView Matrix o Ambient, Diffuse Material o Textures

Normal Maps

Specular Maps

Light Maps

Shadow Mapping on terrain plane. Functions:

Return Type Function Name Parameters Description

CEngineRenderer* GetInstance - void Returns a static instance of the object.

bool Initialize - HWND hWnd - GLint nScreenWidth - GLint nScreenHeight - GLfloat r - GLfloat g - GLfloat b

Initializes OpenGL to the window and returns if initialization was successful.

void InitDevices - HWND hWnd Initializes the render contexts of window, including pixel format.

void CleanUp - void Cleans up the memory allocated by this

Page 170: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

163

class.

void BeginFrame - void Clears buffer bits, this should be called before rendering.

void EndFrame - void Swaps the back buffer to present the data to the window, this should be called after rendering.

void Resize - GLint nScreenWidth - GLint nScreenHeight

Resizes the render target for OpenGL.

void RenderScene - CRenderQueue& pVisibleQueue

Iterates through the queue and renders each geometry.

void ToggleFullscreen - void Toggles the window from window to full screen.

void SetClearColor - GLfloat r - GLfloat g - GLfloat b

Mutator to set the clear color.

Accesses: None Accessed By: CGame and CRenderPipeline Stipulation: None

Risk(s): None

Time Estimate:

Page 171: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

164

8 Hours Author(s): Michael Diaz

Page 172: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

165

CRenderNode Description: To encapsulate a high level render node that will be used as a base class to traverse through queues when rendering and will also store the function pointer to render. Functions:

Return Type Function Name Parameters Description

CRenderNode* GetNext - void Returns the next render node it is pointing to.

void SetNext - CRenderNode* pNext Sets the next render node pointer.

void (*RenderFunc) - CRenderNode& pNode

A function pointer that will be pointing to a certain specific render function.

void Render - void Renders this node by simply calling it‟s RenderFunc.

Accesses: None Accessed By: Anything that has to do with passing rendering data. Stipulation: None

Risk(s): None

Time Estimate: 0.5 Hours

Page 173: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

166

Author(s): Michael Diaz

Page 174: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

167

CRenderContext Description: To encapsulate a render context which will release the engine renderer from performing too many context switches, this context will set the texture and geometry before rendering its render queue. Functions:

Return Type Function Name Parameters Description

void PushNode - CRenderNode* pNode

Adds a render node to its render queue.

void ClearQueue - void Clears the render queue.

CRenderQueue GetRenderQueue - void Returns the render queue.

void Render - void Invokes render on each node in its render queue.

CMesh* GetMesh - void Returns the reference mesh.

void SetMesh - CMesh* pMesh Sets the reference mesh.

void AddTexture - CString szTexture

Adds a texture to the list of textures.

Accesses: None Accessed By: CRenderEntity, CAnimationEntity, and CContextManager Stipulation: None

Risk(s): None

Time Estimate:

Page 175: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

168

2 Hours Author(s): Michael Diaz

Page 176: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

169

CRenderPipeline Description: To encapsulate the pipeline in which all rendering modules will go through before being rendered onto the frame buffer. This pipeline is in charge of render sub modules, it will initialize the ContextManager, TextureManager, GeometryManager and ShaderManager. Functions:

Return Type

Function Name Parameters Description

void Initialize - void Initializes the render pipeline.

void CleanUp - void Releases and cleans up the memory allocated.

void UpdateVisibleQueue - CDynArray<cRenderNode*> pRenderList

Updates and builds the active visible queue with the current data.

void RenderScene - void Renders the current visible list, this function should ONLY be called after UpdateVisibleQueue was called.

Accesses: None Accessed By: The game state that needs rendering. Stipulation: None

Risk(s): None

Page 177: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

170

Time Estimate: 4 Hours Author(s): Michael Diaz

Page 178: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

171

CResourceManager Description: The resource manager is a template class that loads and manages resources. Whenever an asset is loaded into memory it will be stored in its cache table. This class will also handle setting a directory from which assets will load from specifically. This class derives from “IManager.” Functions:

Return Type Function Name Parameters Description

bool CheckDirectory - void Checks the directory buffer before using the manager.

void SetDirectory - const char* szPath

Sets the directory

void AddResource - const T resource - const char* szName

Adds the resource into the cache table.

void RemoveResource - const char* szName

Removes the resource from the cache table.

T& GetOpenResource - const char* szName

Accesses a certain resources open for read and write.

Accesses: None Accessed By: None Stipulation: None

Risk(s): Making sure the resource manager stores, unloads, and gets accesses correctly.

Time Estimate:

Page 179: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

172

3 Hours Author(s): Michael Diaz

Page 180: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

173

IManager Description: The IManager interface is an abstract manager that managers will derive from. Functions:

Return Type Function Name Parameters Description

virtual char* Serialize - void Serializes any data into a string buffer for debugging and profiling purposes.

void ToFile - const char* szFileName Stores the serialized data into a file for logging.

Accesses: None Accessed By: Game state that needs to load resources. Stipulation: None

Risk(s): None

Time Estimate: 0.5 Hours Author(s): Michael Diaz

Page 181: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

174

CGeometryManager Description: A manager that stores bind instances of each geometry packet that is build/loaded from the geometry factory, in which each render entity can reference the data. This class is derived from “CResourceManager” and “CSingleton.” Essentially just uses functions from resource manager to load and remove assets. Functions:

Return Type Function Name Parameters Description

CGeometryManager* GetInstance - void Returns a static instance of the object.

void CleanUp - void Cleans up the memory allocated by this class.

char* Serialize - void Serializes any data into a string buffer for debugging and profiling purposes.

CGeometryData* LoadFromFile - CString szFileName - CString szName

This function will determine what kind of file is passed in and call the appropriate function to load the data.

Accesses: None Accessed By: Game states that need to load resources and the renderer when it needs to reference data. Stipulation: None

Risk(s): None

Page 182: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

175

Time Estimate: 2 Hours Author(s): Michael Diaz

Page 183: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

176

CGeometryData Description: To encapsulate geometry data, such as vertex array including verts, normal and ST cords. Also this class will be including the indices and primitive type. Functions:

Return Type Function Name Parameters Description

void BuildVertexBuffer - const void* pData - unsigned int uiSize

Builds the vertex buffer according to the data being passed in.

void BuildNormalBuffer - const void* pData - unsigned int uiSize

Builds the normal buffer according to the data being passed in.

void BuildTextureBuffer - const void* pData - unsigned int uiSize

Builds the texture buffer according to the data being passed in.

void BuildIndexBuffer - const void* pData - unsigned int uiSize

Builds the index buffer according to the data being passed in.

void Release - void Deletes the buffer arrays.

unsigned int GetVertCount - void Returns the number of vertices.

unsigned int GetIndicesCount - void Returns the number of indices.

unsigned int GetBufferVertices - void Returns the handle to the vertex buffer.

unsigned int GetBufferNormals - void Returns the handle to the normal buffer.

unsigned int GetBufferSTCoods - void Returns the handle to the texture buffer.

unsigned int GetBufferIndices - void Returns the handle to the index buffer.

bool GetIndexFlag - void Returns the flag determining if this data is indexed.

unsigned int GetPrimitiveType - void Returns the primitive type.

Accesses: None Accessed By: CRenderEntity

Page 184: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

177

Stipulation: None

Risk(s): Making sure the Vertex Buffer Arrays are built correctly and the data is passed correctly through the shader by attributes.

Time Estimate: 2 Hours Author(s): Michael Diaz

Page 185: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

178

CRenderEntity Description: To encapsulate a render object containing render data on how this entity will be rendered as well as a containment of shader that will determine how the geometry will be rendered through the render pipeline. Functions:

Return Type Function Name Parameters Description

static void RenderShaders CRenderNode& pNode Renders the mesh with the list of shaders that is currently active.

void AddToRenderContext - void Adds this node to its render context‟s render queue.

bool GetRenderFlag - void Returns a flag to determine if this object wants to be rendered.

CFrame& GetFrame - void Returns the frame of this object for read and write.

void SetRenderFlag - const bool bFlag Sets the render flag.

void SetRenderContext - CRenderContext* pContext

Sets this object‟s render context.

void AddShader - CString szShader Adds a shader to the list.

Accesses: None Accessed By: The object manager. Stipulation: None

Risk(s): None

Time Estimate:

Page 186: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

179

1 Hours Author(s): Michael Diaz

Page 187: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

180

CTextureManager Description: A manager that stores texture assets in its cache table and returns an id of that texture so render entities can reference the data. This class is derived from “CResourceManager” and “CSingleton.” Essentially just uses functions from resource manager to load and remove assets. Functions:

Return Type Function Name Parameters Description

CTextureManager* GetInstance - void Returns a static instance of the object.

void CleanUp - void Cleans up the memory allocated by this class.

char* Serialize - void Serializes any data into a string buffer for debugging and profiling purposes.

int GetTextureWidth - int nTextureHandle

Returns the width of the texture.

int GetTextureHeight - int nTextureHandle

Returns the height of the texture.

int LoadTexture - CString szFileName - CString szName

Loads the texture into memory and saves it by the name.

Accesses: None Accessed By: Game states that need to load resources and the renderer when it needs to reference data.

Page 188: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

181

Stipulation: None

Risk(s): Making sure that cube maps are loaded correctly.

Time Estimate: 2 Hours Author(s): Michael Diaz

Page 189: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

182

Spells CSpellManager Description: This module contains all the information for every skill/spell. Its stored data will be accessed by the player and all enemies for the stats for skills/spells. It derives from ISingleton. Functions:

Return Type Function Name Parameters Description

const ISpell* GetSpell - int nSpellID - int nSpellLevel

Returns the requests spell at the level. Level defaulted to 1

void Init - void Creates all spells and fills out the information

Accesses: All classes derived for CSpell, All classes derived from CSpellEffect Accessed By: CSpellSlot Stipulation: This module must be initialized upon entering the gameplay state. It is a singleton and can only be accessed through GetInstance.

Risk(s): None

Time Estimate: 6 Hours Author(s): Dylan Hagen

Page 190: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

183

ISpell Description: Interface class for all spells/skills, it is a generic container for all the stats of the spells. Functions:

Return Type Function Name Parameters Description

bool Use - float fCooldownTime

Uses the ability Returns false if spells was on cooldown

Children: CQuake | CLeap | CShdwBind CGust | CHowl | CSlash CConflag | CSwipe | CAcidShot CRiptide | CBark | CSpikeShot CRefresh | CShdwSlash | CFireBreath CBite | CShdwSlap | CBossGust Accesses: Animation System, CEventSystem Accessed By: CSpellSlot Stipulation: All spell and skill classes must derive from this interface.

Risk(s): None

Time Estimate: 2 hours per child Author(s):

Page 191: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

184

Dylan Hagen

Page 192: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

185

CSpellSlot Description: Class that contains information about a spell and a timer for the cooldown. Functions:

Return Type Function Name Parameters Description

bool Use - void Uses the ability in the slot Returns false if it was on cooldown

void Update - float fDeltaTime Updates the timer

Accesses: CSpellManager, CEventSystem Accessed By: ICharacter Stipulation: None

Risk(s): None

Time Estimate: 1 Hour Author(s): Dylan Hagen

Page 193: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

186

ISpellObject Description: Interface of the collision object for all spells Functions:

Return Type Function Name Parameters Description

void OnCollision - void Enacts the spells specific behavior on collision

Children: CHomingSphere CMovingSphere CStaticSphere CCone Accesses: CSpell, CSpellEffect Accessed By: ObjectManager Stipulation: All spell collisions objects must be derived from this interface.

Risk(s): Collision bugs.

Time Estimate: 3 hours per child. Author(s): Dylan Hagen

Page 194: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

187

CSpellEffectManager Description: Contains all the information for each spell effect Functions:

Return Type Function Name Parameters Description

const ISpellEffect* GetSpellEffect - unsigned int uiEffectID

Returns the requested spell effect

void Init - void Initializes the spell effects

Accesses: Spell Effects Slot Accessed By: Spells Stipulation: None

Risk(s): None

Time Estimate: 24 Hours Author(s): Dylan Hagen

Page 195: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

188

CSpellEffectList Description: This is a wrapper for the vector of spell effects in each entity. It will add effects to the list and remove any effect that has reached its duration. Functions:

Return Type Function Name Parameters Description

void Update float fDeltaTime, ICharacter* pTarget

Updates each spell effect and removes ones flagged for removal.

void AddSpellEffect CSpellEffect* pEffect Adds the effect to the list.

Accesses: CSpellEffect Accessed By: ICharacter Stipulation: None

Risk(s): None

Time Estimate: 2 Hours Author(s): Dylan Hagen

Page 196: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

189

ISpellEffect Description: Base for all spell effects. Each spell effect will derive from this. Contains the modifier value and duration of the effect. Functions:

Return Type Function Name Parameters Description

void ApplyEffect - CEntity* pTarget Enters the effect into the targets effect list

Children: CSnareSpellEffect, CDoTSpellEffect Accesses: CEventSystem, ICharacter Accessed By: CSpellEffectSlot, CSpellManager Stipulation: None

Risk(s): None

Time Estimate: 2 hours per child. Author(s): Dylan Hagen

Page 197: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

190

CSpellEffectSlot Description: Class the contains the information for the spell effects and a timer for the duration Functions:

Return Type Function Name Parameters Description

void Update - float fDeltaTime Updates the timer for the duration

Accesses: Geometry, Textures Accessed By: Spell Effect Manager Stipulation: None

Risk(s): None

Time Estimate: 8 Hours Author(s): Dylan Hagen

Page 198: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

191

WWise

PreCompWWise Description: A pre-compiled header file for WWise that handles memory allocation for playing sounds virtual and regular memory allocation and deletion. Functions:

Return Type Function Name Parameters Description

void* AllocHook - size_t in_size A function that allocates memory for the WWise sound system.

void FreeHook - void* in_ptr A function that frees the memory passed in through a void pointer.

void* VirtualAllocHook - void* in_pMemAddress - size_t in_size - DWORD in_dwAllocType - DWORD in_dwProtect

Function that virtually allocated memory of a specified size, type and protection level to the passed in void pointer location.

void VirtualFreeHook - void* in_pMemAddress - size_t in_size - DWORD in_dwFreeType

A function that frees the previously virtually allocated data located at the position of the pointer passed in, the size of data that gets passed in is used for the amount of data being freed.

Accesses: Memory Manager Accessed By: WWise API Stipulation: None

Page 199: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

192

Risk(s): Proper set up and implementation.

Time Estimate: 4 Hours Author(s): Patrick Alvarez

Page 200: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

193

WWise Description: The WWise class will handle setting up the WWise sound system for the game. This class is also able to handle sound data based on events passed in. It can do things such as play sounds, change sound levels, stop sounds, etc… Functions:

Return Type Function Name

Parameters Description

WWise* GetInstance - void This function will return the single instance of the WWise sound manager. If no instance exists one will be created before being returned.

void Init - void The Init function will initialize the WWise systems functionality as well as setting up all its available plug ins and will also register all game objects that emit sound.

void ShutDown - void The shutdown will shut down all of the WWise sound systems .

void LoadBank - void The Load bank function will load up the games sound banks that contain all of the games sounds.

void UnloadBank -AkBankID bankID Unload bank will unload the specified bank from memory.

AKGameObjectID GetGameObj - unsigned int uiID This function returns an instance of a Game Object that is able to play sounds.

void HandleEvent - AKUniqueID eventID, - AKGameObjectID gameObj

HandleEvent will handle the passed in event based on the passed in events and objects.

void ProcessAudio - void The ProcessAudio function will call the engines RenderAudio function that plays all the events that were previously handled.

Accesses: WWise SDK and API Accessed By:

Page 201: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

194

Event System, CGame Stipulation: None

Risk(s): Proper set up and implementation.

Time Estimate: 24 Hours Author(s): Pat Alvarez

Page 202: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

195

Objects

ICharacter Description: Interface class for the characters (actor and agents) which is used to initialize the data for the character, update the character‟s state and position, render the character and clean up all memory and data used within the lifetime of the character. Functions:

Return Type Function Name Parameters Description

void Init - const CRenderEntity

renderEntity

Initializes the variables for

the character

void Update - const float fDeltaTime Updates the character

void Render const - void Renders the character

void Cleanup - void Cleans up memory

void HandleEvent - CEvent* pEvent Handles events

Accesses: None Accessed By: CActor, CAgent Stipulation: None

Risk(s): None

Time Estimate: 30 min Author(s):

Page 203: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

196

Joshua Jacobs

Page 204: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

197

CActor Description: Player class which is a child of the ICharacter interface and is used to initialize the player‟s default values, update the player‟s state and position, render the player, clean up all memory or data used within the lifetime of the player and handle all events that the player has registered for. Functions:

Return Type Function Name Parameters Description

void Init - const CRenderEntity

renderEntity

Initializes the variables for

the player

void Update - const float fDeltaTime Updates the player

void Render const - void Renders the player

void Cleanup - void Cleans up memory

void HandleEvent - CEvent* pEvent Handles events

Accesses: ICharacter, CAIStateManager, CAnimationManager, CContextManager Accessed By:

CObjectManager Stipulation: None

Risk(s): None

Time Estimate: 30 min Author(s): Joshua Jacobs

Page 205: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

198

CAgent Description: Enemy class which is a child of the ICharacter interface and is used to initialize the agent‟s default values, update the agent‟s state and position, render the agent and clean up all memory or data used within the lifetime of the agent. Functions:

Return Type Function Name Parameters Description

void Init - const CRenderEntity

renderEntity

Initializes the variables for

the enemy

void Update - const float fDeltaTime Updates the enemy

void Render const - void Renders the enemy

void Cleanup - void Cleans up memory

void HandleEvent - CEvent* pEvent Handles events

Accesses: ICharacter, CAIStateManager, CAnimationManager, CContextManager Accessed By: CAIDirector, CAIStateManager Stipulation: None Risk(s): None Time Estimate: 30 min Author(s): Joshua Jacobs

Page 206: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

199

Artificial Intelligence

CAIDirector Description: The CAIDirector is used to determine all logic and state changes for the agents. Inside this class we find all behavior (movement, attacks and decisions) for the agents. By encapsulating the logic of the agent from the agents themselves we are able to create a modular system that can be used to create a clutter-free agent class.

Functions:

Return Type Function Name Parameters Description

void UpdateState - CAgent* pAgent Uses a function pointer to update

the state of the enemy based on

the specific enemy‟s behavior.

void UpdateWolf - CAgent* pAgent Private helper function to update

the wolf‟s state based on its

behavior.

void UpdateShadow - CAgent* pAgent Private helper function to update

the shadow‟s state based on its

behavior.

void UpdateAmphibian - CAgent* pAgent Private helper function to update

the amphibian‟s state based on

its behavior.

Void FormWolfPack - CAgent* pLeader

- std::vector<CAgent*>

vWolfPack

Takes in a wolf to be an alpha

wolf and the rest to be part of his

pack.

void UpdateWolfPack - tSquad* pWolfPack Private helper function to update

the state of the squad type

wolves.

void DisbandWolfPack - tSquad* pWolfPack Private helper function to end

squad-like behavior for the

wolves when the alpha wolf dies.

Accesses: CIdleState, CFleeState, CDeathState, CCombatState, CActor, CAgent, CAIStateManager

Page 207: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

200

Accessed By: CActor, CAgent, CAIStateManager Stipulation: None

Risk(s): None

Time Estimate: 2 hours Author(s): Joshua Jacobs

Page 208: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

201

IState Description: Interface class that defines the skeleton functionality of the states. Functions:

Return Type Function Name Parameters Description

void Enter - void Enters the current state

void Update - void Updates the current state

void Exit - void Exits the current state

Accesses: None Accessed By: CCombatState, CDeathState, CFleeState, CIdleState, CAIStateManager Stipulation: None

Risk(s): None

Time Estimate: 30 min Author(s): Joshua Jacobs

Page 209: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

202

CFSM Description: This class is a finite state machine for the player and enemies that will hold the current state and allow for easy abstraction of state behavior and animations. Functions:

Return Type Function Name Parameters Description

void Init - ICharacter* pCharacter Initializes the state

machine to the passed in

character

void Update - const float fDeltaTime Updates the state machine

void Shutdown - void Shuts down the state

machine

void SetInitialStates - IState* initialState Sets up the initial state

Accesses: CAIDirector, CAgent, IAIState Accessed By: CActor, CAgent Stipulation: None

Risk(s): None

Time Estimate: 1 hour Author(s): Joshua Jacobs

Page 210: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

203

Miscellaneous CCamera Description: The camera will hold the frustum that will be used in all culling algorithms. This class will be our eye‟s into our game and will make sure that the player is always visible in game space. Calling Update every frame, passing in delta time, will update

the camera based on the player‟s new position vs the player‟s old position. You will be

able to get the frustum using GetFrustum to perform frustum culling outside of the Camera class. Render can also perform frustum culling if the class has access to the CObjectManager and CSceneManager. Functions:

Return Type

Function Name Parameters Description

void Init - void Setup the frustum and attach the camera to the player.

CVec3f** GetFrustum - void Returns the frustum for any calculations needed.

void Update - float fDeltaTime Updates the camera‟s movements and keeps it within a certain distance of the player

void Render - void Perform frustum culling.

void HandleEvent - CEvent* e Handles events, specifically for rotating the camera.

void SetPerspective - float fAspectRatio Used to change the aspect ratio

void SetScreenSize - int nWidth - int nHeight

Used to set up the dimensions of the far plane of the frustum

Accesses: CFrustum, Math/Physics, CSceneManager, CObjectManager Accessed By: CSceneManager, CRenderer Stipulation:

Page 211: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

204

None

Risk(s): None

Time Estimate: 8 Hours Author(s): Gant Briseno

Page 212: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

205

CGame Description: Base for all other modules. Initializes game states and controls the game loop. Functions:

Return Type

Function Name

Parameters Description

void Init - void Initializes all relevant game systems

void Shutdown - void Closes and cleans up all relevant game systems

void Run - void Contains the update and renders calls

Accesses: All systems. Accessed By: None Stipulation: CGame must be initialized before all other modules.

Risk(s): None

Time Estimate: 2 Hours Author(s): Dylan Hagen

Page 213: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

206

CObjectManager Description: This class will allow objects to be managed automatically. You will use the AddObject function to add objects to the list held within CObjectManager and once it‟s in

there you will call Update every frame, passing in delta time, to properly update all objects within the list. Functions:

Return Type Function Name Parameters Description

void Init - void Sets up the Object Manager so that it‟s ready to go right out of the box.

void Update - float fDeltaTime Calls update on all objects being held.

CDynArr& GetObjects - void Returns the list of objects

void AddObject - CBaseObject* obj Adds an object to the list of objects

void Shutdown - void Makes sure everything is freed up and clears the list of any dynamic memory

Accesses: CDynArray, ICharacter Accessed By: CSceneManager Stipulation: None

Risk(s): None

Time Estimate:

Page 214: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

207

4 Hours Author(s): Gant Briseno

Page 215: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

208

Derivation Charts

ICharacter

CActor CAgentPlayer Enemy

Player or Enemy ( Dynamic Object )

Render Data CRenderEntity

Spell/Stats

ContainsDerives From

Key

ICharacter - ICharacter is an interface class that determines whether the character is the actor (player) or an agent (enemy). The character contains a CRenderEntity which contains the render data.

CActor and CAgent -The player and enemy contain a pointer to the spells which are stored in the spell / stats class.

Page 216: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

209

Page 217: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

210

Memory Map

System RAM Graphics RAM

3 MB: Executable 10 MB: Geometry

3 MB: Level Info (Locations, etc) 128 MB: Textures

15 MB: Animation Data 7 MB: Animation Data

30 MB: Sounds 2 MB: Lighting

7 MB: Events

10 MB: Collisions

Total Memory

68 MB 147 MB

Lighting - The lighting in the game will be set to 2MB since we will only have one actual light in the game. So the calculations for lighting should not be too heavy. In addition to this we will use light maps, but they will be categorized under textures. Animation Data - The max amount of memory set for the animations on the GPU is 7MB since it will handle any in-game encounter as well as player animation data. Textures - The game engine will have a heavy dependency on textures since every object will have at least 2 textures (A normal map and its diffused color map). We will also add light maps to the environmental pieces of the game which will be another required set of loaded textures and therefore the textures will be our largest chunk of memory coming in at a limit of 128MB. Geometry - Geometry in the game will be a particular memory intensive aspect. To alleviate loading excessive memory and re-loading geometry we will be using instancing so that the geometry only gets loaded into memory once and gets re-used in multiple areas of the map and therefore will be set to 10MB of memory. Collisions - Due to the constant running of checks for terrain and bounding volume collisions and reactions the collision‟s memory will be set to 10MB.

Page 218: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

211

Events -The game‟s event system will handle the game‟s input and sound and will be continually running so it will be set to a limit of 7MB of memory. Sounds -The game‟s sounds will also be memory intensive, so in an effort to alleviate this, we will swap out sound banks between game states and run-time events to prevent it from exceeding its 30MB limit. Animation Data - Due to the processing of any animated object‟s joints and key frames, the CPUs animation data will be set to 15MB of memory. Level Info -The games level info will include foliage positions, enemy encounter locations, node locations, etc. and will be set to 3MB of memory. Executable -The executable will handle the games stack size and code base and therefore will be set to 3MB.

Page 219: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

212

Code Review Plan

1. Scheduling 2. Every Friday 3. Purpose

a. Test and evaluate newly created modules b. Prevent unexpected side effects from occurring c. Make sure coding standards are being followed d. Give the team a better understanding of the modules that make up

the game and how they interact with each other 4. Procedure

a. All programmers will be on a code freeze while review is in place b. Tech leads will select a newly created module c. Review module for 15 minutes d. Write notes for later feedback e. Repeat for all newly created modules f. Entire review will last no more than 2 hours

5. Feedback a. Written by the tech leads and presented to the IPs b. Passed back to the author of the module by Monday c. Tips to improve safety and reliability of code d. Note potential logic flaws

Page 220: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

213

Integration Plan

When a programmer completes a module, the author must test it thoroughly by using either a spike solution or an offline version of the build. The module must be able to pass all positive test cases and contain no warnings and/or errors to be able to be integrated into the build. When testing a module, the author must test for positive test cases; any test that was designed for the functions intended use, any test that could potentially crash a function, such as trying to invoke a function with an uninitialized parameter. For example, if an Add function was prototyped as int Add(int a, int b) and the value of 2 was passed in for both parameters, the function should return 4. If while testing, an A-level bug is found, the module becomes invalidated and cannot be integrated into the build until it passes all positive unit tests. However, if the module passes the unit tests and is then found to contain a bug that was not detected by the tests, then it will be added to the ongoing bug list and will be assigned to a programmer to fix at a later date.

If the author successfully completes all of the necessary test cases and has designed and implemented the module to meet all of the coding standards set forth for the project then the module is able to be fully integrated into the working build.

If the newly integrated code breaks the current build, the author will be

allotted a maximum of 8 hours, based on the priority and complexity of the task, to fix the build. If the integration is found to be extremely complex, multiple programmers will be assigned to assist in the task. Time for these tasks will be assigned by the tech leads. If the issue cannot be solved in the allotted time, the tech leads will review the progress made in fixing the build and then have the option to extend the amount of time and/or add one or more programmers to the task. If the tech leads see that little or no progress has been made, the tech leads may decide to roll back the build to a previous version or hold a vote on how to proceed next.

Page 221: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

214

Testing Plans

Internal Testing

1. All team members must test the functionality of the their modules upon its completion before attempting to integrate it within the build.

a. Stipulations and Functionality (refer to the Module Breakdown section) must be met before submitting.

2. All team members as a group will play the current build of the game to help identity possible bugs early on in the project.

a. Group testing will take place every Thursday. i. Will be done for 1 to 4 hours, depending on what‟s left on the

schedule. b. Gameplay testing will take place every other day (individual

testing). c. Any bug submitted that is not able to be replicated during testing

will be taken off the list.

External Testing

1. Testers will be able to sign up for alpha and beta testing via invitation. a. Potential testers will fill out an External Tester Form giving us

information useful in deciding who we can use for testing. 2. Testers will have access to a bug report form that they can fill out when

they find a bug that they want to report. a. When the form is submitted it will be sent to the QA lead and IPs

which they will put on Hansoft.

Bug handling

1. Analysis a. The QA lead or IPs will confirm the existence of the bug.

i. By being able to reproduce it from a bug report. ii. This will be done every Thursday.

b. Priority will be assigned based on feature priority and bug severity. i. Bug priorities are A, B and C.

1. A-level bugs cause a game to crash or the game to be rendered unplayable due to unforeseen circumstances.

a. Examples i. A1: If you change the volume and then

enter the game and it crashes. ii. A2: If you back into a wall and cast a

spell you fall through the level.

Page 222: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

215

2. B-level bugs directly affect gameplay, but do not cause game to be unplayable.

a. Examples i. B: Every time you cast a spell, it casts

twice. 3. C-level bugs do not directly affect gameplay, but may

cause visual anomalies. a. Examples

i. C: Texture distortion. 2. Assignment

a. The author of the affected module will be assigned as the primary owner of the bug and required to fix it.

i. If any team member has insight into the cause of the bug, they will pass the information to the owner of the bug and may provide assistance if it is required.

ii. If the author is unavailable to fix the bug, it will be assigned, based on priority, to a team member by the tech leads.

3. Reintegration a. The system must be re-tested and must pass all unit tests before

any code can be resubmitted. 4. Testing and resolution

a. The system must be retested to ensure that the bug has been fixed and to see if the changes have introduced any new bugs.

Responsibilities

The QA lead is in charge of collecting the bug report data and assigning the bugs to the appropriate team member based on the category of the bug as well as the amount of time allotted for each bug fix. The QA lead is also responsible for creating a log for all bugs both past and present and keeping track of their status. If the QA lead is unable to deduce the proper assignment of the bug, they may refer to the tech leads or the art lead to further track down the issue. Once the weekly testing is complete the QA lead is to report back to the IPs with the current progress.

Sample External Testing Information Form

Name: Age: Gender: Testing Experience: Game Production Experience: Computer Specifications:

- Motherboard/Computer make and model: - RAM: - CPU

Page 223: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

216

o Model: o Manufacturer: o Speed:

- GPU o Model: o Manufacturer: o RAM:

Sample Bug Report

Type of bug (circle one): Crash (A1) Functionality (A2) Feature (B) Cosmetic (C)

Short description:

Steps to replicate:

Result of bug: Screen Capture (if visual bug):

Assigned To:

Page 224: Game Design Document€¦ · Production Document “Incanto” White Hat Studios Zachary Weaver Brandon zackwbrandon@yahoo.com Germinal Rosell germinal.fullsail@gmail.com Tyler Weikel

217

File Hierarchy