Life on the moon!
April 25, 2006 5:18 AM   Subscribe

Why do videogames with physics simulation always have things fall too slowly?

Looking at games like Half-Life 2, Oblivion, F.E.A.R. and so on - games with physics systems to dictate the way objects behave under gravity - I always notice that things seem to move far more slowly than they should.

In HL2 i can pick up a crate and fling it into the air, and compared to me picking up a pack of loo roll and dropping it at home (scientific tests, these!), the on-screen object falls unnaturally slowly. Considering that you can drop a metal crate, wooden box or whatever and measure its weight and how long it takes to fall in real life, surely all it would take to have things fall at closer to the right speed in a game is to plug the real numbers for objects' approximate weights and a rough figure for acceleration under gravity (minus air resistance) into the physics engine? Am I missing something, is it a conscious artistic decision (to let the player see the effects of their mayhem-causing ways better) or what?
posted by terpsichoria to Science & Nature (16 answers total) 1 user marked this as a favorite
 
Just a guess, but it may be because people find it more realistic that way. They may have tried it so that the physics was accurate and gamers thought it felt "funny" for whatever reason. You will notice that the character in HL2 also moves way faster than a normal person can run. But it seems OK, and you would be bored out of your mind if the run speed was realistic.
posted by qwip at 5:34 AM on April 25, 2006


All things fall at the same speed you know. It doesn't matter how heavy they are.
posted by ludwig_van at 5:39 AM on April 25, 2006


A big part is gameplay -- a game with everything at correct speed feels slow in many cases, because the players will move much slower, yet odd in some, because objects will fall faster. We're not seeing the game well, we're looking into a frame.

Another factor is processing speed. A large, fast moving object means more pixels change per frame, thus, that much more calculation is needed. Faster moving object increase the CPU/GPU load.

Finally, aesthetics. That's the way the designers want it to look.

All things fall at the same speed you know

In a vacuum, yes. In real air, no -- a feather falls much slower than a bowling ball, when you count the terminal airspeed caused by air resistance.
posted by eriko at 5:47 AM on April 25, 2006


The HL2 web site says this: "Physics - From pebbles to water to 2-ton trucks respond as expected, as they obey the laws of mass, friction, gravity, and buoyancy."

But apparently they lie. Or maybe slow falling is "as expected" in video games -- the Six Million Dollar Man effect adds a sense of power to every movement and, not incidentally, makes the action easier to absorb. An explosion is not a quick flash and bang, it's a bunch of impressively big heavy things flying up in the air on a cushion of big leaping flames and smoke, and the sound rolls out like thunder. Or some crap like that. I haven't played a game since Zork.

> S
> SW
> Exit
posted by pracowity at 5:54 AM on April 25, 2006


Could be the same reason that explosions and other collisions and effects in the movies seem unnaturally slow. A lot of the times things are filmed with miniatures with high-speed film, and then slowed down to give the miniatures an artificial sense of weight and mass. It's an illusion, but it works.
posted by Robot Johnny at 6:10 AM on April 25, 2006


In a vacuum, yes. In real air, no -- a feather falls much slower than a bowling ball, when you count the terminal airspeed caused by air resistance.

Of course, but the original poster was referencing wooden crates vs. metal crates and talking about weighing things.
posted by ludwig_van at 6:11 AM on April 25, 2006


Response by poster:
Of course, but the original poster was referencing wooden crates vs. metal crates and talking about weighing things.


Um, yeah, whoops. Read that as 'measuring air resistance' and write it off as me being stoopit. I just meant measuring the difference between the speeds different objects fall at, and picked a couple of lame examples.

I guess it must be for effect, as a few people have said here - I know that the player characters in games tend to move at unrealistic speeds and that it's for gameplay purposes, and I'm certainly not asking 'why do things in games not behave the way they do in real life?', but I wondered whether there was some underlying reason why games which specifically advertise their 'realistic' object physics systems almost universally have things looking as if they're moving unnaturally slowly.
posted by terpsichoria at 6:26 AM on April 25, 2006


