The last post was getting a bit long so I’ve decided to continue it in this new post.
End of Humanity – Student Game (Unity)
End of Humanity (EoH) was the result of an assignment given to us for our scripting class at Uni. We had 6 weeks to create a 3D FPS of any sort from scratch by ourselves in Unity. I was given the second highest grade possible for this game, although it was meant to be the highest grade but I was penalised for the upload finishing an hour past the due date.
The game itself was a wave based shooter where the player would have to try to survive for a set amount of waves against a variety of enemies, while searching the level for weapons they could use to assist them in their fight. The “Story” of the game differed depending on which of the two arenas you choose to play in. The themes differed between a supernatural apocalypse and a machine uprising apocalypse.
This game was a huge challenge for me at the time as my knowledge of 3D asset creation and programming in C# was still very much beginner level. This game did help me improve both to an extent, though while I continued to develop my 3D skills afterwards I did not continue to develop my programming skills outside of where it was required.
The level design in EoH was relatively simplistic, with one level taking place in an underground bunker and another taking place at an outpost. The underground bunker level was a winding series of tunnels and rooms on multiple floors, with each area having multiple ways in and out. Weapons were placed throughout these areas and players could find and use as many as they picked up. The outpost was the opposite, a large, open area with multiple buildings and obstacles acting as cover for the player. Due to me not knowing of any specific tools that could assist with level design in Unity itself, and not really knowing enough about 3DS Max to do them in that (at the time), I built the levels in Hammer and ran them through 3DS Max before exporting them for Unity.
The enemies in both scenarios only differed in appearance, with each level having three types of enemies which would spawn in during the waves. These three types were;
- Melee – Basic melee enemy, would hunt player down and strike upon getting close enough, causing massive damage.
- Hitscan – Enemy that would fire laser at the player upon visual contact with the enemy (as long as they were within a certain range). Would move relatively close to the player and stop when they hit that distance.
- Projectile – The enemy has a similar behaviour to the Hitscan enemy, however it fires slow moving projectiles at a slow rate which deal massive damage to the player. Can be deadly if caught out unaware.
There were also 8 different weapons I scripted for the game, these were;
- Pistol (Bunker) – Hitscan pistol dealing moderate damage.
- SMG (Bunker) – Hitscan SMG dealing low damage, but has a high ammo count and fire rate.
- Shotgun (Bunker) – Hitscan shotgun dealing high damage with low fire rate.
- Airburst Grenade Launcher (Bunker) – Projectile heavy weapon that fired explosive rounds.
- Pistol (Outpost) – Projectile plasma pistol dealing high damage.
- Laser Rifle (Outpost) – Hitscan rifle dealing extremely low damage fixed update fire rate.
- Plasma Rifle (Outpost) – Projectile rifle dealing high damage with moderate fire rate.
- Rocket Launcher (Outpost) – Projectile heavy weapon that fires rockets that explode on impact.
Virion – Student Game (Unity)
Virion was a student game that was developed by me and three others as a part of our Studio class at Uni. It was a very successful project with playtesters and tutors alike enjoying it thoroughly. Our small development team was extremely talented and capable, and we all worked well together throughout the development process.
The game was a top down strategy game where two players would compete to control as much territory as possible. Players would move their pieces to hexagonal grid spaces on the board, and would capture a varying amount of grid spaces upon moving depending on which type of unit they would move. Different units could capture territory in different ways, and units could capture the territory that enemy units had captured previously. If a unit was able to move onto an enemy unit, the enemy unit would be destroyed and all of the territory that was captured by that enemy unit in the previous turn would be turned over the the friendly unit. A player could win the game by capturing a certain total percentage of all tiles on the board.
Each team had was comprised of 3 types of units amounting to 5 units in total per team. These units were;
- Spyware – A “fast” attack unit that could move up to 4 tiles. In trade for it’s long reach, it would only capture the tile it landed upon while moving.
- Malware – A medium range unit that could a maximum of two tiles from it’s position. It would capture all of the tiles it passed over to reach it’s destination.
- Trojan – A heavy unit that could only move 1 tile, but would capture the tile it landed on as well as all of the tiles surrounding it.
I was responsible for a number of different things in Virion, including level design, particle effects, modelling and animating the spyware unit as well as some miscellaneous UI and 3D asset creation tasks.
The two levels I made that were placed in playable versions of the game for playtesting were called Chasm and Duo. A screenshot of Chasm can be seen above, and a screenshot of duo can be seen below.
Our initial level editor was actually Microsoft Excel, something I never thought I would be using for level design. Later on, our extremely talented programmer made a proper Level editor for the game in Unity itself, which simplified the process greatly.