Technologies: Unity, 3D Puzzle-Platformer, Blender, Photoshop
The player, in control of a magical cat, will be facing challenges to escape a house he sadly got trapped into using his extraordinary tail. The tail, morphing into different shapes, will help to solve different puzzles while sometimes being a constraint.
I wanted to achieve a cartoonish art style so I made my own assets taking inspiration from popular games such as "It Takes Two" and "Overcooked 2". This way I managed to keep the game cohesive while also improving my 3D modelling skills.
I also wanted to use an abstract fantasy colour palette to transcribe a magical and relaxed theme.
The main mechanic will be based around the tail that can morph into different shapes to achieve different outcomes:
Puffy Tail
Active ability: The player becomes undetectable from enemies and light during a set amount of time.
Passive ability: The player is faster and is less affected by gravity, ground drag or air drag.
Overall, the puffy tail is ideal for reaching higher places while becoming undetectable from possible enemies and lighter hence can be easily pushed by wind or air currents while activated.
Strong Tail
Active ability: If the player is in range of certain objects, he can pick them up, rotate them and drop them anywhere.
Passive ability: The player is heavier and slower; the ground drag is stronger, and the player cannot easily move around through slow movement and low jump height.
Long Tail
Active ability: If in range of certain objects, the player can swing from multiple successive spots in a row until he falls down on the ground and then the active has been used up.
Passive ability: The long tail is a middle ground between the strong tail and puffy tail, the player speed, jump height and weight will be normal.
Story
I wrote and drew a short story to enhance the user's overall gaming experience. The story is set in the same world as the game and provides a rich backstory and context for the character and environment. The immersive narrative is designed to appeal to the user, helping them feel more invested in the game and the character they'll be playing with. By reading the story before playing, the user will have a deeper understanding of the world and a greater appreciation for the gameplay itself. I decided to go for a 2D story since I am not experienced enough in making 3D cutscenes and trailers and I do not have much editing skills.
Levels
Each level in the game represents a distinct area of the house, featuring unique challenges and mechanics. To progress through these levels, players must navigate various puzzles by utilizing different tail orders which are given to them. However, to reduce the potential frustration of restarting an entire level from scratch, players have the option to respawn at checkpoints they have reached. This checkpoint system allows for a more convenient and enjoyable gameplay experience, enabling players to focus on overcoming specific obstacles without the need to replay previously completed sections.
Throughout the development process, a range of new skills were acquired, including project planning, 3D modelling, basic animation principles, soundtrack creation and utilization of various Unity functionalities such as Unity's timeline tool, audio mixer tool, animation rigging tool, shader tool, and the universal render pipeline. Additionally, the implementation of a save system provided a great learning experience.
Key features that have been implemented include the core mechanic of the tail, which serves as the most crucial aspect among all the features. Additionally, the creation of the model and its animations, along with the implementation of player movement, action detection, and associated sound effects, were accomplished. The development also incorporated level design, camera movement, user interface (UI) design, audio integration, and the inclusion of cutscenes to enrich the player's experience.
I wanted to create my own model and animations, but I did not expect how difficult it was to make good natural and pleasing animations that all transit well with each other. It did not help that I was not yet comfortable with Blender's animation tools and that I barely had any experience in general with 3D animations. I managed to create my models with basic animations but after playtesting, they felt very static and not very lifelike which is why I just ended up using a model from the Unity asset store.