Demo slightly unrelated, mostly tinkering around with Raycasting as a study on collision and to provoke more thought on this topic of movement.

Let's talk about: Design, and movement in games.

Just to preface, what I'm writing is more of a stream-of-consciousness than an explanation, or teaching. Please take my words as musings, and not gospel. 

Movement is far more intricate than button pressing, and it's way more significant than that. It's like the heartbeat of most games, a constant companion throughout gameplay. If it's a bit unintuitive or unreactive, players might start questioning why they're even playing. It can overshadow intricate stories, combat systems, and visuals. Why? Because players won't play a game that they can't enjoy playing.

With all this in mind, lets take a deeper look at techniques that many games employ to address this ever-important movement mechanics.

Consider "Super Meat Boy", an extremely popular 2010s platformer. The game is based around moving fast and for long periods of time. The jump has a floaty feeling, but without feeling languid or weak! If you've ever tinkered around in Unity, you may be familiar with this floaty feeling when using Unity's RigidBody2D component. However, it's almost always accompanied by the feeling of sluggishness. What did the developers of Super Meat Boy do differently? They paired the quick movement speed with  variable jump height,  a mechanic in which the player jumps higher the longer they have the jump key held. Conversely, the sooner the player released it, the lower they jump. They implemented this by reducing the player's upwards movement to half as soon as they release the jump button. This means that after releasing space, the user begins reaching downward momentum much sooner. A much more reactive and sensitive take on a simple jump. 

Moving out of the scope of the arc and speed of jumps, we can look at other factors.

Game devs have come up with a lot of interesting mechanics to make movement feel more fluid and natural. The more natural a movement controller feels, the less it disincentivizes the player from playing.

A lot of these tools are actually as simple as forgiving common human error. In many games, it's common for a player trying to chain jumps to hit the jump button before their character detects collision with the ground. In a basic movement controller, the player would not be allowed to jump. This would lead an input at what the player felt to be the right time, with no reaction from the game. How unfun! Many games address this by buffering the jump; allowing the player's jump input to go through if they collided with the ground "soon enough" after the input. This then plays the jump input AFTER the player finally lands, effectively erasing the human error. This is called jump buffering, and is common in most platformers.

Another type of forgiveness is human error is termed "coyote timing". Coyote timing is the amount of time that a player can have been off a ledge before they are no longer allowed to jump. To clarify, if a player mistimes their jump upon reaching the edge of a platform, they're still allowed to jump for a short period of time after having lost collision with the platform, as opposed to falling immediately. This can be seen easily in hit platformer "Celeste", which is known for it's fluid and dynamic movement system.

But what if.. we step out of the scope of movement mechanics and movement controllers? What do I mean by this?

Think back to some popular 2D platformer based games, such as Dead Cells or Hollow Knight. I'll actually post some pictures for you, and maybe you can gather what I mean from them.


Four years on, Dead Cells remains a roguelike delight | Rock Paper Shotgun

Dead Cells

Hollow Knight Review - IGN

Hollow Knight

What can we see, specifically in the backgrounds, that could contribute to movement? A parallax! The background are on different layers that move at different speeds as the character moves. This creates a parallax which, without the player realizing, causes a sense of movement. Moving faster than you felt you were, and with more happening. How interesting! An example of how design influences player experience of movement

Another semi-technical example of this is the ability to choose between sprinting and walking, or being able to voluntarily augment your speed in some way. By default, many players will move through games (especially platformers that incentivize speed) at max speed. With that logic, it's not really necessary to include a speed that's NOT max speed, aka walking. Yet, almost every platformer includes this functionality of multiple movement speeds given player input or interaction. Why? The illusion of choice! A player feels like they a) have to do something for their character to move at a higher speed b) are moving faster the necessary c) are choosing to operate their character this speed. Another design implementation that influences player experience. 

Another sub-idea that ties into this is the idea of collectable / gainable speed boosts. For example, taking a jump and performing a trick mid-air in any Mario Kart game will reward the player with a speed boost. In Dead Cells, many actions such as critically striking an enemy or not taking damage for a long period of time can lead to higher movement speed. Allowing the player to augment their own movement by achieving tasks or giving inputs gives another layer of depth to movement that is it's own form of entertainment for the player.

If I'm honest,  I really haven't even begun to scratch the surface of what really goes into linking design and movement, but just thinking about these basics concepts and how complex they can get is extremely interesting. The cool thing about typing out a stream of consciousness in one go (minus grammar/punctuation fixes) is that I can end whenever I want.


Good night!

Leave a comment

Log in with itch.io to leave a comment.