This week, I started prototyping some platforming mechanics in Unity. By Wednesday I had this:
Please excuse the placeholder art.
At this point, my code was an inefficient, buggy, un-commented mess. The next couple days were spent refactoring my code to make it more efficient, easier to read, and less buggy. The mechanics worked pretty well, but something was still missing. This was when I implemented one of those kinds of features that nobody notices unless it’s not there. It’s one of the most important features of a platformer, besides the actual jumping of course. Can you tell what was added?
Take a closer look:
Slowed down, it looks like I did something wrong here. How can the player jump if he’s not standing on anything to jump off? It looks like a mistake, but it’s actually a design decision that almost every platformer incorporates. I’m not sure where I learned this, but it’s called “Coyote Time”. This mechanic got its name from the old Loony Tunes trope where Wile E. Coyote will accidentally run off a cliff, but not actually fall until he realizes he’s no longer on the ground.
If you’ve played a lot of platforming games, I’m sure you’ve experienced bad or non-existent Coyote Time. It’s that infuriating experience of: “Why didn’t my character jump?! I pressed the button!” You see, the reason Coyote Time is a necessity in platforming games is due to the player’s reaction time and a controller’s input delay. Due to the way the human body works, there will always be a delay between a player seeing something on a screen and reacting to it. Likewise, due to the way computers work, there will be another delay between the player inputting a button press and the game responding to it. These delays can sometimes result in the player feeling like the game isn't fair or isn't responding to their actions appropriately. Therefore, game designers will often bend the rules of physics in subtle ways like this in order to make a game "feel" better.
There are tons of hidden mechanics that the player is not meant to notice, yet still have a great effect on the way a game feels. In many shooters, the player's last couple bullets will actually deal more damage than the others in the magazine, while the player's last few hit points actually take longer to drain. This is all done in order to solicit a certain reaction from the player. Sometimes, the reaction is as simple as feeling that any mistake is the player's fault, and not that of the game. Other times, it is to make the player feel like he just barely squeezed by with that last bit of health or ammo. It's all up to the game designer how these mechanics are implemented, if at all.
Anyway, that was a quick update to let you know what I've been up to this week, and what has been on my mind while coding this platforming prototype. There is still some tweaking I want to do with the code, and I'm not sure what will come from this prototype, if anything. I have a few ideas, but I'll keep them to myself a while longer until I have something to show. In the mean time, if you can think of any cool hidden mechanics that subtly change game feel, leave a comment! Also, if you have any ideas for me to write about, let me know! And lastly, to stay up to date with my blog and any future developments, be sure to subscribe to the newsletter or RSS feed! Thanks!