The past few weeks/month have been completely crazy, but yay I just found some time to write a proper devlog update. I’ll sum up some of the changes that I’ve made to PK.
The new lightning bar (replacing the timer) has made it into a few screenshots already, but I haven’t mentioned it until now. I was perfectly content with the old timer that displayed seconds. When I asked my friend for feedback his first suggestion was to turn it into a bar (duh). This is the third and hopefully the last iteration of the time limit system.
The first iteration gave players one more completion star when they beat a level under a certain alloted time. Stars counted towards unlocking the next batch of levels, so eventually you would have to complete all the levels in record time. This was confusing, non-intuitive, and players often had to click the restart button after finishing a level and noticing that they were too slow. I don’t have a picture of this iteration to show, which is for the best (gosh it was bad).
The second iteration introduced the lightning mechanic (you get electrocuted if you go over the alloted time). No more confusion for the player, and restarts are instant and seamless. Plus it fits very well with the overall theme of dying all the time in amusing ways.
The last iteration, which I’m vey satisfied with, brought this lovely dithered bar to the mix. Now the player knows exactly how much time is alloted for the level, and how much time is left. Much better than the guesstimation from the previous iteration. Also I need to stop saying “iteration”.
There are two interesting concepts within the bar:
I think I was inspired by the early Sonic games and that amazing feeling of soaring in the air that the jump pads provide. To me a Sonic level feels like a combination of loops (speeeeed) and jump pads (sooooaaar). Granted, I don’t recall anything beside the Green Hill Zone.
(Frame stuttering is a result of screen recording gone wrong, the game runs smoothly in normal conditions)
Fun fact: the player dies from “falling” when he hasn’t touched the ground in a certain amount of time. Because jump pads made the player soar for longer than usual, that time interval had to be lengthened for jump pads. This led to the inclusion of yet another flag in the Player class (Player.isSoaring). I’ll have to come up with a solution to all those flags littering the player class. I’ll move them to a PlayerState class which will contain nothing but flags. It’s maybe not the ideal solution, but at least it’ll separate the player logic from the player state.
Next on the Peasant Knight Devlog and How to Turn a Two Week Project into a Year-Long One show: