SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
TECHNICAL DOCUMENT
Contents
1 Game Design
1.1 Level . . . . . . . . .
1.2 HUD . . . . . . . . .
1.2.1 Action Keys .
1.2.2 Pointer . . .
1.2.3 Squad . . . .
1.2.4 Enemies . . .
1.3 Movement . . . . . .
1.4 Camera . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

2 Game Requirements
2.1 General Requirements . . . . .
2.1.1 3D environment . . . .
2.1.2 Reward and Punishment
2.1.3 Level of difficulty . . . .
2.1.4 Audio . . . . . . . . . .
2.1.5 Game state framework .
2.2 Graphics . . . . . . . . . . . . .
2.2.1 Particles . . . . . . . . .
2.2.2 Special Custom Shaders
2.3 Artificial Intelligence . . . . . .
2.3.1 Character Control . . .
2.3.2 Group Control . . . . .
2.3.3 Path Finding . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

. . . . .
. . . . .
system
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .

3 Class Diagram

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

2
2
2
2
2
2
3
3
3

.
.
.
.
.
.
.
.
.
.
.
.
.

4
4
4
4
4
5
5
5
5
5
6
6
6
7
8

1
Chapter 1

Game Design
1.1

Level

The level consists basically of 3 models: the level itself and 2 additional models to add more
details to the world.
There is a special class which can be called upon that can determine from a Vector3 input
if that point is above the level model and can determine the height of the level model at a given
point. This is used to keep all moving units on top of the level.

1.2

HUD

There are a few 2D elements that make up the interface of the game.

1.2.1

Action Keys

The Action Keys show the player what the squad is doing. If the buttons light up it means
that that part of the squad is busy attacking some enemies. The circle displays the amount of
squad units of that type that are still alive.

1.2.2

Pointer

The pointer is a texture of which the position can be controlled with the right analogue stick
of the Xbox controller or with the mouse. When it comes across something in the world, the
object reacts to it. A ray is shot into the world from the pointer’s position and the unit in the
world that detects it reacts to it.

1.2.3

Squad

We have four models that are loaded to a certain type of squad unit. Each type has it’s own
gun after which the type is called. The types are: Machinegunner, Rocketlauncher, Grenadier
and Shotgunner.
The Machinegunner fires a lot of bullets. The Rocketlauncher shoots rockets at enemies
which explode at the point where the enemy was when the rocket was fired. The Grenadier
throws grenades at the enemy. Like a rocket the grenade will explode at the point where the
enemy unit was when the grenade was thrown. Grenadiers and Rocketlaunchers are thereby
not that effective against fast enemies. The Shotgunner will shoot bullets at a lower rate than
the Machinegunner, but these bullets have a greater impact than the bullets from the machine
gun.
2
1.2.4

Enemies

There are four different types of enemies that move across the surface of the level. They attack
the squad when in they are within a certain range and follow them around the level. The four
different types of enemies have a certain weakness for the different types in the squad. They
are placed in groups that can be attacked by the squad unit types and are spawned from spawn
points.

1.3

Movement

The movement of the squad is defined by a single point that travels on the height map. The
squad units stay in their own group and those groups try to stay near the squad point.
The movement of the squad is handled by the left stick of the Xbox controller or by the
WASD-keys.

1.4

Camera

When the squad moves forward, the camera stays a little behind and seems to look forward.
When moving backwards, the camera is pushed backwards and looks at the ground where the
squad is moving to. The movement of the camera is smoothed by a spring so it glides from
position to position.
The camera will turn with you, so if you move to the left the camera will follow behind you.
But moving the squad is not the only way to turn the camera. When you move the pointer
(with the right poke on the controller or with the mouse) to the sides of the screen, the camera
will turn in proportions to that distance. When the pointer is in the upper part of the screen,
the camera will move a little bit backwards and looks a little bit more up so that it gives a
better overview of the level.

3
Chapter 2

Game Requirements
In this chapter we will elaborate on the implementation of the general and choosen extra requirements.

2.1

General Requirements

These are the requirements that have to be met by the final product.

2.1.1

3D environment

Our game takes place in a 3D environment where the camera focus lies on a spot in the middle
of the squad (or where the squad needs to go).

2.1.2

Reward and Punishment system

The player progresses by surviving and destroying the enemy. By doing this, the player completes the stages.
As of the arcade part of the game, the player earns points by destroying enemies. The
number of squad units alive will act as a kind of multiplier. So if you survive everything while
maintaining a high number of squad members your score will be higher than if you survive with
less.1 .

2.1.3

Level of difficulty

The level of difficulty increases when you progress in the level. You start with a small squad
with only one type (Shotgunner) with one type of enemies that has a weakness for Shotgunner
and only one spawnpoint from which they spawn. When you have destroyed that spawnpoint
you’ll advance to the next stage. Two spawnpoints will be added where two different types of
enemies will spawn. The player now learns that the Shotgunner is not that capable against
the other kind of enemy and needs help. He’ll find that in a tube that can be destroyed which
frees some trapped squad members. Now he will have the firepower to destroy the other type
of enemies more easily.
Every time you manage to destroy all the current spawning points you’ll advance to a next
stage where more spawnpoints will be added with more enemies and there will be some more
tubes that you can shoot to get more squad members. By adding more and better/faster/harder/stronger
enemies the stage will become more difficult to survive and complete.
1

Section 2.4.1, Game Design Document [1]

4
2.1.4

Audio

Audio is played for actions like exploding bombs and gunfire. There are some ambient sounds
like falling water drops.
The soundtrack is dynamically build from drum, bass and guitar tracks. Together they
make up the soundtrack by choosing the more mellow parts when the game is not that intense
and choosing the more heavy parts when there is action. The volume will also adjust to reflect
the game play.
When you’ll lose squad members the drums lose volume and are send through a reverb so
that it sounds more hollow.

2.1.5

Game state framework

The game can be paused so that an interface is shown where you can quit or resume the game,
view the controls and a section where you can configure some options like the volume of the
soundtrack.

2.2

Graphics

These requirements are about the graphical features that have to be implemented. We decided
to put in particles and special custom shaders, because they can add a lot to the game experience
and sound cool.

2.2.1

Particles

We want to make use of particles to make explosions look awesome and to give the user feedback
about what happens. There are explosions with smoke and there are particles that represent
the damage done to enemies. Those particles fly off the enemies on the other side of where they
have been hit.

2.2.2

Special Custom Shaders

Since we have animations in the game, we had to use the matrix palette shader that came with
the animation library. But the models looked flat and rough since this shader doesn’t use any
form of lighting or advanced texture sampling. So we had to rewrite it to create out own custom
shader.
The texture sampling was added by describing that the sampler should use linear smoothing.
We added support for one ambient light and three point lights to the shader, as well as a
parameter to set specular power. The ambient light is defined by only one color, while a point
light is defined by a combination of color, position, falloff and range. The lighting factor for
each point light is then created by taking the dot product of the pixel normal with the negative
light direction, raise that to the specular power, and then taking falloff and range into account.
To give an illusion of shadows in the level we added a masking technique, that used the 4
separate channels of a texture (that should be as large as the level) as a mask for the different
lights. We used the RGB channels as mask for the point lights and the alpha channel as mask
for the ambient light. This way we can darken our animated models in caves, or in the shadow
of a static object. Note that the different channels are not the colors: each channel is just a
value from zero to one that is then multiplied by the already calculated light effect.