Best answer: Another factor is processing speed. A large, fast moving object means more pixels change per frame, thus, that much more calculation is needed. Faster moving object increase the CPU/GPU load.

Not exactly. The whole scene gets redrawn every single frame, with a theoretical exception on cards that do tile-based rendering (the technology may make it possible, but I don't think it does it, and the the only tile-based cards I know of aren't good enough to play Half-Life 2). There may be optimizations that I don't know of in newer video card drivers that actually don't redraw unchanged parts of a scene, though, so take my words with a small grain of salt.

One thing to take into account, though, is collision detection. If an object is moving slowly, the time resolution of its position is better. That means that you can more accurately model when one object has hit another, resulting in a more convincing physics simulation. If an object is moving fast towards the floor, for example, the physics engine may not know it has hit the floor until part of the object has already passed through it. That doesn't look realistic, of course. Also, since objects that move slower are rendered with more frames, their motion seems smoother and more fluid visually to the player.

Another thing is that fast-moving objects hit other objects, which make them move fast, which hit other objects, which move fast, etc. This means more physics calculations in less time, which tax your CPU, which lowers your frame rate and reduces your enjoyment of the game. While playing HL2 on my somewhat slow computer, doing something that triggered a large amount of physics calculations really bogged down the game -- my frame rate would drop to zero for an instant while the calculations were being done.

These two examples only really hold up, though, if the user has a slower CPU or GPU and gets a poor frame rate in the game. If the game runs at 60 frames per second or more all the time, I don't see a technical reason why things can't move fast.
posted by zsazsa at 7:11 AM on April 25, 2006 [1 favorite]


A couple of years ago I arranged what i thought was a romantic surprise for my then girlf. I took her one sunday afternoon to the heart of Hackney in East London to watch two monsterous tower blocks being demolished. (I know, I know...)

We waited for an hour and a half for various local luminaries to speak about what a great thing it was for Hackney that these unspeakable buildings were being demolished. Then Trevor Nelson (for it is he,) made a long and impressive speech about the same thing. Then they brought the kids on - the kids whose lives were to be made in some way brighter and less care-worn because these tower blocks were coming down. Then, finally, Trevor Nelson pressed the big red button.

Two thirty storey behemoths crashed down into rubble in two seconds.

There were no ominous rumbles, no impressive explosions. There were no repeats. No slo-mo.

About 200 people were left wondering what to do with the rest of the day with the taste of disappointment in their mouths. (It tastes like brick-dust.)

My girlfriend left me two weeks later.

I imagine that the kid's lives have not measurably improved since either.

So to answer your question: Why do videogames with physics simulation always have things fall too slowly?

It's because, in reality, physics sucks.
posted by Jofus at 8:38 AM on April 25, 2006 [5 favorites]


Are the items in the game being thrown up in the air? Maybe instead of falling slower, they're being thrown higher than you think which then makes it take longer to hit the ground.
posted by chndrcks at 8:45 AM on April 25, 2006


Best answer: It's a combination of qwip's and zsazsa's explanations.

Objects in a game move slower because it's not as important for a game to feel realistic, as it is for a game to feel right. In the real world, we can catch a thrown ball because our eyes can process moving objects very quickly and our hand also reacts very quickly to move into the right place to catch a ball.

In a video game, you have a number of things that make it harder to interact with than real life. Lack of depth perception, lack of proprioception, and interacting with the world using a mouse all inhibit one's ability to react quickly to things that happen. Therefore, if things move slower, you can respond to the environment at a more realistic rate.

That's the design-based reason for slow physics. In addition, there are limitations on the speed dynamic physics objects can travel, because of the collision detection mentioned by zsazsa. The way I understand it, a program does not detect when a dynamic physics object collides with a wall, but when a point on it has gone past the wall, the faster moving the object is moving, the further it will "clip" into the wall before the program realizes it needs to bounce off.

