GameReport Slaze .pdf

File information


Original filename: GameReport-Slaze.pdf

This PDF 1.4 document has been generated by , and has been sent on pdf-archive.com on 28/01/2015 at 17:23, from IP address 37.228.x.x. The current document download page has been viewed 485 times.
File size: 4.1 MB (8 pages).
Privacy: public file


Download original PDF file


GameReport-Slaze.pdf (PDF, 4.1 MB)


Share on social networks



Link to this file download page



Document preview


Cian McElhinney

Slaze

08/12/2014

Cian McElhinney

Slaze

08/12/2014

Cian McElhinney
Interactive Game Project
Description
The game I choose to make is called Slaze (Slenders Maze) and was modeled on the story of
Slender Man​
, a tall, thin, faceless man who follows you at a distance but is never seen
moving. He is also known to cause cameras to pick up large amounts of noise before
breaking. When taken by Slender people later wake up in a different place not knowing how
they got there.
For my game you are placed in a corner of a maze and you have to find your way out of a
locked door without being caught and finding the opening lever.

Game mechanics
Controls & Movement
WASD - Directional moving keys
Arrow keys - look around
Left Shift - Crouch
J - Jump
L/Enter - Toggle FlashLight
Spacebar - Action, Close Menus, Pull Levers
0,1,2,3,4 - toggles the location of the map
f12 - Quit Game
Quaternion navigation was used with WASD and the Arrow Keys.
The equation of motion was used with gravity to model jumping with a small ​
spring ​
was
added before takeoff and after landing to simulate legs.
A bobbing up and down was added as a function of the elapsed time make it lag
independant. This add the effect of walking on an uneven surface.

Lighting
FlashLight
You have a flashlight with a limited battery that slowly gets weaker, decrease in radius and
intensity, if it’s on until it runs out. The batteries are reset to full after each level, or on
returning to the starting point in the top left.
To achieve this I programmed my Vertex Shader to get in a uniform float of the
batteryLevel, a number from 0.0 -> 1.0.

Cian McElhinney

Slaze

08/12/2014

As shaders can quickly get messy and confusing if doing many things I tried to keep
everything in Vertex Shaders to ​
CamelCase ​
and everything in Fragment Shaders to
snake_case.
I then passed batteryLevel out into my fragment shader as battery_level. This was then
used in calculating the arc size of the spotlight as well as the spot_factor (brightness). In a
similar manner the position of the light was set using the camera position what was
calculated in the main.
Fog
Fog was added as well with it getting more intense as you progress through the levels.
Using a smaller Min and Max radius size.
White Noise
Just before getting caught by Slender there’d be distortion in the camera. I wanted to make
random white noise appear using my shader.

I found a simple pseudo random number generator online using the below formula. It can
be clearly seen that the graph produced is very random looking.

In my fragment shader I then passed it the current position of the vertex_position.xy from
the vertex shader. This produced a nice random noise effect but if you didn’t move then the
noise didn’t flicker as rand() would always produce the same value for the given vertex
position. To combat this I passed in another parameter, noisePercent, a number from 0->1
showing how intense the noise should be. This then generated a nice white noise effect.

Cian McElhinney

Slaze

08/12/2014

To know when you are ​
seen t​
he current camera position is compared with Slenders
position. If the X or Z values match within a threshold then every space in a straight
line between both points is checked for walls.
Phong Lighting
Phong lighting was the form of lighting I implemented with the additions mentioned above.

Maze
Everytime the game is played a random maze is produced for a given size depending on the
level. For this I wrote a C++ class called Maze that took in the required size of the maze and
its Complexity and Density. Complexity being essentially how long each wall is as a maze
with smaller column type was is not very complex whereas one with long walls and only one
or two paths through is much more complex. 4 randomly generated mazes are shown
below.

Cian McElhinney

Slaze

08/12/2014

Editing these 2 values results in very interesting and different gameplay.
double​
mazeComplexity = ​
0.05​
;
double​
mazeDensity = ​
0.2​
;
These 2 values get increased as the levels progress resulting in more difficult game.
Ensuring the maze was solvable and every point was reachable was obviously important. To
ensure this I placed a random cell wall then expanded in a random direction checking that 2
ahead was free. This ensured that there was always corridors and no closed loops.

Cian McElhinney

Slaze

08/12/2014

