Physics Implementation on Consoles

semitope

Banned
The ideal place for your subject would be to start a new Tech Forum thread entitled something like 'Turbulence in games' and say you've noticed the air and smoke movements in KZ2 and wondered how it was achieved, what other games do similar, and what techniques are possible. That would liekly spawn an interesting thread on a technique not really looked into, and raise GPGPU turbulence algorithms linking to nVidia's demos, and LBP excellent application of turbulence in it's smoke effects.

^ That. lol. Yes i am lazy, geezer. If you could explain what you mean by turbulence that would be nice.
There is also the recoil in the game killzone 2 that seems dynamic and could make for good talk.

Also, how on earth do they achieve this in multiplayer mode with little if any graphics compromise?
 
Although I've not conducted any controlled experiments to determine the exact parameters that affect the physics employed in Operation Flashpoint: Dragon Rising, it does implement bullet drop and (if I'm not mistaken), windage. Additionally, to play the game smartly, one needs to employ usage of smoke grenades to create concealment, especially in large open areas. This smoke is rather persistent and also seems affected by wind.

With the combination of online-multiplayer (co-op or versus), some of the standard equipment given from the out-right such as a laser range-finder capable binocular, it would be fairly easy to figure out if they use somewhat real physics to calculate bullet flight.

Imagine this scenario:

* Have partner move to a fixed position. Start at 100M, them move to 200 and 300M
* Pop smoke & observe direction of travel & angle to determine wind direction & speed.
* Aim at center-of-mass, fire & make observation: target, high, low, left, right.

Since it seems all the rounds are tracer rounds, one can easily see their flight pattern, and observe the round strike. To make it even more interesting, if you had another player, you can have that player act as an observer/spotter equipped with their binocular to validate the observations of the shooter and target.
 
If you could explain what you mean by turbulence that would be nice.

I am also interested where turbulence occurs in KZ2? I suppose he means the big swirl/vortex which is generated when the dropship is flying through the smoke of the exploded bridge...which would not classify it as turbulence!

What impresses me in KZ2 with respect to (particle) physics is that one can observe (when throwing a smoke/spawn grenade for instance) that the smoke is influenced by a 'wind', the smoke plume is oriented and when reaching a solid wall or something like this, it is redirected in a new direction (typically upwards) - crazy!

Is the redirection when hitting a solid easy to achieve...is it physical (some kind of bounce back condition) or just a faked ('get the cool effect people would expect') implementation?
 
Last edited by a moderator:
Well there is Far Cry 2 with it's dynamic wind system that goes beyond just a simple direction for wind effect. Just like in the first Far Cry apart from it having simple wind system like KZ2 or such (one direction, slight randomness) also particles are affected. I think it was the most highlighted feature of FC2. It also would be interesting to know if Crysis 2 will inherit previous Crysis games simple wind system and physics/wind affected particles aswell as battledust accumulation.

Otherwise wind effect + particles moving with wind vector isn't really anything new. But Far Cry 2 takes it to new levels with natural wind system affecting physically vegetation to in a manner not even Crysis can challenge with it's vegetation wind movement. Like to see more UBI games use this but IIRC atleast AC2 will! :)

Is the redirection when hitting a solid easy to achieve...is it physical (some kind of bounce back condition) or just a faked ('get the cool effect people would expect') implementation?

Simple collision detection with static scenery is enough. That and being a soft particle to not clip against surface (if it doesn't). If you mean perfomance wise it is really easy on hardware. Though if it has collision detection with everything including dynamic objects in movement etc then it requires quite more.
 
Simple collision detection with static scenery is enough. That and being a soft particle to not clip against surface (if it doesn't). If you mean perfomance wise it is really easy on hardware. Though if it has collision detection with everything including dynamic objects in movement etc then it requires quite more.
Thanks.
No, it only 'detects' static scenes (if I remember corectly I even observed some kind of bug, where smoke wasn't effected by a certain solid object at all).
 
Thanks.
No, it only 'detects' static scenes (if I remember corectly I even observed some kind of bug, where smoke wasn't effected by a certain solid object at all).

The box wa s probably part of dynamic object group so therefore it didn't collide with it. Might also look strange with some objects unless particle(s) when hitting an object creates new particles to simulate the effect being dissolved or such.
 
Is the redirection when hitting a solid easy to achieve...is it physical (some kind of bounce back condition) or just a faked ('get the cool effect people would expect') implementation?
If your are doing the particle processing, animation and quad creation fully on GPU, you can for example use a very low res volume texture to represent the static blocking geometry areas. Just sample that texture on the particle animation shader (using the particle world coordinates). The texture fetch is very very likely a cache miss, but if you use spline curves to animate the particle properties, you have lots of ALU instructions in the shader to hide the latency.

Well there is Far Cry 2 with it's dynamic wind system that goes beyond just a simple direction for wind effect. Just like in the first Far Cry apart from it having simple wind system like KZ2 or such (one direction, slight randomness) also particles are affected.
This can be really efficiently done if you have GPU particle animation. It's just a few extra shader instructions. For locally changing wind conditions, you can also use lookup textures (super low res volume textures for example, even 2d textures should be enough for most purposes).
 
Just out of curiosity: when someone talks about physics in games...what does this exactly mean? For instance, are the solving real ODEs and PDEs??? Or are they using some simplified physic models to speed calculation up, or don't they use any phyics at all and just try to fake the effect in the sense that it behaves as you expect, as a real physical model would be to expensive for real time.
 
Depends entirely on the game. All the above are valid implementations of physics, although this gen the term is usually used in respect to solving Netwonian rigid-body interactions.
 
Just out of curiosity: when someone talks about physics in games...what does this exactly mean? For instance, are the solving real ODEs and PDEs??? Or are they using some simplified physic models to speed calculation up, or don't they use any phyics at all and just try to fake the effect in the sense that it behaves as you expect, as a real physical model would be to expensive for real time.
Trials HD (XBox 360) physics are based on realistic ridig-body simulation. We have dedicated a whole CPU core to run the physics. The bike itself is more than 20 rigid bodies connected together with various physics joints. We don't have any artist driven (baked) animation. Everything that moves is run with the physics engine. The game trial version (demo) can be freely downloaded from XBLA and it has fully functioning level editor that allows you to place (rigid-body) physics objects around the 3d world and connect them with various physics joints (and simulate the results). It's a nice physics toy :)
 
Trials HD (XBox 360) physics are based on realistic ridig-body simulation. We have dedicated a whole CPU core to run the physics. The bike itself is more than 20 rigid bodies connected together with various physics joints. We don't have any artist driven (baked) animation. Everything that moves is run with the physics engine. The game trial version (demo) can be freely downloaded from XBLA and it has fully functioning level editor that allows you to place (rigid-body) physics objects around the 3d world and connect them with various physics joints (and simulate the results). It's a nice physics toy :)
Thanks very much for the answer.

I suppose that you solve ODEs for the movement of the rigid bodies barycentre. Just a question, can you maybe detail the method you choose to solve these ODEs?
How much of these ODEs can you solve in your game (which is a really great game by the way) while keeping steady 60 fps...is this even a limitation for your engine?

EDIT: Another thing: when you are using for instance an explicit numerical integration method, you have to satisfy, what we call a time step stability restriction. When devs say, that the physics are updated with e.g. 120Hz, does this number directly correspond to the time step of your ODE integrator?
 
Last edited by a moderator:
Back
Top