[Question] Client side ragdolls and demos

AvA_Majestic

Veteran X
Should be a fairly straightforward question I hope.

All ragdoll effects are clientside. When we are recording a demo will it record the ragdoll physics as the death occurs and store it in the demo, or will it recalculate the ragdoll every time the demo is played. If I send a demo of something to someone else, will we all see the same thing, or will we all see different ragdolls?

Thanks in advance
 
jotun, the same thing is happening for different players, they still see the ragdolls differently, as its randomly calculated by each person, so each person in a server see's a different effect.

Tajora: It may at some point. I'm not asking for anything to be changed, i'm simply curious.
 
It would definately reduce the size of a recording if it recalculated the ragdolls and didn't have to store each random veriable for them...
 
AvA_Majestic said:
jotun, the same thing is happening for different players, they still see the ragdolls differently, as its randomly calculated by each person, so each person in a server see's a different effect.

Tajora: It may at some point. I'm not asking for anything to be changed, i'm simply curious.

All players see the same ragdoll effect. The way the ragdoll is calculated is not based on random numbers, it's based on a whole bunch of numbers that are the same amongst all the players. So in a demo it doesn't matter if it records the ragdoll effects or not, it will still look the same everytime you play it.

As for my thought on if they will or not, I doubt they will. Demos don't actually record the game in the sense like a video, they just record things like player position/rotation/button presses/etc. That's why can use demos as benchmarks (timedemos).You can also test this by changing the weapon models after recording a demo, the demo will show the newer weapon models.
 
Last edited:
are you 100% sure they are not random?

i'm pretty sure they were with Karma, if not with Havoc. Its the reason people drop their ammo in a cluster on the ground instead of it staying on the body, because the body will be in different positions for all different clients.
 
Vyrticl said:
All players see the same ragdoll effect. The way the ragdoll is calculated is not based on random numbers, it's based on a whole bunch of numbers that are the same amongst all the players. So in a demo it doesn't matter if it records the ragdoll effects or not, it will still look the same everytime you play it.
Ragdoll uses random numbers.
 
Amadeu5 said:
Ragdoll uses random numbers.

Hmmm, are you sure about that? I know that in CS:Source every dead body looks the same for everyone. I know that uses it's own physics engine for deaths but it's based off the same concept.
 
i'm 90% sure it doesn't use random numbers, but the point is that evey computer has another FPS, which is "random" so that adds small errors (Physics engines are far from perfect) are introduced which sum up and can in the end alter the final position quite much. But it's far from intentional, so don't call it random numbers, call it FPS-based errors or something... ;)
 
Phantom88 said:
i'm 90% sure it doesn't use random numbers, but the point is that evey computer has another FPS, which is "random" so that adds small errors (Physics engines are far from perfect) are introduced which sum up and can in the end alter the final position quite much. But it's far from intentional, so don't call it random numbers, call it FPS-based errors or something... ;)

It shouldn't matter if you have good/crap FPS, the projectile that kills them will still hit them in the same spot, they will still be moving at the same speed, etc. And I still don't think they use random numbers. Maybe a dev can set this issue straight? :)
 
If Havok doesn't use random values, then I think the only reason the ragdoll effects would be different across systems is due to latency issues. The demos' ragdoll effects would therefore look identical across different systems, given that the game is set to identical graphics settings across the systems.

If Havok does use random values, then the ragdoll effect should be different each time around :p
 
http://www.havok.com/clients/valve.php

Actually it looks like I was wrong, HL2 and CS:S use the Havok engine as well. I thought it had it's own propreitary engine, maybe that was Doom 3 I was confusing it with. So if CS:S and T:V both use the Havok engine and in CS:S the dead bodies die the same way for everyone, the death animations for T:V should be the same for everyone as well.
 
Last edited:
Vyrticl said:
http://www.havok.com/clients/valve.php

Actually it looks like I was wrong, HL2 uses the Havok engine as well. So that means CS:Source does too. And I'm 100% sure in CS:Source all the dead bodies fall the same way.
That might just mean that the random numbers don't have that much of an impact on physics. Let's not forget though that CS:S is a ground hugger game, while in T:V the death animations will play while the guy is falling through the air and using his jets, which leaves a lot more time/opportunity for random numbers to take effect.
 
i'm 100% at one point the devs said that the ragdolls were random, thus the ammo being distributed in the ground.

so unless something has changed i imagine it is still the case.
 
They are NOT kept in sync at each end of the client, sure they may be close, but theres no guaruntee they are the same, thats why ammo etc is dropped at a static location.

And to take a guess Maj, id say that:

* When recording a demo, and playing it back, the ragdoll effects are the same each time (its havok now, not karma).

This is because its not "random" per se, but that the client bases the ragdoll deaths off what information it has at that time, and if one client is updated before another and has the positions of players slightly off, thats when things change - the calculations for deaths however would be the same each time.
 
Just because a number is random, it doesn't mean all clients cannot share the same random number. If all the clients have the same random seed, they all will end up with the same animation. I think the difference rather lies in the slightly differing starting conditions. On games like CS, this will make little difference. If you are hit 1/20 seconds sooner or later won't affect your position a lot. In T:V, those 50 miliseconds can have carried you a couple of meters farther. So it makes ALL the difference...
 
_Kater_ said:
Just because a number is random, it doesn't mean all clients cannot share the same random number. If all the clients have the same random seed, they all will end up with the same animation. I think the difference rather lies in the slightly differing starting conditions. On games like CS, this will make little difference. If you are hit 1/20 seconds sooner or later won't affect your position a lot. In T:V, those 50 miliseconds can have carried you a couple of meters farther. So it makes ALL the difference...
If all the clients used the same random numbers then there would be no point in issuing the whole calculation to the clients, the server could just tell them where and how to render the body.
 
Back
Top