Key Learnings
Developed as a learning project to get familiar with some of Unity's 2D features.
State Design Pattern for AI
Implemented the state design pattern for the end boss fight and its different phases. Have since found this is by far my most preferred method for programming basic enemy AI and even sometimes player states.
Physics Raycasting
Great way to calculate whether a player is grounded or not.
Camera Handling and Cinemachine
While my first Unity game used a simple static camera, this game features a lot more movement and a small cutscene before the boss fight. Implemented blending between multiple virtual cameras. Cinemachine is now my go-to way to handle cameras in Unity.
Unity 2D
Used tilemaps, sprite animations along with Vector2s and the Unity 2D view to get familiar with the Unity 2D suite.