Swingbot is a 2.5D platformer focused around one movement mechanic, the swing. Take control of a small robot with a powerful laser rope and swing yourself through an abandoned laboratory.
Role – Scripter, Game Designer
Engine – UE4
Duration – 2 Weeks
Team Size – 8
As a Game Desinger and Scripter I worked to make sure that the swinging worked smoothly and allowed the player to flow through the level.
To ensure that the player never lost their momentum unfairly I worked on two different problems with the swing:
- What happens when the player hooks against their velocity?
- What happens when the player hits the ground while swinging?
Hooking Against Velocity
As shown in Example 1 the player loses all momentum when hooking against the direction they’re going.
This is solved by having the script check if the player is in an acceptable position before attaching the swing. This creates a more natural feel to the mechanic. The result can be seen in Example 2 and is further explained below.
When the player clicks to attach themselves somewhere the script saves that position. The radius is then taken. Thereafter the script continually checks if the player is about to exceed the radius. When this happens the swing is attached and the player motion continues as the swing dictates.
Keeping Off The Ground
It is paramount that the player experiences as little stutter as possible while moving through the level. To achieve this the game makes sure to hoist the player up the laser rope when they are about to hit the ground.
I do this by having shooting a line trace that begins at the bottom of the player character and extends towards the direction they are swinging. When the trace hits the ground it starts to hoist the player up along the rope.