The following is a study I did into three different types of movement, sourcing references and influences, culminating in a prototype mechanic for each different type of movement.
I was playing a match of DOTA2 and the hero I was playing, Timbersaw, moves around quickly using his Timber Chain ability by hooking onto a tree and pulling himself to it. The Timber Chain ability is restricted in a few ways, such as a limited cast range, and most importantly, it will only pull Timbersaw if the ability hits a tree.
I thought this would be a fun mechanic to implement inside a small prototype, so that is what I set out to do. I also looked into similar mechanics in other games, to draw influence in how I implemented and iterated the hookshot mechanic in my prototype.
Hookshot - References
SUPER METROID - Grappling Beam
The Grappling Beam in Super Metroid can be used to carry Samus across gaps that she is unable to jump across. Players are able to shoot the beam towards specially marked blocks in the environment in order to swing themselves across gaps. The Grappling Beam can also be used to damage enemies, and can even be used to quickly defeat specific enemies and bosses.
The Grappling Beam acts in a similar fashion to the Timber Chain from DOTA2, in that it can only connect to specific surfaces or objects. The main inspiration from this mechanic was the feeling of swinging in order to traverse a level, and I sought to combine this feeling with the initial mechanical inspiration.
LEGEND OF ZELDA - Hookshot/Longshot
The Hookshot in The Legend of Zelda series is a multipurpose tool given to the player. It can be shot out and used to pull Link across gaps towards objects, or it can be used on other objects, and even enemies, to pull them towards Link. The Hookshot shoots out slowly and if it doesn’t hit any object after reaching a certain distance or it collides with a surface that can't be hooked, it returns towards Link.
From the Hookshot I took the idea of limiting how far the player is able to reach with it, so that they can’t just shoot it off wildly into the distance until they hit something. The aim is to slowly get the player used to the distance that they can reach, so that they can eventually chain hooks together to fly around the stage at a great speed.
CRUMBLE - Tongue Grab
The Tongue Grab in Crumble is a tool that the player can use in order to fling themselves over great distances and prevent themselves from falling off the stage and losing. The Tongue Grab can stick to any surface, even moving and falling surfaces, and the player is able to use their momentum in order to swing or fling themselves forward once they release the Tongue Grab.
I enjoyed the feeling that the Tongue Grab gives the player of swinging and flinging themselves at higher speeds in a physics based world, and sought to implement this feeling in the prototype. This is opposed to the Hookshot and Grappling Beam, which are more animation based.
Hookshot - Prototype
I quickly sketched some ideas of how I wanted to implement a hookshot mechanic. After this quick design, I jumped into Unity to rapidly prototype the hookshot mechanic.
I constructed the prototype in Unity using the simple sprites available within the program. I used a circle for the player, a triangle for the hook, and I utilised a line renderer for the rope that connects the two.
After setting that up, I wrote a small script to control the hook, to make it rotate towards the mouse position around the player, and to shoot outwards once the player presses the mouse button.
To get the player moving around the screen, I created a small environment using Unity’s tilemap system and a simple square sprite. I also created collectibles that the player could get by colliding with them so that they would have a purpose for moving around the environment.
After playing around, testing, and getting feedback, I wanted to iterate on the mechanic. In the following iterations, I added gravity as an additional force that acts upon the player. Initially, the player would always be affected by gravity, but this made the player feel quite heavy. In the following iterations, while the hookshot was embedded, the gravity was turned down, and then finally settled on the player being unaffected by gravity in the final iteration. This change made the player’s movement feel much nicer, as they weren’t having to struggle in order to swing themselves about.
Other iterations that occurred include changing the distance that the player was able to reach with the hookshot, and the speed at which the hookshot both shot out and returned.
After some feedback, I also rapidly prototyped and iterated upon two additional types of movement based on other existing mechanics in games, taking inspiration and concepts from multiple sources. The two mechanics were a pull and release, and a booster.
Pull and Release - References
WHAT THE GOLF? - Golf?
The core mechanic in What The Golf? is a pull and release system that moves whatever object the player controls in each level. In each case, the player is shown the direction they will go, as well as the force at which they will travel visually on the course with an arrow that fills in based on the force behind the shot.
The visual indicator of direction and power is my main takeaway from this mechanic. Being able to have a visual representation of both the direction and power of their shot is something I sought to implement in my prototype of the pull and release movement system.
ANGRY BIRDS - Slingshot
The Slingshot in Angry Birds is used by the player to fling the birds towards the pigs and their fortifications. The player pulls the Slingshot backwards to determine how strong the shot will be, and releases to fling the bird through the sling towards the direction opposite to where they pulled the Slingshot back to.
I enjoyed the feeling of pulling back the slingshot that is present in Angry Birds. This action helps the player feel that they are putting this force into the action by forcing them to interact directly with the slingshot in order to start winding up the shot.
GOLF WITH YOUR FRIENDS - Golf
The player is able to charge up a shot, and release to shoot their ball forward. The player is able to determine the direction they want to shoot the ball, as well as the amount of power they want to put into the shot. The power is shown by a meter of the bottom right, as well as on the course as a bar in front of the player’s ball. The ball also must come to a complete stop before the player is able to begin another shot.
Similarly to What The Golf?, the visual indication of direction and power are an important feature that I sought to implement. While the UI indicator is an interesting feature, I much prefer the indicator directly on top of the player, as it is more closely connected with their actions.
Pull and Release - Prototype
I sketched some ideas of how I wanted the pull and release mechanic to function, before heading into Unity to rapidly prototype the mechanic.
The construction of this mechanic closely followed that of the hookshot, and even utilised the same environment and collectibles.
I created the player by utilising a triangle sprite to indicate the direction of the shot to the player, and used a line renderer to indicate the power.
I created a script to control the activation of a pull when the player clicks on the sprite, which would show directional and power indicators to the player. The line renderer had a maximum length to indicate to the player the maximum amount of power that they could put into a shot.
In the first iteration of the mechanic, the ball that the player controls didn’t bounce when it came into contact with a wall. This felt quite bad as a player, and feedback was received about feeling like the player got stuck against the walls. In following iterations, the ball was made to bounce off of walls, and this prevented the players from feeling like they would get stuck.
Multiple iterations also tweaked the maximum force that could be applied to the ball, so that the players could feel like they were able to go an appropriate distance.
Booster - References
Asteroids - Booster
Asteroids was the main influence when looking at creating a booster style movement system. The player is able to rotate themselves, and can boost forwards. After the player stops the boost, they will remain moving but will start to lose speed slowly.
The entire mechanic of movement, from rotating the player in order to control direction, to only being able to boost forward, was the driving inspiration for my prototype mechanic.
CAVE STORY - Booster v0.8 and Booster v2.0
The Boosters in Cave Story are acquired in order to help the player traverse primarily vertical sections of the game. The Booster v0.8 allows the player to boost upwards, whereas the Booster v2.0 allows the player to boost in 4 directions (up, down, left, and right). Both Boosters have a time limit, or fuel, that determines how much they can be used, and will recharge completely when the player next stands on the ground.
The limit on how much the player is able to use the boosters is a concept that I liked and eventually borrowed in the later iterations of the booster mechanic. On top of this, unlike in Cave Story, I wanted to visually display to the player how much fuel they have.
OUTER WILDS - Spaceship
The Spaceship in Outer Wilds in the player’s method of travelling between planets in the game. While being operated, the Spaceship can use the ship’s boosters in 4 directions (up, down, left, right, forward, and backward). Multiple directions can be applied at the same time to allow the player to move in a diagonal direction. Once boosters have stopped being applied, the spaceship will continue in the same direction, and will be affected by nearby planet’s gravity. The power and direction of the boost is shown to the player in the cockpit via a meter that indicates the amount of power being applied in each direction at all times.
Releasing a boost and still continuing to move is a concept that I enjoy, and the feeling of momentum from the Outer Wilds is something I sought to implement in my prototype.
Booster - Prototype
After doing a sketch of the basic concept of the mechanic, I moved to Unity in order to rapidly prototype the mechanic.
The construction of this mechanic once again followed closely with the hookshot mechanic.
A triangle was utilized to show the direction that the player was currently facing, and I used a particle system for when the player was using their boost.
I created a script so that the player could control their rotation with the horizontal input axis, and could start a boost using the spacebar.
The initial implementation of the booster mechanic had the player control it via the keyboard. This felt out of place with two other movement mechanics, which were both controlled with a mouse. In addition to this, the player’s at times felt unsure about what direction that they were facing. The first big iteration sought to remedy this by changing the controls to a mouse control, similar to the hookshot prototype. The player would rotate to face the mouse position, and left clicking would apply the booster. This iteration felt much better to move around with, and felt more cohesive and in line with the other prototype mechanics.
Another design iteration added a fuel system, with which I added a circle around the player that acted as a radial indicator for the fuel. The fuel recharged after a short delay once the booster had stopped being used.