For the maze a terrain I made 2 mashes. One for the ground which I textured with tiles and
tufts of grass and walls which. For the walls I created a column mesh which had 2 different
textures, one plain and one with either blood, rust or graffiti on it. A random secondary text
was added to a few walls.

Collisions
For collisions I compared the current camera position with the positions of the columns and
with the current position of Slender.
To ensure Slender never appeared in a wall it was first checked that it’s an empty spot.

Animation
An animated ​
intro screen​
was used to start the game and show instructions.
Lever Animation can be seen at approx. 4:38 in t​
his video​
.
Before placing the lever in a random location it was 1st checked that there was a wall there
and that it was oriented the correctly with the lever pointing out.
Hierarchical animation was used in the tentacles on Slenders back this can be seen in ​
this
video​
. To make it so Slender is always looking at you I computed the angle between the
-1​
camera and slender using tan​
( (X​
-X​
)/(Z​
-Z​
) ). After negating this and adding 180 if the
2​
1​
2​
1​
bottom line, (Z​
-Z​
) < 0. Slender now looks at you wherever you are. These tentacles
2​
1​
oscillated up, down and around keeping slender as their origin. This was done by first
translating them to the origin, rotation them then translating them back.

Cian McElhinney

Slaze

08/12/2014

Texture & Models
I created the textures for all my models. Most models had a diffuse, ambient, specular and
emission texture which were used in the fragment shader. For Slender, there was an
emission text that caused his eyes to glow, the same for the lever, open door and his
tentacle tips.

I edited an online model to produce a long thin Slender with a featureless face.
I created the columns, door, bumpy ground and tentacles meshes using blender.
Corner Map
A map was added in the corner of the display, this could be changed to any corner as well as
the center using the 0,1,2,3,4 keys. This map was created by using 2 colored triangles based
on what they were representing, they were then translated to their position and drawn
using a different basic shader that took in a uniform of a color.
GUI and Cutscenes
The cutscenes displayed at the start or when killed, won the game, got to the next level or
tried to open a locked door were created using Gimp then drawn on 2 triangles using
another shader similar to the one before but sampling the texture at the given texture
coords.
Cube Mapping
A sky box of a nights sky was made using Gimp.

Cian McElhinney

Slaze

08/12/2014

Levels
My game can very easily work with N amount of levels. I found 4 to be a good number with a
full game play lasting 10-20mins. Each level becomes more difficult than the one before.
1. Little fog. Small maze. You, Slender, End, Lever, Walls on map
2. More fog. Bigger maze. You, End, Walls on map
3. More fog. Bigger maze. End, Walls on map
4. MORE FOG. HUGE maze. NO MAP!
For each size of the map the terrain mesh and it’s texture resized and scaled to perfectly fit
edge to edge with the new width and height of the maze.

Sound
Sound was a big part of my game. There is a consistent scary noise playing in the
background. Whenever Slender moves there’s 2 loud footsteps thumps. When seen a loud
screech noise is played. 2 sounds were assigned to the operation of the lever happening
one after the other making a grinding gear noise followed by an opening noise. A clicking
noise is played when the flashlight is switched on or off.

Performance
Various performance were kept in mind making the this game. They include loading GUIs
and Sounds first so there’s something displayed to the user while they wait.
A radius around the camera was used to decide if an object should be drawn. In ​
this video​
a
very small radius is used to demonstrate it.

Links:
Battery Recharging
http://youtu.be/TmP2W_mjgys
Intro
http://youtu.be/fmcseRKbw-I
Following + Animation
http://youtu.be/3YOasOncnu4
Drawing Radius
http://youtu.be/m1Yx7iGA8cY
Full Playthroughs
http://youtu.be/MBXptMvaE7k
http://youtu.be/Ynb7W2siZyg
Speedrun
http://youtu.be/WEn7s0wHsK8


Related documents


gamereport slaze
1534000 a atx manual lr
maze bot final
intwoparts
wei wu
manual

Link to this page


Permanent link

Use the permanent link to the download page to share your document on Facebook, Twitter, LinkedIn, or directly with a contact by e-Mail, Messenger, Whatsapp, Line..

Short link

Use the short link to share your document on Twitter or by text message (SMS)

HTML Code

Copy the following HTML code to share your document on a Website or Blog

QR Code

QR Code link to PDF file GameReport-Slaze.pdf