Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
October 23, 2014
arrowPress Releases
October 23, 2014
PR Newswire
View All
View All     Submit Event





If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 
Game Feel Tips II: Speed, Gravity, Friction
by Mark Venturelli on 08/21/14 10:26:00 am   Featured Blogs

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.

 

(This is a repost from my personal blog)

Hey internet, There are many things that make me sad. I’m a sensible, empathetic man, so it’s easy to ruin my entire week with a picture of a limping dog or a story about that day when you were a little kid and your balloon went flying away forever into the endless blue sky. But if there’s anything in the world that is capable of moving me into instant tears is stiff movement in your video game.

This happens when a moving thing in your game goes from full stop to full acceleration instantly, and vice-versa. For the purposes of this article, let’s call it “Stiff Nonsense”. This can be anything that receives input from the player to calculate motion, from your camera to your character.

 

stiff01

This seems to be awfully common even in big-name titles, and I’ve heard every explanation and excuse there is. And all of them are: “but my game is special - it requires perfect precision which would be ruined by a speed curve”. Let’s smash this myth to tiny pieces right here: you don’t get a boost in movement precision with Stiff Nonsense. Actually, you can gain an increase of precision if you do it as described in this article. By doing Stiff Nonsense all you get is a game that feels like grinding your teeth with sandpaper.

 

Setup

If you are moving something with direct input from your player, please don’t try any crazy tricks. No dampening or treating it ex post facto or trying to setup a “jumping time” and then adjusting the values. This is the simplest, most effective way of moving a character or a camera:

- Apply a constant Acceleration to your Speed;

- Constantly subtract Friction from that Speed;

- Limit your Speed to a maximum value;

And that’s it. The same goes for jumping, except the acceleration and friction vectors are now vertical.

Finding the Right Values

Usually what you want is something responsive that feels “round” - that is, you just want to get rid of the terrible feel of the Stiff Nonsense, but you want to keep it very responsive and not let it “slide” too much. Sure, in games like Super Meat Boy or Binding of Isaac you would want to slide as it is an integral part of the gameplay. There is no cake recipe for this, but I can share a few quick tips.

The absolute value matters, not just the ratio: a movement with 10 acceleration and 5 friction is completely different from a movement with 100/50, or even 20/10. The higher the scale, the more “violent” the movement. Lower scale values will generally feel softer and slower.

Double or cut it by half: when trying to find the right values, avoid making tiny adjustments at your first few tries. Make huge value changes to experiment and find the boundaries of what you want. Picture it like this: if you were trying to guess a random number between 1 and 100, it would be logical to start with 50 to see if the number is higher or lower, right? And if it’s lower, then you would try 25, etc. The same logic applies to your game’s values.

Intervals are measured in milliseconds: a full second is forever. If your character takes 500ms to accelerate from 0 to full speed, that’s floaty as heck. It’s ok if that’s what you want, but keep in mind that we’re often talking about scales of 50-200ms in ground movement.

Too much friction/gravity will make it feel like a rubber band: as with everything else, you must have a good eye to spot it, but if you want a comparison value I usually apply around 25-30% of the acceleration as friction.

No Transition Animation Required

Unless you’re talking about a game where you slowly accelerate (Sonic, for instance), you don’t need a transition animation. In most of my games I use around 60-100ms from 0 to full speed. For 10fps 2D games, that’s a single frame. It’s 2 frames with 24fps 3D game animation, which is usually the same time that blending would take to interpolate anyway. If you’re using that kind of timing the game will actually look worse if you try to do it. Anything longer than 200ms will probably look cooler with transition animations, though.

Dash, Jump, Knockback, Impacts in general

Exception: when you want something to have impact, you must accelerate instantly. This is actually how you jump: you don’t slowly build up speed, you get a kick from your legs which give you your maximum possible force - from that point on, it’s all gravity taking you to 0 speed (the maximum point of your jump) and then to negative acceleration until you hit the ground.

 

stiff03

The same goes for deceleration. If you want it to feel like an impact, it must come to an instant stop. If your animator can put all that deceleration time in the resulting animation, squashing the object to represent the impact force as it traverses its entire body - that’s a great impact feel right there!

---

So that was it for today. I hope it was useful, keep Stiff Nonsense away from my face and I see you next week =)

 

Game Feel Tips Series

Game Feel Tips I: The Ghost Jump

Game Feel Tips II: Speed, Gravity, Friction

Game Feel Tips III: More On Smooth Movement


Related Jobs

Avalanche Studios
Avalanche Studios — New York, New York, United States
[10.22.14]

UI Programmer
Avalanche Studios
Avalanche Studios — New York, New York, United States
[10.22.14]

UI Artist/Designer
Wargaming.net
Wargaming.net — Hunt Valley, Maryland, United States
[10.22.14]

Lead UI Engineer
Wargaming.net
Wargaming.net — Chicago, Illinois, United States
[10.22.14]

Lead UI Engineer






Comments


Dustin Hendricks
profile image
I always lament over this. I had gotten complaints in reviews about having a curve in movement acceleration for one game I made. "The movement feels skatey and laggy" After the few complaints, I reduced the curve by half. "It's better, but it still feels sticky" After that I got rid of the curve all together, and people finally liked the controls.

Mark Venturelli
profile image
You probably did not tune it right. Maybe I should do a "Part 2" article with some interactive examples?

Mark Verrey
profile image
I'd be curious to see the movement curves of the Mega Man games. I always had the impression that they were what he would call "stiff," and that's what I love about them. But maybe they're just really fast transitions. I find Mario's transitions to be maddeningly slow in the harder levels. It seems to require just a bit more precision than the game's controls offer.

Phil Maxey
profile image
During the golden age of platform games (90s) you could always feel when a game felt right, there was no delay in an action and you felt like you had complete control over the character. I think that's part of what made Sonic so great, there was an immediacy about the game.


none
 
Comment: