Secret ending, Voiceline and Main Menu

I decided to include a secret ending if the player manages to find all of the hidden coins, this way the game had an aspect of replaybility as the player will want to know what the secret ending hides.

The secret ending will be an angel in a welcoming pose that will be saying lore related backstory to serve as the official end of the game, this ending is supposed to answer what happens afterwards as well as why kronos got released.

After the secret menu i started working on creating different voicelines for every enemy, boss, player and finally the secret angel. I decided to use the Diamond voice changer software that i have purchased to do this, and i created several files that have been incorporated in the storyline script to play when the certain voiceline is narrated by the text, making the game livelier. In addition i managed to find a song artist while browsing forums and the artist let me use his songs in my game, his youtube is Malou TV

Finally i created a Main Menu after all the aspects of my game were completed, this main menu has the ability to choose between hardmode and easy mode, which basicly makes the archers either lock on to the player faster or slower, depending on the difficulty.

Chests, Collectibles and third level

After converting the computer version of the game into the virtual reality version i had to start creating the next level, but before that i decided to create chests that have an increased chance to drop better quality weapons, this way the player can explore further and get even better equipment.

For the next level i decided to create a town that doesnt stop moving, and also the player can pass through the town`s people, making the place a ghost town full of ghosts who cant rest, as a result the player needs to get 4 collectible coins, which is an asset from the unity standard assets and allowed me to create small coins that rotate around itselves to show that its a collectible. After the player collects 4 coins the final boss of the game will be spawned and the player will have to deal with this boss

This boss uses a scythe to make cleaving attacks and has basic attack types and utilises similar code to the other boses, except for the different model and animations that were imported from Mixamo.com.

The ghost town works by having around 30 non hostile non player characters or friendly NPC in other words, to create this i had to import several normal human looking characters to simulate a modern village and then imported walking animations to simulate the busy atmosphere of the town, the NPC only move around the map and follow 150 waypoints, which are randomised and all NPC follow a unique route.

VR backpack

After the laser system i had to create a backpack system that allows the player`s weapons to be stored without losing the information that the system has of them, to create this i used several box colliders, one at the back of the players head to detect when an object needs to be stored and two on the each side of the player to detect when a weapon is being taken out of the backpack.

This allowed me to keep the weapons data as well as allows the player to quickly pick up their weapon and start shooting if they run out of ammo, instead of going back and grabbing one, or openning an inventory screen and picking a different weapon.

Laser pointer System

Now the player could move and attack, i decided to create a script that allows the player to shoot a laser that will be able to move an object from afar, this script has already been created by me during a different Virtual Reality project and to create this script you need to utilise the Laser system already implemented in the SteamVR plugin and access the object at the very end of the laser in order to move it, to do this several events have to be passed through in order to detect collision for the laser and afterwards the laser will be allowed to move the object when a certain button is pressed and held. However i decided to add the ability to also pull the same object using the other hand, which allows the player pull the object by setting a translate function to teleport to the players hand instead of keeping the objects location

VR Implementation part two

My character can move and interact with the environment, however i need my character to be able to pick up the weapons and shoot them, for this i had to add an additional script called the Player Controller which stores the amount of damage, range, type of gun and other varibles needed for other scripts to fully operate.

To create the player controller i used several booleans to detect when collisions happen in order for the right information to be passed along, as well as set up the canvas of the whole game to the wold position, as a result i needed to move each canvas element to the right place of where the player could see each element, for example i moved the health canvas of the players health on the players left wrist instead of infront of the players eyes, as that might distract them.

After finishing the Player Controller i could use the variables from it to make the Game Manager adjust the ammo counter correctly and then reload when the ammo finishes, making the player stop and wait for the reload to happen. Furthermore the variables from the Player Controller went into the Bullet script and Bullet fire script in order to adjust the range and fire rate of the guns, as the type of gun was required for each weapon to fire.

The player controller variables were also shared to the Enemy and Boss Health scripts in order to adjust the damage dealt to the enemies depending on the weapon the enemy is hit with, for example the pistol would deal 30 damage, where as the rifle would deal a standard of 15 damage per bullet.

VR Implementation Part One

This game is supposed to be multi platform game,as this is what i had planned from the beginning, as a result now that i had a second level with 2 boses already available next thing that needed to be done is to transfer the game from PC compability to VR compability

To do this i had to first download the SteamVR plugin from the unity asset store, to even be able to use VR in my game. Afterwards i followed a tutorial by Valem, https://www.youtube.com/watch?v=5C6zr4Q5AlA, that allowed me to create the basic movement, looking around and being able to see the controllers

