Pumpkin Boy
Pumpkin Boy is a single-player top-down 3D puzzle game that puts you in the shoes of a young boy kidnapped by a witch and cursed with a detached head. The player can independently control the body and head to solve the puzzles and escape the rooms. Moreover, they must learn how to roll or throw their head over obstacles and gaps, push boxes, and activate triggers to open gates.
Responsibilities
During this project, I enhanced the user experience and visual feel through programmatically developed solutions.
Easing
The game's biggest part I have worked on was the easing system. Easing was a quick way to make the transformational animations in the game world more appealing and dynamic. For example opening doors and moving platforms, rotating candy, giving candy feedback in the UI and controlling the fading of the scenes.
​
For easing, we used the easing library that I started to develop in my free time. The library usage is very straightforward your MonoBehaviour component just inherits from the easing base class and overrides the method interface to achieve the desired behaviour. It was easy to implement but each transformation needed its unique implementation which added up to a negligible amount of scripts.
​
I adapted the implementation to the teams' needs and implemented a clear interface for the designers to use on any object. The functionality was added as needed and removed if not used. The transforms were executed by the event system that another teammate made. The system allowed easier implementation of additional features.
User Interface
A quick way to make this short project feel more complete was to implement a user interface. For example how many candies the player collected and to provide a menu for basic features such as settings and quitting the game.
​
For Menu and UI, I learned how to work with layouts and made them responsive. The composition was straightforward due to the lack of complex UI. As mentioned, I used the same easing system as for other objects with adjustments for UI elements.
Scene Transitions
Another way to improve the game feel was nice scene transitions that are not just simple black fades. This became even more important due to the cinematics.
​
For the scene transitions, I implemented a shader that allows fading any image. It works the same as any other basic fade with easing just instead of a black image or animation I used material with an image.