5
We added fog support in our custom animation shader as well. This way all animated models
start out blended with the surroundings in the distance, and will be more visible as they are
finding their way to your squad!
The shader also handles highlight support. This highlights the model of an enemy as the
player moves the pointer over that enemy, or any other enemy in the same group. This way the
player can easily see which target he is telling his squad units to attack.

2.3

Artificial Intelligence

These requirements are about the Artificial Intelligence that will control certain objects in the
game. We chose Character, Group and Automatic Object Control, because those are all needed
to implement the game play the way it was designed.

2.3.1

Character Control

Squad Movements We chose character control because we want to move our squad in a
’fuzzy’ way. The player doesn’t control the units directly. The specifc movement of the units
need to be controlled by the system.
While squad moves, it is the responsibility of every unit not to fall behind. When squad stops,
main positions are calculated using group control, yet individual units would keep readjusting
their positions themselves.
Enemy Movements Normally the movement of an enemy is indirectly controlled by the
group that it belongs to (see below). Yet when an enemy spots a squad member in its active
range, it takes control of its own movements and starts following the squad instead of its own
group. In case it looses the squad, it returns to its group again. Just a little disappointed.
Enemy Targeting After an enemy group is selected the character decides itself which particular enemy will he attack to. Each unit will be more likely to shoot the enemies standing
closest to itself. Yet the enemy needs to be in the selected enemy group.

2.3.2

Group Control

Spawning The game has a spawn manager which manages the spawning of new enemies
from dynamic spawn points. This manager works using fuzzy logic to spawn a enemy group.
By looking at the active enemies and number of enemies in the world the spawn manager
decides, which spawning point to use, how many enemies to put in a group, what sort enemies
to spawn.
Spawn managers duties are extended to keep track of different game stages, making the
game more and more difficult.
Yet the spawn manager is not all that evil. It also spawns squad members when necessary.
When a pod is destroyed by the squad spawn manager checks the squad status to decide which
sort of unit the squad needs most, and than spawns it on the squad position.
Squad Movements Characters will be controlled by moving an invisible point across the
surface of the heightmap. Taking that invisible point as a center, for every type unit a main
position will be calculated with that types ranking as radius and a randomly generated angle.
All individual units will choose a place close to their types main position. Once a main
position is set for a unit type it is up to that type units to be organized around that point.
6
2.3.3

Path Finding

Although the general movement of the squad is considered to be the users responsibility, the
movement of the enemy groups are handled by each enemy group. Each enemy (If they do not
have the squad in their active range) patrols around the an invisible group center.
The group center uses a bread first search algorithm to find the squad in increasing number
of steps. When a valid path is found, the group center starts moving towards the squad. Not
to leave any fellow members behind, the group center moves in a relatively slow rate.
Enemies During the game play different sorts of enemies will be spawned to keep the user
challenged. By each stage of the game, with new spawning points, there comes new types of
enemies.
The attributes of enemies are selected considering their appearance, their role in game, the
attributes of the squad unit that is coupled with it. (For example if an enemy has a long range
it is not coupled with a squad unit which has short range).
A manta ray as an example; is quite a big creature. Being big, it is slow with a low range
yet it inflicts high amount of damage since in the beginning of the game, it is the only enemy
sort to be spawned.
The attributes of the other enemies can be seen in table 2.1.

Enemies:
Manta Ray
Bug
Bee
Boomer

Table 2.1: Attributes of enemies
Attributes:
Range
Speed Damage
Short
Low
High
Average Average Average
Short
High
Low
Long
Average
Low

New Squad Types
New Enemy Types
Nr of Spawn points
Nr of Possible Enemies

Table 2.2: Stages of the game
Stage 1
Stage 2
Stage 3
Machinegunner Shotgunner Grenadier
Manta ray
Bug
Bee
1
2
3
50
75
100

Stage 4
Rocketlauncher
Boomer
3
200

Game Stages Table 2.2 shows how the game progresses between stages. As the game shifts
from one level to another, the spawn manager spawns new sort of enemies and pods. Those
pods can be used to get new squad members.

7
Chapter 3

Class Diagram

World and Viewer
The virtual world is a Component3DContainer and contains Component3D’s. Because Component3DContainer inherits from a Component3D he can reside in a Component3DContainer.
A simple application would be a tree as container, filled with leaves as components. The position, rotation and scale of the leaves are relative to the parent container, so if the tree would
move (!) the leaves would stay with the tree.
To display the virtual world we have a Viewer that has a Camera. The Camera has a
reference to the world so that is knows its position in the virtual world.
The Game calls the update method of the world and the world calls the update method to
all his childs recursively. The Game calls the draw method of the Viewer so that he can draw
the world.

Figure 3.1: Class Diagram of the units
Squad and Enemies All actors in the world belong to groups. The squad moves as one
group and acts in different groups. Enemies should move and attack as groups. The group is
8
defined by UnitGroup. All actors (Units) have one group to which they belong. The position of
the squad and the position of the units relative to the squad position are handled by the squad
manager.
Just as the squad units are generally controlled by the squad manager, so are the movements
of the enemies controlled by the enemy group managers.

9
10

Más contenido relacionado

La actualidad más candente

Introduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First GameIntroduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First GameSarah Sexton
 
Subspace destiny (new version)
Subspace destiny (new version)Subspace destiny (new version)
Subspace destiny (new version)Veselin
 
Unit 72 my computer game user guide
Unit 72 my computer game user guideUnit 72 my computer game user guide
Unit 72 my computer game user guideTimophy marsbar
 
Game Project / Working with Unity
Game Project / Working with UnityGame Project / Working with Unity
Game Project / Working with UnityPetri Lankoski
 
Green My Place Game7 Switch Search
Green My Place Game7 Switch SearchGreen My Place Game7 Switch Search
Green My Place Game7 Switch SearchBen Cowley
 
Scratch for kids syllabus for 5 hours by bibek pandit
Scratch for kids syllabus for 5 hours by bibek panditScratch for kids syllabus for 5 hours by bibek pandit
Scratch for kids syllabus for 5 hours by bibek panditBibekPandit2
 
PRESENTATION ON Game Engine
PRESENTATION ON Game EnginePRESENTATION ON Game Engine
PRESENTATION ON Game EngineDiksha Bhargava
 
Kalonline Intro 100102
Kalonline Intro 100102Kalonline Intro 100102
Kalonline Intro 100102INIXSOFT
 
Action and Adventure Games
Action and Adventure GamesAction and Adventure Games
Action and Adventure GamesZai Lekir
 
