Platform: PC
Language: C++ / Blueprints
Tools: Unreal Engine 4
Duration: 3 Months
Completion: 2017
Team Size: 6
My main role during this project was the game mechanics for each of the characters and their interactions with the world. The main aspects of Bounceback 2 are platforming and puzzle solving and, because of this, we felt that the control and feel of each character should not only be fun but feel quite unique to each character. All of the movement for the characters is physics based so it was important that each characters speed and handling matched their visuals in terms of both size and material.
The main character is Lanos who has the ability to jump. This ability is improved with each piece of moondust collected and at the start of the game Lanos is unable to jump as he has lost all of his bounce. Lanos is average speed and since he is the character that will be used the most he is very easy to control.
The second character is Spike and he is the strong, heavy weight character with the ability to destroy walls and avoid harm from certain obstacles. Spike is much slower than Lanos and although he is still very easy to control he is much slower in changing direction. This gives him an excellent feel of weight as you are moving around the world.
The final character is Marb and he is the small, quick and nimble character who has a speed boost ability that can be used to instantly change direction. Marb is very fast but much harder to control than the other characters. He is also very small and can access areas or shortcuts that are too small for the other characters.
Aside from exploration, the only real puzzle aspects for the prototype level is quite literally a puzzle board that the player must fill in by collecting the puzzle pieces throughout the level. In a full game this component could be used to lock bonus areas or characters and the pieces could be spread across multiple levels allowing players to replay levels at different times and progress down new paths. The jump height for Lanos could also function this way meaning that after playing a few levels Lanos can now jump higher so replaying the first level could lead to some previously inaccessible areas.
One of the obstacles in the world is the split water which interacts with each character in a different way. When Lanos rolls through the water he soaks up the water causing his movement speed to reduce. Spike and Marbs speed is unaffected in water however, Marb loses all control while moving through water and will continue sliding through it. Spike is completely unaffected by water and can roll straight through. The other obstacles are sharp pencils which will kill both Lanos and Marb and again Spike is completely unaffected by these. When mixing both spilt water and sharp pencils it can prove to be a real problem for Marb who lose all control and slide into the pencils. For Lanos however, split water could make avoiding the pencils easier.
As well as the gameplay mechanics I also added some saving and loading functionality which was used for storing finish times. When the level is completed the leaderboard scene opens which loads the previous times saved and adds your time. These times are then sorted through and displayed on the chalk board. We mainly added this to give some incentive to complete the level when we took it to game republic. In a full game it would not be time dependent and the focus would be exploration and playing the game at your own pace.
The game was made using Unreal Engine 4 and my input into this project was mainly with C++ programming but I also used some Blueprints for some of my work. Some of the smaller components I added were the death cam and the camera functionality in general. It was important that the camera felt comfortable to control but also accommodated for many playstyles. If the right analog is not being used then the camera will slowly rotate automatically with the analog. This allows players that are unfamiliar or less skilled with an analog control scheme to still play the game easily.
Below is a trailer video that we created which was a hand in requirement for the project.