When objects move too fast, multiple points can go past a wall and confuse physics programs, causeing the object to start rattling and bouncing around inside the wall/floor/whatever. You may have noticed this happening in titles like Fear, Condemned, or any game that uses the current trend of ragdoll physics. It happens in HL2 as well, but not so much.
posted by Durhey at 9:43 AM on April 25, 2006


Best answer: The way I understand it, a program does not detect when a dynamic physics object collides with a wall, but when a point on it has gone past the wall, the faster moving the object is moving, the further it will "clip" into the wall before the program realizes it needs to bounce off.

Well, speaking generally, a program might deal with the collision detection in any number of ways—but what Durhey suggests is one of the most computationally simple ways to handle it, which is key in games programming, where every cycle counts.

A lot of older games relied on very simple collision dectection of exactly this sort—when two objects (2D or 3D) are found to overlap, do collision math. Often this calculation would be performed in lockstep with a display update—so you with every frame of animation, an old 2D game might simply check to see if any two moving game objects were being drawn onto the same position on the screen. This could be a problem if, for example, a pong ball were going so fast that it jumped from one side of a defending paddle to the other in a single frame—no collision, no bounce, point scored.

The logical refinement to that idea involved calculating the movement of physics objects at a higher time-resolution than the actual graphics framerate: doing two, five, ten calculations for every graphical frame to allow much more accurate collision handling. The cost, of course, is multiplied CPU time spent on physics, and so we have seen better real-time 3D physics blossom as (1) processors have gotten steadily faster and (2) physics code has gotten more clever—programmers have found ways to work smarter rather than harder, which allows for good general physics systems in games but likely involves odd compromises.
posted by cortex at 11:31 AM on April 25, 2006


Nobody has mentioned this - so I will.

Gravity has scale. What this means is that if I take a movie of a 100 foot tall man throwing a 10-foot wide crate into the air that movie will be different than one showing a 6 ft man with a 1 ft crate. In the first movie, everything will appear to move slower even though it is obeying the same laws of physics.

So...there's your answer, sort of. Have the game designers said what the "actual" size is of the things you see on the screen. If not, then they could be using standard physics - its just that everything in the game world is much bigger than you had imagined.
posted by vacapinta at 11:48 AM on April 25, 2006 [1 favorite]


Best answer: I've programmed realtime physics engines for games. Nothing professional, but I've written one from scratch.

The computational problems, specifically with collision detection, that were mentioned aren't really all that problematic until you get up to really high velocities (thousands of simulated meters per second). Most coldet systems are capable of resolving any atmosphere-bound physics situation you can imagine. The same techniques that they use in games, they use in engineering simulations (with different implementations).

The real reason that things fall more slowly than you would expect is that it's an intentional dramatic/aesthetic decision made by the game designers.
posted by Netzapper at 11:52 AM on April 25, 2006


Could be the same reason that explosions and other collisions and effects in the movies seem unnaturally slow. A lot of the times things are filmed with miniatures with high-speed film, and then slowed down to give the miniatures an artificial sense of weight and mass. It's an illusion, but it works.
posted by Robot Johnny at 8:10 AM CST on April 25 [!]


FYI, the explosions in HL2 are pretty realistic-seeming. At least, they don't have huge flourishing fireballs for every little bang. When stuff blows up, it's really percussive and quick. I definitely like it better this way.
posted by cellphone at 2:50 PM on April 25, 2006


Are the items in the game being thrown up in the air? Maybe instead of falling slower, they're being thrown higher than you think which then makes it take longer to hit the ground.

Having played HL2, I think that this is part of it as well.
posted by ludwig_van at 8:25 PM on April 25, 2006


« Older What can I do to make a great Fulbright...   |   Extreme budget travel in Eastern Europe Newer »
This thread is closed to new comments.