Game Design - Monetization
Game Design - MonetizationGame Design - Monetization
Game Design - MonetizationErez Yerushalmi
 
GAME MECHANIC - chapter 2 v1.1 (2018 edition)
GAME MECHANIC - chapter 2 v1.1 (2018 edition)GAME MECHANIC - chapter 2 v1.1 (2018 edition)
GAME MECHANIC - chapter 2 v1.1 (2018 edition)Hamzah Asyrani Sulaiman
 

La actualidad más candente (16)

Introduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First GameIntroduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First Game
 
Subspace destiny (new version)
Subspace destiny (new version)Subspace destiny (new version)
Subspace destiny (new version)
 
3. research
3. research3. research
3. research
 
Smbx gameplay manual
Smbx gameplay manualSmbx gameplay manual
Smbx gameplay manual
 
Unit 72 my computer game user guide
Unit 72 my computer game user guideUnit 72 my computer game user guide
Unit 72 my computer game user guide
 
2dworkflow complete
2dworkflow complete2dworkflow complete
2dworkflow complete
 
02 - Emergence and Progression
02 - Emergence and Progression02 - Emergence and Progression
02 - Emergence and Progression
 
Game Project / Working with Unity
Game Project / Working with UnityGame Project / Working with Unity
Game Project / Working with Unity
 
Green My Place Game7 Switch Search
Green My Place Game7 Switch SearchGreen My Place Game7 Switch Search
Green My Place Game7 Switch Search
 
Scratch for kids syllabus for 5 hours by bibek pandit
Scratch for kids syllabus for 5 hours by bibek panditScratch for kids syllabus for 5 hours by bibek pandit
Scratch for kids syllabus for 5 hours by bibek pandit
 
PRESENTATION ON Game Engine
PRESENTATION ON Game EnginePRESENTATION ON Game Engine
PRESENTATION ON Game Engine
 
Kalonline Intro 100102
Kalonline Intro 100102Kalonline Intro 100102
Kalonline Intro 100102
 
Action and Adventure Games
Action and Adventure GamesAction and Adventure Games
Action and Adventure Games
 
Work flow
Work flowWork flow
Work flow
 
Game Design - Monetization
Game Design - MonetizationGame Design - Monetization
Game Design - Monetization
 
GAME MECHANIC - chapter 2 v1.1 (2018 edition)
GAME MECHANIC - chapter 2 v1.1 (2018 edition)GAME MECHANIC - chapter 2 v1.1 (2018 edition)
GAME MECHANIC - chapter 2 v1.1 (2018 edition)
 

Destacado

Manual - BadBug Studio - Xbox Game
Manual - BadBug Studio - Xbox GameManual - BadBug Studio - Xbox Game
Manual - BadBug Studio - Xbox GameUTC Fire & Security
 
Preznetacja ochrona innowacji - cz ii
Preznetacja   ochrona innowacji - cz ii Preznetacja   ochrona innowacji - cz ii
Preznetacja ochrona innowacji - cz ii UTC Fire & Security
 
Skalowalność systemów informatycznych dedykowanych rolnictwu z perspektywy st...
Skalowalność systemów informatycznych dedykowanych rolnictwu z perspektywy st...Skalowalność systemów informatycznych dedykowanych rolnictwu z perspektywy st...
Skalowalność systemów informatycznych dedykowanych rolnictwu z perspektywy st...UTC Fire & Security
 
References from Hackathlon's - HackWro
References from Hackathlon's - HackWroReferences from Hackathlon's - HackWro
References from Hackathlon's - HackWroUTC Fire & Security
 
Game design document - BadBug Studio - Xbox Game
Game design document - BadBug Studio - Xbox GameGame design document - BadBug Studio - Xbox Game
Game design document - BadBug Studio - Xbox GameUTC Fire & Security
 
Jakich błędów unikać w CV
Jakich błędów unikać w CVJakich błędów unikać w CV
Jakich błędów unikać w CVProjekt Zdrowie
 

Destacado (8)

Manual - BadBug Studio - Xbox Game
Manual - BadBug Studio - Xbox GameManual - BadBug Studio - Xbox Game
Manual - BadBug Studio - Xbox Game
 
Kisah lalu
Kisah laluKisah lalu
Kisah lalu
 
Preznetacja ochrona innowacji - cz ii
Preznetacja   ochrona innowacji - cz ii Preznetacja   ochrona innowacji - cz ii
Preznetacja ochrona innowacji - cz ii
 
Skalowalność systemów informatycznych dedykowanych rolnictwu z perspektywy st...
Skalowalność systemów informatycznych dedykowanych rolnictwu z perspektywy st...Skalowalność systemów informatycznych dedykowanych rolnictwu z perspektywy st...
Skalowalność systemów informatycznych dedykowanych rolnictwu z perspektywy st...
 
Arr food scaner
Arr food scanerArr food scaner
Arr food scaner
 
References from Hackathlon's - HackWro
References from Hackathlon's - HackWroReferences from Hackathlon's - HackWro
References from Hackathlon's - HackWro
 
Game design document - BadBug Studio - Xbox Game
Game design document - BadBug Studio - Xbox GameGame design document - BadBug Studio - Xbox Game
Game design document - BadBug Studio - Xbox Game
 
Jakich błędów unikać w CV
Jakich błędów unikać w CVJakich błędów unikać w CV
Jakich błędów unikać w CV
 

Similar a Technical document - BadBug Studio - Xbox Game

Gameloft: Recommandations for Starfront collision and Nova 2
Gameloft: Recommandations for Starfront collision and Nova 2Gameloft: Recommandations for Starfront collision and Nova 2
Gameloft: Recommandations for Starfront collision and Nova 2Khai Nguyen
 
The purpose and functions of components of game engines
The purpose and functions of components of game enginesThe purpose and functions of components of game engines
The purpose and functions of components of game enginesJoshCollege
 
Cameron McRae - 2D Game Workflow
Cameron McRae - 2D Game WorkflowCameron McRae - 2D Game Workflow
Cameron McRae - 2D Game WorkflowCameronMcRae901
 
1. case study video games lvl 3
1. case study video games lvl 31. case study video games lvl 3
1. case study video games lvl 3Fraser Hardwick
 
11thDimensionStudios_GDD_Final_0915
11thDimensionStudios_GDD_Final_091511thDimensionStudios_GDD_Final_0915
11thDimensionStudios_GDD_Final_0915Blake Taylor
 
John Kester Final Mechanics Pitch
John Kester Final Mechanics PitchJohn Kester Final Mechanics Pitch
John Kester Final Mechanics PitchSkyrix
 
Galactic Wars XNA Game
Galactic Wars XNA GameGalactic Wars XNA Game
Galactic Wars XNA GameSohil Gupta
 
Next Gen Asteroids
Next Gen AsteroidsNext Gen Asteroids
Next Gen AsteroidsJustin Young
 
Up cloth - GameDesignDoccument
Up cloth - GameDesignDoccumentUp cloth - GameDesignDoccument
Up cloth - GameDesignDoccumentEléonore Arbaux
 
