Tuesday 4 November 2014

Prehistoric Game [Before The Dawn]

[Task]

The task given is to create a game that incorporates a prehistoric theme.
The task also set limitations that must be followed while creating and designing the game, these include:

  • A Prehistoric theme.
  • The camera must be fixed to a certain position and cannot rotate or move in any way.
  • A minimum of two (2) Genuine User Interface elements in game.
  • Multiple sounds within the game.
  • Must be 3 dimensional and not 2 dimensional.
A development build must be submitted in week 8 to show our progress on creating the game. The final game will be due in week 11.


Development Process

When given the task I began to look for inspiration on the type of gameplay that I wanted to create for the player. I looked at other games, mainly the ones developed for handheld devices. These included Temple Run, Subway Surfers, Candy Crush Saga, Jet Pack Joyride and Angry Birds. These games may not have followed the prehistoric theme my task involved but their gameplay and mechanics could be used with the prehistoric theme. For example similar to Angry Birds I could have the player launch dinosaur eggs towards dinosaurs. Or similar to Candy Crush I could have different coloured eggs you had to group together and clear to gain points. Or with Jet Pack Joyride I could create a side scrolling game where you had to dodge obstacles. Although most of the games I used for inspiration incorporate a 2 dimensional design, they could all be recreated in a 3 dimensional space.

I decided on creating a game that incorporated a similar gameplay mechanic to Temple Run. I decided that I would have a dinosaur chasing after the player (an ordinary human) and had to dodge the dinosaur every time it attacked. For this I knew I would require animations, collision detection, a terrain / environment and create a script that would allow me to move the player between 3 different lanes. This became the basis for my concept and what I would work to achieve by week 8.

Game Object Asset List
Low Priority
Medium Priority
High Priority
Scene Decoration
Audio
Player Model

Fonts
Terrain / Environment

GUI
Player Control Script (C#)

Textures
Animations (Player & Enemy)


Animation State Control Script


Dinosaur Model

I decided that first I would create my environment terrain where I would put the dinosaur chasing the human. I looked around on-line to gather ideas on what the environment should look like with textures and trees.





I created the terrain with many hills and mountains similar to the second image shown. In the middle of the terrain itself was a valley that stretched the length of the terrain, I created the valley for the purpose of placing the dinosaur and player in.

This is the end product of the terrain I created:
I used 3 different textures to texture the terrain, these textures were imported from the unity terrain asset package. Only two textures were used primarily (Grass and Stone) whereas the dirt texture I used with the opacity turned down so it wouldn't completely replace the grass texture but make patches where the grass was worn away.





After completing the terrain I began to focus on the actual mechanics and how my game would work. Taking the fixed camera into consideration I realised that the camera could not follow the player as he was being chased, which then also meant that the player would have to stay in one position while the terrain moved instead, this would give the effect that the player was moving. To make the terrain seem infinite and unending I created a copy of the terrain and place one after the other behind the camera. When the first terrain had reached a certain distance away from the camera it would then change change its position to back behind the camera and join the second terrain as they both continued moving into the distance.


Searching on-line I found exactly what I needed for the player and dinosaur models and animations. On the Unity Asset Store there was a pack that contained dinosaur models and animations for each. With this I began work on creating a C# script that would control when the dinosaur would play the attack animation and walk animation cycle.



I chose to use the Velociraptor dinosaur model from the dinosaur pack I downloaded because they are a smart and agile dinosaur.


From the unity assets I imported I added tree's to the terrain to add detail. I added them on the sides of the valley to hide the fact the hills looked like they had randomly appeared everywhere but the valley.


I began working on the GUI elements, for this I wanted to create a script that would count the metres the player had dodged / survived the dinosaurs attacks for. Instead of using the new GUI unity had to offer in its Beta 4.6 version I stuck with the older code created GUI because I knew how to work with it. The GUI font I found on-line. I used it because I felt that it worked with the prehistoric theme.

I positioned the GUI in the top left and changed the colour of it to orange to stand out from the scenery.


Here is a detailed list of how the final game mechanics worked in my game:
  • When the dinosaur attacks the player if it manages to catch him and bite him in the attack animation the game is over instantly.
  • The terrain moves away from the camera off into the distance at a constant speed then repositions itself behind the camera and continues this loop forever.
  • Every half a second the score goes up by (1) to simulate how many metres the player has moved.
  • The dinosaur attacks every few seconds.
  • There is a collider attached to the mouth of the dinosaur that detects the collision between the player and dinosaur.
  • The player can move between 3 different "lanes" (Left / Middle / Right) which are not visible. The player begins in the middle lane with the dinosaur behind.
  • If a player moves to a different lane the dinosaur will move to the same lane 1 second after the player has moved.
  • There is no way to win the game apart from gaining the highest score possible which would be the maximum value the variable could hold.


After finishing almost all of the game itself I began work on the Menu, Credits, Game Over, and Help screens.

I started creating the Main Menu first so that I could navigate to the other screens I would make. For the menu I created a new terrain which was a canyon that contained a volcano in the centre. I added the volcano because of the theory that the dinosaurs were either wiped out by a volcano eruption or a meteor that fell to Earth millions of years ago. I simulated a lava effect by creating a particle system that used the default particle although used a gradient for colouring each particle that was generated. I added a 2D orange circle sprite under the particle system because the particles generated were not enough to completely cover the top of the volcano.

From the dinosaur asset pack I downloaded I used the rest of the dinosaurs to add life to the menu scene. The same textures and tree's from the game scene were used in the menu scene.



I created the Help screen by taking a screenshot of the menu screen and putting the image as a texture on a Quad in unity. The GUI was created through a C# script using the same font from the game and menu. The help screen simply states how to play the game and how it works.


I created the Game Over screen from a image a found on the internet of a blood splatter. The text and button GUI are created by a C# script. I decided to use the blood splatter image because a Velociraptor (the dinosaur chasing the player) is a carnivorous dinosaur and there really isn't anything else that would have suited being eaten alive by a dinosaur for a game over screen.



The credits screen is very much like the help screen it uses a screenshot of the main menu terrain as the background and the GUI is created by code. The credits were created during week 8 and the reason they are like that is because they were just fillers until I changed it....... Which I didn't actually get around to in the end.


In week 8 I added audio to each scene, the main menu and game scene all used the same audio which I found on-line. The audio primarily used drums and flute, which I thought would suit the theme of prehistoric quite well. For the death screen I added a dinosaur roar as a little jump scare for players.



No comments:

Post a Comment