ULTRA SPRING
Spring based runner at blistering speeds
Unity
Platformer / Runner
40 hours
Solo Developer (minus sound assets)
Ultraspring is high paced runner / platformer where you time your jumps to gain ridiculous speeds, weaving your way through obstacles to get the best possible times. Ultraspring is all about getting and maintaining as much momentum as you can while trying not to crash!
Design and iterate on a single mechanic to make the player feel as fast as possible, while still lending a feeling of control to encourage speedrunning.
Trailer
Project Descrption
Initially I created a mechanic for a true platformer with a lot of rough edges. For the final project I took the idea and reworked it into a into a small polished prototype that instead focused on fast gameplay and tons of momentum. I'm proud of this project because of the increase in player engagement and the production being very time efficient.
My Role
As a solo developer, I was responsible for everything in the game. Most importantly, the planning and time management. The prototyping stage was done in about 20 hours. After that I restarted, reimagining the project from scratch and programmed the game / made the art and effects in another 20 hours.
Starting point
The very first iteration was intended to be a simple platformer, formed around the core idea of charging and aiming a individual jumps. Reception to this initial iteration was simply poor. Timing your jump distance was unintuitive and players felt frustrated when they missed a few jumps in a row. There was very little taking advantage of how difficult the game accidentally became. For example, there was no intrinsic reward for interacting with the mechanic skillfully.
Challenges
Iterations
I made the decision to fully pivot the idea after noticing some players using the mechanic to launch themselves at the maximum afforded velocity. I decided to fully lean into that excessive velocity and centre the entire mechanic around gaining as much velocity from the jump mechanic as possible.
After I had settled on the design pillars and core mechanic, I blocked out a level in Unity that focused on traversing great distances linearly. After blocking out the level I implemented the core mechanic of jumping and boosting.
At this point I subjected the prototype to playtesting. Feedback showed some positive interaction with the jumping mechanic, but players struggled universally with controlling the character and traversing sloped surfaces. As a result, players didn't experience the sense of growing momentum and speed that I had hoped for.
I then brainstormed solutions to these issues and decided to implement the following changes:
Distribute the controls more evenly across the controller and allow the player to manoeuvre with both sticks
Implement a UI that more clearly indicates speed and boost and the difference between the two
Increase gravity and overall "springiness"
Added a timer to encourage speedrunning
Reception to this iteration was much better. Players were able to grasp the control schemes without any guidance and reported that the game felt fast and exciting. I was especially encouraged by seeing some players play the level repeatedly to get a faster time.
After implementing these changes I playtested the game again and found that the controls were much more intuitive and players were able to traverse the level with ease. I now felt happy that the core mechanic was satisfying and began adding polish:
post-mortem
Looking back I think it's a decent game. More importantly I managed to turn a boring concept into a fun prototype very quickly. I believe this was likely due to restricting myself to a tight schedule and only spending a predetermined amount of time on it. The whole process was loads of fun and people seemed to earnestly enjoy the end product.
Game Design Process
My game design process for Ultra Spring was focused on speed and rapid prototyping. You can see my design process through the embed on the left. The game design document can be read here: ULTRASPRING GDD