Controller Trollers Procedure
Controller Trollers ProcedureController Trollers Procedure
Controller Trollers Procedurejhouchens99
 

Similar a Technical document - BadBug Studio - Xbox Game (20)

Gameloft: Recommandations for Starfront collision and Nova 2
Gameloft: Recommandations for Starfront collision and Nova 2Gameloft: Recommandations for Starfront collision and Nova 2
Gameloft: Recommandations for Starfront collision and Nova 2
 
2D game workflow
2D game workflow2D game workflow
2D game workflow
 
3D Space Shooting Game
3D Space Shooting Game3D Space Shooting Game
3D Space Shooting Game
 
The purpose and functions of components of game engines
The purpose and functions of components of game enginesThe purpose and functions of components of game engines
The purpose and functions of components of game engines
 
Shumanjacob_pitch
Shumanjacob_pitchShumanjacob_pitch
Shumanjacob_pitch
 
Cameron McRae - 2D Game Workflow
Cameron McRae - 2D Game WorkflowCameron McRae - 2D Game Workflow
Cameron McRae - 2D Game Workflow
 
1. case study video games lvl 3
1. case study video games lvl 31. case study video games lvl 3
1. case study video games lvl 3
 
11thDimensionStudios_GDD_Final_0915
11thDimensionStudios_GDD_Final_091511thDimensionStudios_GDD_Final_0915
11thDimensionStudios_GDD_Final_0915
 
John Kester Final Mechanics Pitch
John Kester Final Mechanics PitchJohn Kester Final Mechanics Pitch
John Kester Final Mechanics Pitch
 
GameMaker Workflow
GameMaker WorkflowGameMaker Workflow
GameMaker Workflow
 
Galactic Wars XNA Game
Galactic Wars XNA GameGalactic Wars XNA Game
Galactic Wars XNA Game
 
3. research
3. research3. research
3. research
 
cod
codcod
cod
 
GameIdea
GameIdeaGameIdea
GameIdea
 
1. case study
1. case study1. case study
1. case study
 
1. case study
1. case study1. case study
1. case study
 
Next Gen Asteroids
Next Gen AsteroidsNext Gen Asteroids
Next Gen Asteroids
 
Game maker workflow
Game maker workflow Game maker workflow
Game maker workflow
 
Up cloth - GameDesignDoccument
Up cloth - GameDesignDoccumentUp cloth - GameDesignDoccument
Up cloth - GameDesignDoccument
 
Controller Trollers Procedure
Controller Trollers ProcedureController Trollers Procedure
Controller Trollers Procedure
 

Más de UTC Fire & Security

Jaming the IoT device- nie dziala mi alarm IoT
Jaming the IoT device- nie dziala mi alarm IoTJaming the IoT device- nie dziala mi alarm IoT
Jaming the IoT device- nie dziala mi alarm IoTUTC Fire & Security
 
The past and present iot technologies andrzej piotrowski
The past and present iot technologies andrzej piotrowskiThe past and present iot technologies andrzej piotrowski
The past and present iot technologies andrzej piotrowskiUTC Fire & Security
 
Big Data - Targi Kreatywne - szczecin
Big Data - Targi Kreatywne - szczecinBig Data - Targi Kreatywne - szczecin
Big Data - Targi Kreatywne - szczecinUTC Fire & Security
 
Informatyk w Pracy - Informatyka na Rynku Pracy
Informatyk w Pracy - Informatyka na Rynku PracyInformatyk w Pracy - Informatyka na Rynku Pracy
Informatyk w Pracy - Informatyka na Rynku PracyUTC Fire & Security
 
"Startups : Shortcut Everything"
"Startups : Shortcut Everything" "Startups : Shortcut Everything"
"Startups : Shortcut Everything" UTC Fire & Security
 
TEDxWSB - 2012 - Sky is the limit
TEDxWSB - 2012 - Sky is the limitTEDxWSB - 2012 - Sky is the limit
TEDxWSB - 2012 - Sky is the limitUTC Fire & Security
 
So, what will the future UX of TV look like?
So, what will the future UX of TV look like?So, what will the future UX of TV look like?
So, what will the future UX of TV look like?UTC Fire & Security
 
Preznetacja ochrona innowacji - cz i
Preznetacja   ochrona innowacji - cz i Preznetacja   ochrona innowacji - cz i
Preznetacja ochrona innowacji - cz i UTC Fire & Security
 
Test driven development in .Net - 2010 + Eclipse
Test driven development in .Net - 2010 + EclipseTest driven development in .Net - 2010 + Eclipse
Test driven development in .Net - 2010 + EclipseUTC Fire & Security
 
Przyszłość Rolnictwa w Polsce
Przyszłość Rolnictwa w PolscePrzyszłość Rolnictwa w Polsce
Przyszłość Rolnictwa w PolsceUTC Fire & Security
 
Workshop - Szkolenie Xamarin Android
Workshop - Szkolenie Xamarin AndroidWorkshop - Szkolenie Xamarin Android
Workshop - Szkolenie Xamarin AndroidUTC Fire & Security
 
Speaker Idol - Wpf wtf - Mts 2008
Speaker Idol - Wpf  wtf - Mts 2008Speaker Idol - Wpf  wtf - Mts 2008
Speaker Idol - Wpf wtf - Mts 2008UTC Fire & Security
 
ImagineCup 2008 - LookAround - II Round Finalist
ImagineCup 2008 - LookAround - II Round FinalistImagineCup 2008 - LookAround - II Round Finalist
ImagineCup 2008 - LookAround - II Round FinalistUTC Fire & Security
 
Speaker Idol - ccwwa2009 - Winner Solution :)
Speaker Idol - ccwwa2009 - Winner Solution :)Speaker Idol - ccwwa2009 - Winner Solution :)
Speaker Idol - ccwwa2009 - Winner Solution :)UTC Fire & Security
 
Imagine Cup 2010 - Project Rolnictwo - Wygrana na Warszawskie Dni Informatyki :)
Imagine Cup 2010 - Project Rolnictwo - Wygrana na Warszawskie Dni Informatyki :)Imagine Cup 2010 - Project Rolnictwo - Wygrana na Warszawskie Dni Informatyki :)
Imagine Cup 2010 - Project Rolnictwo - Wygrana na Warszawskie Dni Informatyki :)UTC Fire & Security
 
How to make a BLAST Power Presentation ? Remember the Name
How to make a BLAST Power Presentation ? Remember the Name How to make a BLAST Power Presentation ? Remember the Name
How to make a BLAST Power Presentation ? Remember the Name UTC Fire & Security
 
B-logic - Blackberry Jam Sessions - Wroclaw - DreamTeam :D
B-logic - Blackberry Jam Sessions - Wroclaw - DreamTeam :DB-logic - Blackberry Jam Sessions - Wroclaw - DreamTeam :D
B-logic - Blackberry Jam Sessions - Wroclaw - DreamTeam :DUTC Fire & Security
 