From there i decided to go for Teleportation based movement, as teleportation based movement creates less nausea for the player, allowing for the player to enjoy the gameplay for longer periods of time. To use this movement i used the teleportation area script provided by the SteamVR plugin to designate an area that allows the player to teleport to, and with this the player could move around the map

Now i had to create the ability to pick up objects, for this i followed the second tutorial by Valem, and managed to pick up objects by placing the interactable script on the object that needs to be picked up, this is also a script provided by the SteamVR plugin, which allows me to interact with an object by putting my hand next to the object and placing the trigger button.

Now i could pick up and object and move around the map, allowing me to explore the area, however i still didnt have any way of attacking the enemies or seeying the players healthbar.

For the more advanced VR implentation follow the next update

2ND Level

Now that the first level (the tutorial) has been completed and the player knows how to play the game, the next level has to be build, for this level i decided to have a maze and enemies before the maze, to create a chaos, into calm, into chaos situation with the boss at the end of the level.

While Creating this level i also decided to create the Boss for this level, so i decided to get a model from mixamo.com that has horns in order to simulate the feeling of a Minotaur, which is a legend about the Great Labyrinth, created by the greatest architect Daedalus and the guardian of this maze was the Minotaur. The player has to find the exit to this maze and will be met by the horned boss

The boss begins with a taunt action to make the player aware that the boss is coming towards them and is not a normal enemy, but instead a boss monster. The boss has several attack patterns similar to the previous boss, however this boss is mainly orientated to charging the player and slashing at point to simulate the Bull Charge ability of a Minotaur.

Boss implementation

I have the enemies set up, item drops and player story. What is missing… a boss, so i decided to start working on creating a boss. I decided to look for an alien looking hunter that would be my boss, and found a character on Mixamo.com.

I had an idea for the amount of attacks the boss was going to have:

  • Right Swipe- the boss swipes using his right hand and the player has to stay on his left side to avoid the damage, for which i needed a box collider to detect when the player is in this field to take the damage. In addition i needed the box colliders to be enabled and disabled when the attack is attacking and not attacking.
  • Left Swipe- The boss swipes using his left hand and the player has to stay on his Right side to avoid the damage, for which i needed a box collider to detect when the player is in this field to take the damage.
  • Leg Sweep- the Boss uses his leg to sweep the group and the only way to dodge this is to jump to avoid the damage,for which i needed a box collider to detect when the player is in this field to take the damage.
  • Cast- The boss raises a circle infront of him dealing a little amount of damage, however with high range, making the attack difficult to evade, for which i needed a box collider to detect when the player is in this field to take the damage.

Also i wanted my boss to begin the fight with a battle cry, to make the player hyped to fight the boss and also to show how strong the enemy is, as normal enemies will not have a battle cry.

Each attack does a different amount of damage.

Enemy Animations

I decided after the enemies i should start focusing on the animations for each enemy, the basic animations that i wanted to have is shooting, drawing (the arrow) and patrolling. I received my animations from Mixamo.com, as they have very good animations and with state trees the animations would be smooth and have the effect that i wanted to have

I set up a state tree for the idle animation to begin with, however i would not really need it, as i want the enemy to be patrolling or attacking all the time, and not to be idle, however future proofing my project felt needed, as a result i added an idle animation. Then i went on with the walking animations for the patrolling action. For which i had to include an animator variable in the script for the enemy AI, the walking animation would start only when the enemy is patrolling and stop as soon as the player approaches.

When the player approaches, the enemy will start playing an animation of drawing their bow and shooting and arrow, repeating this process until they are dead, or when the player moves outside of the patrol range. To create this animation i set up a state tree to activate only when the player gets in range and to shoot only when the animation for the drawing of the bow has finished, in order for the player to have time to dodge the arrow.

Basic Enemy Mechanics

For the enemies my plan was to have them shoot at the player with a delay, which would allow the player to dodge their arrows. For me to do that i had to slow their turning speed using quarternions, which can be adjusted to be faster if in the future i plan to have several difficulties.

The enemy will chase the player to kill them in melee range with daggers (not yet implemented), in mid range distance the enemy will shoot at the player, and if the arrows hit then the player will also take damage. At long range the enemies just roam on certain way points that i have set for them to roam to, however they also take the way points of some of the enemies that are alive, so the pattern is not the same for every enemy, allowing for diversity

The enemy has a health bar that is lowered by the player when they shoot, different guns deal different damage and may take longer to kill the enemy. When the player kills the enemy, an item drop will appear with a special rarity to signify that weapon drop. Each gun has a different range and damage and the rarity also follows this rule, for example a shotgun can have very short range, but very high damage in its legendary version, or medium range with low damage with the common version of the weapon (more on RNG is on the guns update)

Design a site like this with WordPress.com
Get started