Purpose of the Game
I developed this 2D pixel platformer using Unity. Through this project I got a taste of how the many complex features of modern videogames work, while experimenting with object-oriented programming.
Technical Features and Programming Insights
Player Movement
I aimed to program a highly responsive player movement system, allowing smooth transitions between walking, jumping and crouching. Multiple layers of physics calculations ensure the penguin reacts naturally to terrain and obstacles.
Responsive jump
The longer the jump button is held during a jump, the higher the player jumps. A buffer system means that if the button is pressed just before landing, the jump still fires. In the air, the player also falls faster while holding the down arrow.
Wall Correction
To make the movement more natural and fair, I added a system that carries the player over a ledge when it was just about to clear it but clipped the wall.
Corner Correction
The player is nudged to the side when hitting a corner, allowing it to continue the jump.
Ground Saver
The player can still jump just after leaving a ledge, keeping the movement natural and making sure a jump registers even if the penguin is pixels off the platform.
Advanced movement
The game also has advanced movement mechanics for a higher difficulty ceiling.
Parallax Background
A multi-layered parallax background which adds depth to the game environment, with each layer moving at different rates.
Boss Behavioral Movement
I used Opsive Behavior Designer to create an advanced boss enemy with an attack pattern involving several movements, and with varying phases depending on its health and other variables.
A* Pathfinding
A* pathfinding is implemented to give enemies the ability to navigate the level intelligently, finding the shortest path to the player while avoiding obstacles.
Enemies & Damage System
The enemies are designed with unique attack patterns, and a damage system built on hurt and attack boxes lets the player attack enemies and take damage from them. Certain player moves also grant invincibility frames during which the player cannot be hurt.
Level Select
The level select menu allows players to choose from different levels, each being unlocked through a certain progression.
Some Game Mechanics
The game features a set of unique mechanics, each changing how a level plays. Many are still under development.
Lighting
Using 2D lighting to create dark levels that are harder to navigate.
Moving Platform
A platform that moves along its rails, and off them.
Object bounce
A grabbable item that enables complex movement.
Tyrolean
A zip line that lets the player move quickly from one point to another.