QueueLessApp - Don't wait in Queues - Shopping Startup
QueueLessApp - Don't wait in Queues - Shopping StartupQueueLessApp - Don't wait in Queues - Shopping Startup
QueueLessApp - Don't wait in Queues - Shopping StartupUTC Fire & Security
 
Donkey Kong Frogger - Mobile Game Hackathlon
Donkey Kong Frogger - Mobile Game Hackathlon Donkey Kong Frogger - Mobile Game Hackathlon
Donkey Kong Frogger - Mobile Game Hackathlon UTC Fire & Security
 

Más de UTC Fire & Security (20)

Jaming the IoT device- nie dziala mi alarm IoT
Jaming the IoT device- nie dziala mi alarm IoTJaming the IoT device- nie dziala mi alarm IoT
Jaming the IoT device- nie dziala mi alarm IoT
 
The past and present iot technologies andrzej piotrowski
The past and present iot technologies andrzej piotrowskiThe past and present iot technologies andrzej piotrowski
The past and present iot technologies andrzej piotrowski
 
Big Data - Targi Kreatywne - szczecin
Big Data - Targi Kreatywne - szczecinBig Data - Targi Kreatywne - szczecin
Big Data - Targi Kreatywne - szczecin
 
Informatyk w Pracy - Informatyka na Rynku Pracy
Informatyk w Pracy - Informatyka na Rynku PracyInformatyk w Pracy - Informatyka na Rynku Pracy
Informatyk w Pracy - Informatyka na Rynku Pracy
 
"Startups : Shortcut Everything"
"Startups : Shortcut Everything" "Startups : Shortcut Everything"
"Startups : Shortcut Everything"
 
TEDxWSB - 2012 - Sky is the limit
TEDxWSB - 2012 - Sky is the limitTEDxWSB - 2012 - Sky is the limit
TEDxWSB - 2012 - Sky is the limit
 
So, what will the future UX of TV look like?
So, what will the future UX of TV look like?So, what will the future UX of TV look like?
So, what will the future UX of TV look like?
 
How to achieve the ux goals
How to achieve the ux goalsHow to achieve the ux goals
How to achieve the ux goals
 
Preznetacja ochrona innowacji - cz i
Preznetacja   ochrona innowacji - cz i Preznetacja   ochrona innowacji - cz i
Preznetacja ochrona innowacji - cz i
 
Test driven development in .Net - 2010 + Eclipse
Test driven development in .Net - 2010 + EclipseTest driven development in .Net - 2010 + Eclipse
Test driven development in .Net - 2010 + Eclipse
 
Przyszłość Rolnictwa w Polsce
Przyszłość Rolnictwa w PolscePrzyszłość Rolnictwa w Polsce
Przyszłość Rolnictwa w Polsce
 
Workshop - Szkolenie Xamarin Android
Workshop - Szkolenie Xamarin AndroidWorkshop - Szkolenie Xamarin Android
Workshop - Szkolenie Xamarin Android
 
Speaker Idol - Wpf wtf - Mts 2008
Speaker Idol - Wpf  wtf - Mts 2008Speaker Idol - Wpf  wtf - Mts 2008
Speaker Idol - Wpf wtf - Mts 2008
 
ImagineCup 2008 - LookAround - II Round Finalist
ImagineCup 2008 - LookAround - II Round FinalistImagineCup 2008 - LookAround - II Round Finalist
ImagineCup 2008 - LookAround - II Round Finalist
 
Speaker Idol - ccwwa2009 - Winner Solution :)
Speaker Idol - ccwwa2009 - Winner Solution :)Speaker Idol - ccwwa2009 - Winner Solution :)
Speaker Idol - ccwwa2009 - Winner Solution :)
 
Imagine Cup 2010 - Project Rolnictwo - Wygrana na Warszawskie Dni Informatyki :)
Imagine Cup 2010 - Project Rolnictwo - Wygrana na Warszawskie Dni Informatyki :)Imagine Cup 2010 - Project Rolnictwo - Wygrana na Warszawskie Dni Informatyki :)
Imagine Cup 2010 - Project Rolnictwo - Wygrana na Warszawskie Dni Informatyki :)
 
How to make a BLAST Power Presentation ? Remember the Name
How to make a BLAST Power Presentation ? Remember the Name How to make a BLAST Power Presentation ? Remember the Name
How to make a BLAST Power Presentation ? Remember the Name
 
B-logic - Blackberry Jam Sessions - Wroclaw - DreamTeam :D
B-logic - Blackberry Jam Sessions - Wroclaw - DreamTeam :DB-logic - Blackberry Jam Sessions - Wroclaw - DreamTeam :D
B-logic - Blackberry Jam Sessions - Wroclaw - DreamTeam :D
 
QueueLessApp - Don't wait in Queues - Shopping Startup
QueueLessApp - Don't wait in Queues - Shopping StartupQueueLessApp - Don't wait in Queues - Shopping Startup
QueueLessApp - Don't wait in Queues - Shopping Startup
 
Donkey Kong Frogger - Mobile Game Hackathlon
Donkey Kong Frogger - Mobile Game Hackathlon Donkey Kong Frogger - Mobile Game Hackathlon
Donkey Kong Frogger - Mobile Game Hackathlon
 

Último

Escort Service Andheri WhatsApp:+91-9833363713
Escort Service Andheri WhatsApp:+91-9833363713Escort Service Andheri WhatsApp:+91-9833363713
Escort Service Andheri WhatsApp:+91-9833363713Riya Pathan
 
定制(SCU毕业证书)南十字星大学毕业证成绩单原版一比一
定制(SCU毕业证书)南十字星大学毕业证成绩单原版一比一定制(SCU毕业证书)南十字星大学毕业证成绩单原版一比一
定制(SCU毕业证书)南十字星大学毕业证成绩单原版一比一z xss
 
Ch. 9- __Skin, hair and nail Assessment (1).pdf
Ch. 9- __Skin, hair and nail Assessment (1).pdfCh. 9- __Skin, hair and nail Assessment (1).pdf
Ch. 9- __Skin, hair and nail Assessment (1).pdfJamalYaseenJameelOde
 
MIdterm Review International Trade.pptx review
MIdterm Review International Trade.pptx reviewMIdterm Review International Trade.pptx review
MIdterm Review International Trade.pptx reviewSheldon Byron
 
Protection of Children in context of IHL and Counter Terrorism
Protection of Children in context of IHL and  Counter TerrorismProtection of Children in context of IHL and  Counter Terrorism
Protection of Children in context of IHL and Counter TerrorismNilendra Kumar
 
办澳洲詹姆斯库克大学毕业证成绩单pdf电子版制作修改
办澳洲詹姆斯库克大学毕业证成绩单pdf电子版制作修改办澳洲詹姆斯库克大学毕业证成绩单pdf电子版制作修改
办澳洲詹姆斯库克大学毕业证成绩单pdf电子版制作修改yuu sss
 
