The Journey is a 2D adventure game following a character who fights enemies to get to a trophy
This was my first project ever made in Unity. Though familiar with C# previously, making this game made me approach the process in a different way.
Gameplay:
The player must traverse a series of levels, each containing enemies and pickups
There are also treasure chests in the levels, which, when shot by the player's projectiles, can spawn random potion pickups, each with their own effects
Partway through the game, there is a level that will be selected randomly each time the game is played.
To win the game, the player must reach the final cave level and collect the trophy inside
Skills developed from this project:
Unity functionality: never before this project had I ever opened Unity, so nearly every skill needed to create this game was new. I learnt about prefabs, the animation system, tags, tile painting, and how and when to use different scripts.
Two-dimensions: my projects prior to this had all been created in Unreal Engine, and so were made in a 3D space. As such, this was my first 2D game, so I had to ensure I was thinking slightly differently in how my designs and mechanics would work.
Randomisation: I hadn't previously featured randomisation in a game with visuals - my only previous usage was in my text-based game, Funky Fishing. In this project, I used randomisation to choose which potions would spawn from a broken treasure chest, as well as the positions in which they would spawn, and the random level.
Scene changes: my previous games in Unreal Engine had all been contained completely in one map, so this was my first time ever having to switch between different levels. Though I had issues at first with carrying across information between scenes, this is a skill that I am very glad to have gained, since it will be extremely beneficial to know for all future games.
Timer-based levels: within The Journey is a level which features a timer in the corner. The timer counts down in real-time seconds, and, once the timer reaches zero, the level will be changed. I hadn't ever attempted this before, but I really liked how it was implemented, and decided that I would most likely do similar in future projects.