Jolt (2023)

Jolt is an arcade skydiving game where the player must do their best to reach the end.

(The video here will spoil both endings to the game. If you want to experience both endings for yourself, you can play Jolt in your browser, just click the link “Jolt Itch”)

My Role: Lead Programmer + Designer
Engine: Construct 3
Team Size: 5
Play: Jolt Itch

Jolt throws players over the edge and gives them control of a plummeting person. Using WASD, the player can steer into or away from birds. As the player falls and dodges birds, the sky changes colour, eventually reaching the end where it is revealed that the character has been dreaming. If instead, the player aims for the birds, colliding with enough of them will grant the ending where the character wakes from their dream.

Developoment

Summary

Jolt was made in 3 weeks as part of my ‘rapid game prototype’ class with the theme ‘all is not what it seems’. Our goal was to produce a compelling game which could be completed in such little time. The idea for the game to be taking place inside a dream came quickly from the theme and with that we latched onto the feeling of falling in a dream and the sudden awakening just before crashing, hence the name Jolt.

This game was developed mid 2023 and was my first solo dive into visual scripting. I had been introduced to Construct 3 (and visual scripting as a whole) on a previous game in this class and feeling more confident with VS than coding, I had the motivation to learn this new skill through Jolt. This would prove extremely valuable as with every following project, I would be required to use visual scripting through Unreal Engine 5 blueprints (most notably Deep Climb).

Programming

As a designer filling the shoes of a programmer for this project, my focus for the programming was to create a satisfying gameplay loop which fit the design brief. I think this is most notable in the pathing for the birds where they move in a straight line towards a random point, occasionally reaching that point and then moving to a new random point. Given my abilities at the time and the short deadline I think this solution works for the gameplay, however, if I were to revisit this game, I would spend more time creating code that moves the birds in more natural paths, potentially reacting to the player and trying to avoid them or, at least, moving across the screen in the direction they are facing.

Similarly, with more time, I think the game could benefit greatly from additional effects. Most importantly would be destruction effects when the player collides with a cloud or bird. This would help the game feel more responsive while providing greater feedback to the player. One of the goals for the clouds was to hide the birds and if the clouds could puff around the player when hit, they could take up more of the screen further obfuscating the incoming birds.

One thing I learnt from programming Jolt in Construct, was the power of having a z-layer in a 2D game. While it was a considerable amount of work learning this feature of Construct in a few short weeks, it was crucial to the core gameplay. And, once I had the concept grasped, I started to see more places it could be used to enhance the vibe. One of my favourite uses was on the player z-position, setting it behind the camera when paused and having the sprite fall in front when starting/resuming. I also quite like how in the dreaming ending, the player sprite passes through the text, going from on top to behind.

Something I learnt about designing from this game which I have applied in each project since, was the value of being able to prototype ideas myself. The ability to get rapid results and test and iterate as each thought comes has allowed me to find design ideas which I would have missed otherwise, but also rule out poor ideas before they became baked into a GDD. This occurred to me as I was programming the player movement, testing it and finding it didn’t feel right. With some experimentation, I realised that the player had too much control over the character but by increasing the momentum, the gameplay changed from reactively positioning in front of a bird to preemptively chasing them. While this likely would have been caught after an internal playtest and discussion, I was instead able to document the change in momentum and my reasoning behind it, then present a compelling argument in the next design meeting, ultimately saving precious time.

Want to know more about the development process? Anything unclear or have any feedback? Contact me!