Gurgaon Call Girls: Free Delivery 24x7 at Your Doorstep G.G.N = 8377087607
Gurgaon Call Girls: Free Delivery 24x7 at Your Doorstep G.G.N = 8377087607Gurgaon Call Girls: Free Delivery 24x7 at Your Doorstep G.G.N = 8377087607
Gurgaon Call Girls: Free Delivery 24x7 at Your Doorstep G.G.N = 8377087607dollysharma2066
 
定制(Waikato毕业证书)新西兰怀卡托大学毕业证成绩单原版一比一
定制(Waikato毕业证书)新西兰怀卡托大学毕业证成绩单原版一比一定制(Waikato毕业证书)新西兰怀卡托大学毕业证成绩单原版一比一
定制(Waikato毕业证书)新西兰怀卡托大学毕业证成绩单原版一比一Fs
 
办理哈珀亚当斯大学学院毕业证书文凭学位证书
办理哈珀亚当斯大学学院毕业证书文凭学位证书办理哈珀亚当斯大学学院毕业证书文凭学位证书
办理哈珀亚当斯大学学院毕业证书文凭学位证书saphesg8
 
LESSON O1_The Meaning and Importance of MICE.pdf
LESSON O1_The Meaning and Importance of MICE.pdfLESSON O1_The Meaning and Importance of MICE.pdf
LESSON O1_The Meaning and Importance of MICE.pdf0471992maroyal
 
办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一
办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一
办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一A SSS
 
办理(Hull毕业证书)英国赫尔大学毕业证成绩单原版一比一
办理(Hull毕业证书)英国赫尔大学毕业证成绩单原版一比一办理(Hull毕业证书)英国赫尔大学毕业证成绩单原版一比一
办理(Hull毕业证书)英国赫尔大学毕业证成绩单原版一比一F La
 
原版定制卡尔加里大学毕业证(UC毕业证)留信学历认证
原版定制卡尔加里大学毕业证(UC毕业证)留信学历认证原版定制卡尔加里大学毕业证(UC毕业证)留信学历认证
原版定制卡尔加里大学毕业证(UC毕业证)留信学历认证diploma001
 
Application deck- Cyril Caudroy-2024.pdf
Application deck- Cyril Caudroy-2024.pdfApplication deck- Cyril Caudroy-2024.pdf
Application deck- Cyril Caudroy-2024.pdfCyril CAUDROY
 
格里菲斯大学毕业证(Griffith毕业证)#文凭成绩单#真实留信学历认证永久存档
格里菲斯大学毕业证(Griffith毕业证)#文凭成绩单#真实留信学历认证永久存档格里菲斯大学毕业证(Griffith毕业证)#文凭成绩单#真实留信学历认证永久存档
格里菲斯大学毕业证(Griffith毕业证)#文凭成绩单#真实留信学历认证永久存档208367051
 
办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一
办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一
办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一F La
 
Navigating the Data Economy: Transforming Recruitment and Hiring
Navigating the Data Economy: Transforming Recruitment and HiringNavigating the Data Economy: Transforming Recruitment and Hiring
Navigating the Data Economy: Transforming Recruitment and Hiringkaran651042
 
Back on Track: Navigating the Return to Work after Parental Leave
Back on Track: Navigating the Return to Work after Parental LeaveBack on Track: Navigating the Return to Work after Parental Leave
Back on Track: Navigating the Return to Work after Parental LeaveMarharyta Nedzelska
 
Digital Marketing Training Institute in Mohali, India
Digital Marketing Training Institute in Mohali, IndiaDigital Marketing Training Institute in Mohali, India
Digital Marketing Training Institute in Mohali, IndiaDigital Discovery Institute
 

Último (20)

Escort Service Andheri WhatsApp:+91-9833363713
Escort Service Andheri WhatsApp:+91-9833363713Escort Service Andheri WhatsApp:+91-9833363713
Escort Service Andheri WhatsApp:+91-9833363713
 
定制(SCU毕业证书)南十字星大学毕业证成绩单原版一比一
定制(SCU毕业证书)南十字星大学毕业证成绩单原版一比一定制(SCU毕业证书)南十字星大学毕业证成绩单原版一比一
定制(SCU毕业证书)南十字星大学毕业证成绩单原版一比一
 
Ch. 9- __Skin, hair and nail Assessment (1).pdf
Ch. 9- __Skin, hair and nail Assessment (1).pdfCh. 9- __Skin, hair and nail Assessment (1).pdf
Ch. 9- __Skin, hair and nail Assessment (1).pdf
 
MIdterm Review International Trade.pptx review
MIdterm Review International Trade.pptx reviewMIdterm Review International Trade.pptx review
MIdterm Review International Trade.pptx review
 
Protection of Children in context of IHL and Counter Terrorism
Protection of Children in context of IHL and  Counter TerrorismProtection of Children in context of IHL and  Counter Terrorism
Protection of Children in context of IHL and Counter Terrorism
 
办澳洲詹姆斯库克大学毕业证成绩单pdf电子版制作修改
办澳洲詹姆斯库克大学毕业证成绩单pdf电子版制作修改办澳洲詹姆斯库克大学毕业证成绩单pdf电子版制作修改
办澳洲詹姆斯库克大学毕业证成绩单pdf电子版制作修改
 
Gurgaon Call Girls: Free Delivery 24x7 at Your Doorstep G.G.N = 8377087607
Gurgaon Call Girls: Free Delivery 24x7 at Your Doorstep G.G.N = 8377087607Gurgaon Call Girls: Free Delivery 24x7 at Your Doorstep G.G.N = 8377087607
Gurgaon Call Girls: Free Delivery 24x7 at Your Doorstep G.G.N = 8377087607
 
定制(Waikato毕业证书)新西兰怀卡托大学毕业证成绩单原版一比一
定制(Waikato毕业证书)新西兰怀卡托大学毕业证成绩单原版一比一定制(Waikato毕业证书)新西兰怀卡托大学毕业证成绩单原版一比一
定制(Waikato毕业证书)新西兰怀卡托大学毕业证成绩单原版一比一
 
办理哈珀亚当斯大学学院毕业证书文凭学位证书
办理哈珀亚当斯大学学院毕业证书文凭学位证书办理哈珀亚当斯大学学院毕业证书文凭学位证书
办理哈珀亚当斯大学学院毕业证书文凭学位证书
 
LESSON O1_The Meaning and Importance of MICE.pdf
LESSON O1_The Meaning and Importance of MICE.pdfLESSON O1_The Meaning and Importance of MICE.pdf
LESSON O1_The Meaning and Importance of MICE.pdf
 
办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一
办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一
办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一
 
办理(Hull毕业证书)英国赫尔大学毕业证成绩单原版一比一
办理(Hull毕业证书)英国赫尔大学毕业证成绩单原版一比一办理(Hull毕业证书)英国赫尔大学毕业证成绩单原版一比一
办理(Hull毕业证书)英国赫尔大学毕业证成绩单原版一比一
 
原版定制卡尔加里大学毕业证(UC毕业证)留信学历认证
原版定制卡尔加里大学毕业证(UC毕业证)留信学历认证原版定制卡尔加里大学毕业证(UC毕业证)留信学历认证
原版定制卡尔加里大学毕业证(UC毕业证)留信学历认证
 
