“It’s everybody’s dream to be a kid in a candy factory. In cold candy you can make your dreams come true! Release your spirit animal to help solve puzzles and get candy!”
This project was developed during my first year at BUas by a team of 12 programmers, designers and artist over a period of 8 weeks (May 2021 – July 2021) and was my first introduction to the Unreal Engine and creating game in a team of 12 people in Unreal. This game ended up being released on Itch.io and showcased during the BUas Industry Showcase of 2021.
One of my main contributions was designing and implementing two different types of interactive puzzle blocks. The normal block and the bouncy block.
The normal block served as a foundational class for other block types. It includes all the core interaction functionality, such as allowing players to pick up and move the block. Once that base system was in place, I focused on creating the Bouncy Block.
The Bouncy Block went through two major iterations in how it handled bouncing mechanics. The first version was inspired by the Aerial Faith Plates from Portal 2. It used a spline to control the trajectory of the player’s bounce, allowing designers to control where the player would land. However, we scrapped this approach because we wanted the bouncing to feel more dynamic, allowing the player to bounce freely off the block, with a simple upwards push. The result of this can be seen on the bottom of this section on the left gif.
Next, I experimented with using line casts to detect collision on the top and sides of the block. This method checked whether the player was hitting the corners or center. The result of this approach can be seen on the bottom of this section on the middle gif. While this approach worked for initial detection, it was unreliable for knowing when the player had exited the collision zone. This resulted in the player receiving continuous upward force until leaving the line cast, which was buggy. Ultimately, I replaced the line casts with box colliders, which proved to be the most reliable solution. This allowed for consistent collision detection and a smooth bounce experience.
Initially, when the artist finished the block mesh and added the bone, the team’s animator didn’t have time to create a bouncy animation. To take the load off their hands, I created a simple animation in code by manipulating the mesh’s morph target, adding a satisfying squash and stretch effect when the block was used.
The final result can be seen down here on the gif on the right.
Aroura Borealis Beam
To show the connection the spirit has witht the player while picking up objects, I created a ‘interaction beam’. This beam is created using the niagara system in UE5, and has gone through a few interations.
The first iteration, was a test to see if what I wanted to create was possible, that the particle could have two connection points, being the player and the object. This test showed the beam as a lightning beam.
From there, the team had decided the beam should be a aroura borealis. So the next iteration was born, being a shader effect that shows a aurora borealis that could be placed in the scene. This iteration of the beam was also repurpsed to be in the backdrop of the levels.
The final iteration of the beam combined the first and second iteration, which gave the artist the beam from the second iteration, together with a lightning effect and multiple lines, that jiggle around. If the player decided to throw the object it is holding, the beam while jiggle more, creating a intensire effect. This final version can be seen in the final product which can be found on itch (see the link on the bottem of this page).