Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm working on a 2D game engine using C, SDL and OpenGL. Have worked out basic graphics, physics, and broad phase collision detection. I am trying to realistically simulate "pushing" objects around. I have gotten halfway there, but it doesn't feel right. I've implemented the impulse calculation found here to change linear and angular velocity. I want the blocks to have weight to them, and to slow the player down.

Consider this video. The leftmost block is player controlled. This is how my simulation feels right now.

Is there a relevant mathematical formula for this?

share|improve this question
up vote 2 down vote accepted

Looks perfectly fine to me (ignoring some jumping back/forth). To actually get the feeling of weight impulse isn't enough. You'll have to implement friction to slow things down based on their weight. Without friction you won't feel weight once an object is in motion (i.e. after applying an impulse).

share|improve this answer
+1 for friction – Ḟḹáḿíṅḡ Ⱬỏḿƀíé Jul 2 '15 at 12:12

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.