Application deck- Cyril Caudroy-2024.pdf
Application deck- Cyril Caudroy-2024.pdfApplication deck- Cyril Caudroy-2024.pdf
Application deck- Cyril Caudroy-2024.pdf
 
FULL ENJOY Call Girls In Gautam Nagar (Delhi) Call Us 9953056974
FULL ENJOY Call Girls In Gautam Nagar (Delhi) Call Us 9953056974FULL ENJOY Call Girls In Gautam Nagar (Delhi) Call Us 9953056974
FULL ENJOY Call Girls In Gautam Nagar (Delhi) Call Us 9953056974
 
格里菲斯大学毕业证(Griffith毕业证)#文凭成绩单#真实留信学历认证永久存档
格里菲斯大学毕业证(Griffith毕业证)#文凭成绩单#真实留信学历认证永久存档格里菲斯大学毕业证(Griffith毕业证)#文凭成绩单#真实留信学历认证永久存档
格里菲斯大学毕业证(Griffith毕业证)#文凭成绩单#真实留信学历认证永久存档
 
办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一
办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一
办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一
 
Navigating the Data Economy: Transforming Recruitment and Hiring
Navigating the Data Economy: Transforming Recruitment and HiringNavigating the Data Economy: Transforming Recruitment and Hiring
Navigating the Data Economy: Transforming Recruitment and Hiring
 
Back on Track: Navigating the Return to Work after Parental Leave
Back on Track: Navigating the Return to Work after Parental LeaveBack on Track: Navigating the Return to Work after Parental Leave
Back on Track: Navigating the Return to Work after Parental Leave
 
Digital Marketing Training Institute in Mohali, India
Digital Marketing Training Institute in Mohali, IndiaDigital Marketing Training Institute in Mohali, India
Digital Marketing Training Institute in Mohali, India
 

