This game was created for a assignment at University, where we were tasked with creating a character controller for a 2D game, similar to the ones seen in popular 2D platformer titles such as Celeste and Hollow knight. This included trying to re-create some of the common systems seen inside of classic 2D games to make the game fun and intuitive. These systems take the form of forgiveness mechanics which aims to make the character your controlling feel more responsive and helps balance out the game to allow for some error when playing so the game does not need to be played perfectly to create a more overall fun experience.
A lot of these forgiveness mechanics are not very noticeable when playing the game, but when a game lacks them it can be very noticeable and will often result in a worse gameplay experience. The mechanics I implemented are 'Coyote Jump' which is one of the more simple systems, there is also a dynamic jump system integration, where I attempted to create a smooth jump that switches between three different states, varying from the initial jump, the apex, and then the fall. I managed to create an implementation of this with a form of state machine. I also added other mechanics such as a input buffer, variable jump height, collider pinching, and a clamped fall speed. These are just a small number of different forgiveness mechanics that can be implemented within a game, but each of them have varying complexities, and when done right can be combined to create a more intuitive experience.
To help display the different systems working together, I created a simple platformer that can be played that makes use of most of the systems I implemented into the player controller. The game itself follows a simple game loop, where the player has to climb to the top of the map to escape the rising liquid. The game itself takes place inside of a juice carton, where the player plays as a juice droplet trying to escape the rising juice, and get outside of the carton. The assets for the player, and it's animations were made by me, and alongside that the tilemap was also something I created to help match the game aesthetic. That was my first attempt at making a tilemap so the design is pretty simple but it does match the general theme direction I wanted for the game.
Other than the sound effects all of the assets used inside of the game were made by myself inside of Aseperite. The art itself is based around a juice carton, so all of the assets branch off of this concept including the character sprite which is a juice droplet. One thing which was nice to get working was the animation of the juice droplet splashing when it hits the floor, although it does get buggy at times with the collision registering.