Slave to the buttery smooth
Looking back through our gameplay tasks on Velocity 2X, it’s clear that we spent around 10% of the time implementing features, and about 90% of the time refining them. This is no more apparent than in the way we obsessed over the controls. In this post I will talk about the intricacies of some of the controls in Velocity 2X.
Jumping is critical for any platformer, and in Velocity 2X we wanted to give the player the ability to zip through a level without getting slowed down by irritating quirks. We therefore spent a great deal of time making sure Kai’s jump felt responsive.
For example if the player presses jump just before they land, the game will remember they pressed jump and send them straight back up into a jump as soon as they land. It’s actually possible to chain jumps together very quickly if you get the timing right.
We also make jumping easier, both by extending the collision edge on platforms and by giving a player a few frames of opportunity to jump even when they’ve begun to fall.
If we use gravity/body weight to allow the player to fall towards the ground, the velocity increases over time. You begin by falling slowly and speed picks up as you travel downwards. In Velocity 2X we wanted the player to have a constant velocity when falling instead. This was to ensure that a player can solve puzzles by using a sense of rhythm to destroy an array of switches as they fall down.
Sometimes Kai will come across a very low ceiling that she needs to slide under. To avoid players having to think about learning a new control for duck-sliding, we came up with a contextual physics-based solution so that Kai always knows when to jump or duck-slide.
We use 6 collision circles in front of Kai all the time, and when both the top and bottom circle sets are colliding, but the middle ones are not, we know that the player should duck-slide when they press the jump button, instead of jumping.
Sprint and Teledash
It’s possible (and great fun!) to teledash up & down to different platforms when running or sprinting. This took *ages* to get right using the sticks!
Imagine that you are sprinting right and want to teledash up whilst sprinting. You bring out the cursor and move the left stick upwards to teledash up. But wait, if your left stick is pointing upward, it is not sending any input towards the right, so Kai stops sprinting. This isn’t a problem with the directional buttons because you can just hold RIGHT and roll your thumb to tap UP. No problem. You can’t hold RIGHT and simply tap UP with a stick though, and having to hold DIAGONAL-UP-RIGHT just feels totally weird and wrong. Headache.
After many failed attempts to keep Kai running whilst teledashing up and down, we finally settled on support for auto-sprinting for a few frames when the teledash cursor is activated. There are specific areas in the game where you can practice teledashing and sprinting skills (like the corridors below), so give it a try when you get your hands on the game.
Quarp Jet and Camera
In Velocity Ultra the camera was locked to the Quarp Jet, meaning the camera was always at the same position in the X axis as the Quarp Jet. This gave Velocity Ultra’s Quarp Jet movement a very stiff and jerky feel. In Velocity 2X the camera isn’t locked to the Quarp Jet but actually follows the Quarp Jet with drag applied. The result is smoother movement of the camera as it follows the Quarp Jet and a much more fluid experience.
Quarp Jet and Teleport Cursor
In Velocity Ultra the teleport cursor travelled at a uniform speed at all times. We had to pick a speed that was slow enough to make precise movements, which meant that just trying to cover ground across large areas of terrain was frustratingly slow. In Velocity 2X, we’ve changed it so that the cursor moves at twice the pace over terrain as it does in open space. A very simple design change that’s had a huge impact on the enjoyment of the game.
These are just a few things we have done to make Velocity 2X a great experience. We sincerely hope it will be loved by its players.
Check out some of the features discussed in the trailer below: