“Game Feel”: The Impression Of Weight

Today I’m focusing on 1 particular impression conveyed in most games: weight. Not as simple to convey as real life.

Vincent Taylor
2 min readNov 30, 2021
Minimal knee bend, minimal vertical body movement = low weight

What is weight?

How heavy something is. Sure.

The force generated by the gravitational attraction of the earth on an object. Ok.

How can weight be conveyed inside a video game?

Unlike reality, to convey weight (or anything else) in a game, you need to individually consider and create each element of the thing you want to convey. Because a digital object doesn’t actually weigh anything. We need to simulate its weight.

For a character, that could include some of the following:

  • How fast the character can move horizontally.
  • How high the character can jump.
  • The upwards speed of the jump.
  • The downwards speed of the jump.
  • The effect on the character when they land a jump.
  • The effect on the surroundings when they land a jump.
  • Audio effects.
  • Visual effects.
  • Animation.

If you are working inside a game engine like Unity, a lot of that is already created for you, at least with default settings.

A Unity Implementation:

Here’s an example of giving the impression of weight using a 2D platformer environment in Unity.

Here we see a simple 2D character with the ability to jump and move.

But this character is actually a 2kg block of gold painted white. Doesn’t look like it, right?

There is no impression of the weight of this object, since it has no effect on its environment, and doesn’t move like a heavy object should.

Let’s fix that!

So what did I do?

  • Lowered jump velocity to about 80%.
  • Increased gravity to about 130%.
  • Slowed horizontal movement.
  • Added small continuous particle effect when “walking”.
  • Added screen shake on landing.
  • Added impact particle effect on landing.

Six not-so-difficult things, and I was able to create a pretty heavy-looking object.

I could also add some mesh deformation of the character body (square) to condense or stretch when jumping and moving, but that is a bit trickier to implement.

--

--

Vincent Taylor

Unity game developer / C# Programmer / Gamer. Australian (Tasmanian) indie games developer for 10+ years. Currently looking for games industry employment.