Technical document - BadBug Studio - Xbox Game

  • 2. Contents 1 Game Design 1.1 Level . . . . . . . . . 1.2 HUD . . . . . . . . . 1.2.1 Action Keys . 1.2.2 Pointer . . . 1.2.3 Squad . . . . 1.2.4 Enemies . . . 1.3 Movement . . . . . . 1.4 Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Game Requirements 2.1 General Requirements . . . . . 2.1.1 3D environment . . . . 2.1.2 Reward and Punishment 2.1.3 Level of difficulty . . . . 2.1.4 Audio . . . . . . . . . . 2.1.5 Game state framework . 2.2 Graphics . . . . . . . . . . . . . 2.2.1 Particles . . . . . . . . . 2.2.2 Special Custom Shaders 2.3 Artificial Intelligence . . . . . . 2.3.1 Character Control . . . 2.3.2 Group Control . . . . . 2.3.3 Path Finding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Class Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 2 2 2 2 3 3 3 . . . . . . . . . . . . . 4 4 4 4 4 5 5 5 5 5 6 6 6 7 8 1
  • 3. Chapter 1 Game Design 1.1 Level The level consists basically of 3 models: the level itself and 2 additional models to add more details to the world. There is a special class which can be called upon that can determine from a Vector3 input if that point is above the level model and can determine the height of the level model at a given point. This is used to keep all moving units on top of the level. 1.2 HUD There are a few 2D elements that make up the interface of the game. 1.2.1 Action Keys The Action Keys show the player what the squad is doing. If the buttons light up it means that that part of the squad is busy attacking some enemies. The circle displays the amount of squad units of that type that are still alive. 1.2.2 Pointer The pointer is a texture of which the position can be controlled with the right analogue stick of the Xbox controller or with the mouse. When it comes across something in the world, the object reacts to it. A ray is shot into the world from the pointer’s position and the unit in the world that detects it reacts to it. 1.2.3 Squad We have four models that are loaded to a certain type of squad unit. Each type has it’s own gun after which the type is called. The types are: Machinegunner, Rocketlauncher, Grenadier and Shotgunner. The Machinegunner fires a lot of bullets. The Rocketlauncher shoots rockets at enemies which explode at the point where the enemy was when the rocket was fired. The Grenadier throws grenades at the enemy. Like a rocket the grenade will explode at the point where the enemy unit was when the grenade was thrown. Grenadiers and Rocketlaunchers are thereby not that effective against fast enemies. The Shotgunner will shoot bullets at a lower rate than the Machinegunner, but these bullets have a greater impact than the bullets from the machine gun. 2
  • 4. 1.2.4 Enemies There are four different types of enemies that move across the surface of the level. They attack the squad when in they are within a certain range and follow them around the level. The four different types of enemies have a certain weakness for the different types in the squad. They are placed in groups that can be attacked by the squad unit types and are spawned from spawn points. 1.3 Movement The movement of the squad is defined by a single point that travels on the height map. The squad units stay in their own group and those groups try to stay near the squad point. The movement of the squad is handled by the left stick of the Xbox controller or by the WASD-keys. 1.4 Camera When the squad moves forward, the camera stays a little behind and seems to look forward. When moving backwards, the camera is pushed backwards and looks at the ground where the squad is moving to. The movement of the camera is smoothed by a spring so it glides from position to position. The camera will turn with you, so if you move to the left the camera will follow behind you. But moving the squad is not the only way to turn the camera. When you move the pointer (with the right poke on the controller or with the mouse) to the sides of the screen, the camera will turn in proportions to that distance. When the pointer is in the upper part of the screen, the camera will move a little bit backwards and looks a little bit more up so that it gives a better overview of the level. 3
  • 5. Chapter 2 Game Requirements In this chapter we will elaborate on the implementation of the general and choosen extra requirements. 2.1 General Requirements These are the requirements that have to be met by the final product. 2.1.1 3D environment Our game takes place in a 3D environment where the camera focus lies on a spot in the middle of the squad (or where the squad needs to go). 2.1.2 Reward and Punishment system The player progresses by surviving and destroying the enemy. By doing this, the player completes the stages. As of the arcade part of the game, the player earns points by destroying enemies. The number of squad units alive will act as a kind of multiplier. So if you survive everything while maintaining a high number of squad members your score will be higher than if you survive with less.1 . 2.1.3 Level of difficulty The level of difficulty increases when you progress in the level. You start with a small squad with only one type (Shotgunner) with one type of enemies that has a weakness for Shotgunner and only one spawnpoint from which they spawn. When you have destroyed that spawnpoint you’ll advance to the next stage. Two spawnpoints will be added where two different types of enemies will spawn. The player now learns that the Shotgunner is not that capable against the other kind of enemy and needs help. He’ll find that in a tube that can be destroyed which frees some trapped squad members. Now he will have the firepower to destroy the other type of enemies more easily. Every time you manage to destroy all the current spawning points you’ll advance to a next stage where more spawnpoints will be added with more enemies and there will be some more tubes that you can shoot to get more squad members. By adding more and better/faster/harder/stronger enemies the stage will become more difficult to survive and complete. 1 Section 2.4.1, Game Design Document [1] 4
  • 6. 2.1.4 Audio Audio is played for actions like exploding bombs and gunfire. There are some ambient sounds like falling water drops. The soundtrack is dynamically build from drum, bass and guitar tracks. Together they make up the soundtrack by choosing the more mellow parts when the game is not that intense and choosing the more heavy parts when there is action. The volume will also adjust to reflect the game play. When you’ll lose squad members the drums lose volume and are send through a reverb so that it sounds more hollow. 2.1.5 Game state framework The game can be paused so that an interface is shown where you can quit or resume the game, view the controls and a section where you can configure some options like the volume of the soundtrack. 2.2 Graphics These requirements are about the graphical features that have to be implemented. We decided to put in particles and special custom shaders, because they can add a lot to the game experience and sound cool. 2.2.1 Particles We want to make use of particles to make explosions look awesome and to give the user feedback about what happens. There are explosions with smoke and there are particles that represent the damage done to enemies. Those particles fly off the enemies on the other side of where they have been hit. 2.2.2 Special Custom Shaders Since we have animations in the game, we had to use the matrix palette shader that came with the animation library. But the models looked flat and rough since this shader doesn’t use any form of lighting or advanced texture sampling. So we had to rewrite it to create out own custom shader. The texture sampling was added by describing that the sampler should use linear smoothing. We added support for one ambient light and three point lights to the shader, as well as a parameter to set specular power. The ambient light is defined by only one color, while a point light is defined by a combination of color, position, falloff and range. The lighting factor for each point light is then created by taking the dot product of the pixel normal with the negative light direction, raise that to the specular power, and then taking falloff and range into account. To give an illusion of shadows in the level we added a masking technique, that used the 4 separate channels of a texture (that should be as large as the level) as a mask for the different lights. We used the RGB channels as mask for the point lights and the alpha channel as mask for the ambient light. This way we can darken our animated models in caves, or in the shadow of a static object. Note that the different channels are not the colors: each channel is just a value from zero to one that is then multiplied by the already calculated light effect. 5
  • 7. We added fog support in our custom animation shader as well. This way all animated models start out blended with the surroundings in the distance, and will be more visible as they are finding their way to your squad! The shader also handles highlight support. This highlights the model of an enemy as the player moves the pointer over that enemy, or any other enemy in the same group. This way the player can easily see which target he is telling his squad units to attack. 2.3 Artificial Intelligence These requirements are about the Artificial Intelligence that will control certain objects in the game. We chose Character, Group and Automatic Object Control, because those are all needed to implement the game play the way it was designed. 2.3.1 Character Control Squad Movements We chose character control because we want to move our squad in a ’fuzzy’ way. The player doesn’t control the units directly. The specifc movement of the units need to be controlled by the system. While squad moves, it is the responsibility of every unit not to fall behind. When squad stops, main positions are calculated using group control, yet individual units would keep readjusting their positions themselves. Enemy Movements Normally the movement of an enemy is indirectly controlled by the group that it belongs to (see below). Yet when an enemy spots a squad member in its active range, it takes control of its own movements and starts following the squad instead of its own group. In case it looses the squad, it returns to its group again. Just a little disappointed. Enemy Targeting After an enemy group is selected the character decides itself which particular enemy will he attack to. Each unit will be more likely to shoot the enemies standing closest to itself. Yet the enemy needs to be in the selected enemy group. 2.3.2 Group Control Spawning The game has a spawn manager which manages the spawning of new enemies from dynamic spawn points. This manager works using fuzzy logic to spawn a enemy group. By looking at the active enemies and number of enemies in the world the spawn manager decides, which spawning point to use, how many enemies to put in a group, what sort enemies to spawn. Spawn managers duties are extended to keep track of different game stages, making the game more and more difficult. Yet the spawn manager is not all that evil. It also spawns squad members when necessary. When a pod is destroyed by the squad spawn manager checks the squad status to decide which sort of unit the squad needs most, and than spawns it on the squad position. Squad Movements Characters will be controlled by moving an invisible point across the surface of the heightmap. Taking that invisible point as a center, for every type unit a main position will be calculated with that types ranking as radius and a randomly generated angle. All individual units will choose a place close to their types main position. Once a main position is set for a unit type it is up to that type units to be organized around that point. 6
  • 8. 2.3.3 Path Finding Although the general movement of the squad is considered to be the users responsibility, the movement of the enemy groups are handled by each enemy group. Each enemy (If they do not have the squad in their active range) patrols around the an invisible group center. The group center uses a bread first search algorithm to find the squad in increasing number of steps. When a valid path is found, the group center starts moving towards the squad. Not to leave any fellow members behind, the group center moves in a relatively slow rate. Enemies During the game play different sorts of enemies will be spawned to keep the user challenged. By each stage of the game, with new spawning points, there comes new types of enemies. The attributes of enemies are selected considering their appearance, their role in game, the attributes of the squad unit that is coupled with it. (For example if an enemy has a long range it is not coupled with a squad unit which has short range). A manta ray as an example; is quite a big creature. Being big, it is slow with a low range yet it inflicts high amount of damage since in the beginning of the game, it is the only enemy sort to be spawned. The attributes of the other enemies can be seen in table 2.1. Enemies: Manta Ray Bug Bee Boomer Table 2.1: Attributes of enemies Attributes: Range Speed Damage Short Low High Average Average Average Short High Low Long Average Low New Squad Types New Enemy Types Nr of Spawn points Nr of Possible Enemies Table 2.2: Stages of the game Stage 1 Stage 2 Stage 3 Machinegunner Shotgunner Grenadier Manta ray Bug Bee 1 2 3 50 75 100 Stage 4 Rocketlauncher Boomer 3 200 Game Stages Table 2.2 shows how the game progresses between stages. As the game shifts from one level to another, the spawn manager spawns new sort of enemies and pods. Those pods can be used to get new squad members. 7
  • 9. Chapter 3 Class Diagram World and Viewer The virtual world is a Component3DContainer and contains Component3D’s. Because Component3DContainer inherits from a Component3D he can reside in a Component3DContainer. A simple application would be a tree as container, filled with leaves as components. The position, rotation and scale of the leaves are relative to the parent container, so if the tree would move (!) the leaves would stay with the tree. To display the virtual world we have a Viewer that has a Camera. The Camera has a reference to the world so that is knows its position in the virtual world. The Game calls the update method of the world and the world calls the update method to all his childs recursively. The Game calls the draw method of the Viewer so that he can draw the world. Figure 3.1: Class Diagram of the units Squad and Enemies All actors in the world belong to groups. The squad moves as one group and acts in different groups. Enemies should move and attack as groups. The group is 8
  • 10. defined by UnitGroup. All actors (Units) have one group to which they belong. The position of the squad and the position of the units relative to the squad position are handled by the squad manager. Just as the squad units are generally controlled by the squad manager, so are the movements of the enemies controlled by the enemy group managers. 9
  • 11. 10