Fortress Forever

Fortress Forever (https://forums.fortress-forever.com/index.php)
-   General Discussion (https://forums.fortress-forever.com/forumdisplay.php?f=10)
-   -   so, can we talk about the technical reason for no feign death? (https://forums.fortress-forever.com/showthread.php?t=15114)

Tsukasa 03-16-2008 06:50 AM

so, can we talk about the technical reason for no feign death?
 
I think i understand most of it, but there still should be some kind of hack to get it to work. Is there a way of grabbing the current coordinates of a ragdoll?

And if not, and as I suspect once a player becomes a ragdoll theres nothing you can really do to it, is there a way of replicating ragdoll physics in order to be able to grab the coordinates of it?


Once you have the coordinates, its just a camera / spawn / hitbox trick. Nothing really big there. What, specifically, is the problem here?

Edit: Oh I forgot, ragdolls are completely client-side, too, right? How exactly do ragdolls desync from client to client, if other things such as player location and such are server side?

Jiggles 03-16-2008 07:14 PM

Keep in mind the below is my best understanding of the situation; I could be wrong.

When the client gets the kill message, the client runs a physics simulation on the dead player's body based on the client's current "snapshot" of the world. Each client's current "snapshot" won't be identical to each other client's due to lag and various other reasons (including players who can't even "see" the dead player, and thus don't "know" about it). Further inaccuracies are likely added by the simulation itself; roundoff error, client-only entities interacting with the ragdoll, etc. (I don't really know enough about Source networking to give a full list here.)

Thus, the ragdoll's final position and orientation could be very different between clients. One solution is to have the server simulate the ragdolls, but that has two major problems. First, all of those physics calculations would lag the server considerably. Second, to look decent, the ragdolls would have to be networked to each client, which would take a huge amount of bandwidth.

There are, of course, other alternatives. A custom semi server-controlled ragdoll might reduce the network overhead to bearable levels. For example, the server networks only the position of, say, the head and torso, and the client interpolates the rest. I really don't know if this would work, though. It would take a lot of work. Also, the server would still have to do additional physics calculations.

This isn't an insurmountable problem. However, any of these custom solutions would likely a) require a lot of work, and b) increase networking overhead and/or server load a fair amount.

If the foundation of the mod relied on this I could see coming up with a solution. However, I think the cloak is an adequate replacement for feigning, and getting feigning to work properly in FF just isn't worth all the time, effort, and performance hits.

Circuitous 03-16-2008 08:06 PM

For an example of how bad ragdoll synching is right now, record a demo of yourself. Kill somebody with a rocket. Then, follow that body around and keep rocketing it.

I did this once, the first shot that was supposed to hit the ragdoll missed completely. I wandered around the map shooting nothing.

Tsukasa 03-16-2008 09:04 PM

Okay, that makes sense.

From what you have described, I think this is an easy problem to fix once you wrap your head around it.

The first step here is to define dying differently. The second is to let the server keep track of only the center of the model, since that's what we really care about. This would be a custom object of some sort, that way the networking is not affected and people don't load things they are not near.

The person who does the 'killing' probably has the most accurate version of events, lets assume this. Lets say a soldier (player B) blows up a scout (player A). We tell the server, player A has died at 10,10,10 with a resulting push due to the rocket blast of -120, 24, 10 degrees and a force of 9. At this point, a 1x1 invisible entity is spawned by the server, with a ragdoll attached to it, in the specified location with the specified force (it will be attached to the center of the model, the crotch). We would also have to override ragdoll lifetime, lest a feigned spy has his corporal body disappear.

Any thoughts?

trepid_jon 03-16-2008 09:30 PM

My thoughts are that "an easy problem to fix" is an understatement. What you're talking about with making players tell the server how that player killed another player in order to match things up better or something...that seems like an overly complex way of doing it, because the kill/death/event systems would need to be reworked. And for not much benefit or reliability, to be honest. It sounds like it'd almost be like going from server-client to some kind of peer-to-peer + server-client hybrid. You really can't rely a client to inform the server about something as important as how a player died. The server figures that stuff out...and most of the time, the clients have no idea what's really going on other than what they're predicting.

But we talked about basically anchoring a feigned ragdoll to an object, whether that'd be the torso, the player, or some new object. That'd probably be the way to go if we did do it, but I don't know if we'll ever add feigning back in.

Cause what would be the point of all that now? I think FF cloaking is way better than TFC feigning. Especially FF's cloak+ragdoll. You can essentially feign like in TFC, but keep walking around cloaked.

So the idea would be to get rid of cloaking and go back to feigning? Or add feigning to the spy's already powerful feature set?

Tsukasa 03-16-2008 09:40 PM

Well, I imagine the server can calculate the death velocities and angles as well.

Feign death can replace cloak. Cloak was created to approximate feigning death in the first place. Cloak works well, but we have all these problems with fog and direct x shader versions and some people seeing the spy completely and others not, dependent on game resolution and antialiasing settings. Feign death is much better imo.

Jiggles 03-16-2008 09:43 PM

But then we'd be exchanging one set of difficulties for another set of potentially larger difficulties. Not a good trade off, imo. Better to focus on ways we can improve cloaking.

greenday5494 03-16-2008 09:47 PM

look at gmod. go on a server, and spawn a ragdoll. you see how fucking laggy that is? now, thats just one ragdoll. imagine a whole team of spies feigning. servers crashes in an instant and greifers are rampant. Cloak DOES need to be improved, however. firstly, there no shaders on eithe DX8, which does support shaders, or on DX7, which doesnt support shaders. DX8/7 makes seeing spies wayyyyyyyy harder than it should be. if you say easier, see thread in other sub-forum. i took screenshots in third-person of both DX7 and DX9.

Agent_W 03-16-2008 10:47 PM

I'm actually a big fan of the cloaking system. My kudos go to the FF dev team. It was something I always believe spies should have. It is a very fine substitution to feign death, and by the mechanics of it, it's still tradition-bound to TF(at least for me).

Feigning death was fine back then, but even then, it was limited. You had to stay STILL and not look around. Your body would rotate upon doing so on the ground, which will have you dead soon by a wary enemy. I also recall there was a disguise exploit that the enemy can read out your disguises if your dead body still laid there, and that the corpise would change as you did. In TFC, I was not a big fan of feigning death, but it was useful when you wanted to reduce your profile down enough to where you can decide what to do next.

I do love the cloaking because you can still move around. I find it greatly useful because you can be ready to shoot(unlike feigning death in TFC). However, I'm not sure if anything needs to be changed to it because I don't want it OP. There has to be SOMEWAY the enemy can see a cloaked spy.

My favorite tactic is what I call the "Big Boo Sneak". I stay still in the line of sight of enemies and only advance when they have their backs turned, just like what the Boo ghosts do to Mario in Super Mario World(if you recall :P).

And people need to realize that cloaking is not perfect invisability. There's probably some whiners crying about it but I got to tell them frankly: the cloak requires SKILL. Knowing how to use it and how it works is important. Don't assume just moving around in it will make you undetectable. Again, more kudos to the dev team because they engineered it to where cloaking replaces feigning death to where it serves best to have you stay STILL.

I'm well convinced that the cloak is in a sweet spot, but I only say it because I feel it's really SENSITIVE to any positive or negative changes. My advice: LEAVE IT AS IS! :P

mervaka 03-16-2008 11:59 PM

Quote:

Originally Posted by Tsukasa
Well, I imagine the server can calculate the death velocities and angles as well.

Feign death can replace cloak. Cloak was created to approximate feigning death in the first place. Cloak works well, but we have all these problems with fog and direct x shader versions and some people seeing the spy completely and others not, dependent on game resolution and antialiasing settings. Feign death is much better imo.

from what i can tell, you just want feign back in by hook or crook. if it was feasible, we wouldn't be having this conversation now.

greenday5494 03-17-2008 01:15 AM

and personally, i love cloak. the shaders effects make me jitter

Tsukasa 03-17-2008 01:23 AM

Quote:

Originally Posted by mervaka
from what i can tell, you just want feign back in by hook or crook. if it was feasible, we wouldn't be having this conversation now.

Just saying it isn't feasible is a convenient way of avoiding the issue; this thread was created to discussing the technical aspects of why it's supposedly not possible. There are hundreds of threads blaming technical reasons but not one specifically nailing what exactly the problem is. Yes, it requires some work to code. If thats the reason then just say so, otherwise tell me what im missing.

Cloak is a good idea on paper. On my 22" widescreen 60fps gaming rig I can see cloaked crouched spies in shadows without even trying. Feign death levels the playing field. We can make feign death better then TFC; the corpse moving around as you look does seem rather silly.

The thing that people have forgotten is that theres a difference between realism and theme. FF/TFC has no realism, but a definite theme. The spy having a futuristic light bending cloaking device doesn't fit in well with that theme. Only moving when people aren't looking works equally well with feign death as it does with cloak. I agree that cloak is easier and in some regards nicer then feign death, however, every game has boundries in place, and the skill is excelling within those boundries. I imagine if we took the jump pad back out, some people would be complaining because they have gotten used to playing with it.


Please, save the feign death vs. cloak discussion for another topic. Let's also stop saying things like its not technically feasible.

The question is, what -exactly- is the problem?

Jiggles 03-17-2008 02:01 AM

Um...I thought we just explained that?

greenday5494 03-17-2008 02:01 AM

FF/TFC doesnt really have a theme, either. why does the scout have a highly futurisic pad that can launch you 60FT?

mervaka 03-17-2008 02:04 AM

its been discussed to death before, and i cant be bothered to trapse through the plagueland of buried threads to dig it up.

the jist of it was, if you wanted to do it properly and sync every bone movement up, it took up shitloads of network bandwidth. anything less and it will be a shoddy implementation, either because it looks shit, or things just dont line up.

cloak repalces feign so that the ragdoll corpse DOESNT MATTER in terms of where it lands. FF uses client side corpses. if you had one server controlled corpse among a zillion client ones, you can tell it a mile off, therefore you have to have all the corpse calculation done on the server.... etc

10 bonus points if you can describe FF's theme without using the word futuristickey.....ish

Circuitous 03-17-2008 02:16 AM

Quote:

Originally Posted by Tsukasa
The question is, what -exactly- is the problem?

You... you did read the thread, right?

It's not that it's impossible, really, it's just that it's a ridiculous amount of work, tweaking, optimization, and coding for an effect that is not significantly better than cloaking in any way, shape, or form.

Tsukasa 03-17-2008 02:29 AM

Okay, that makes sense.

reaper18 03-17-2008 03:02 AM

Quote:

Originally Posted by mervaka
its been discussed to death before, and i cant be bothered to trapse through the plagueland of buried threads to dig it up.

the jist of it was, if you wanted to do it properly and sync every bone movement up, it took up shitloads of network bandwidth. anything less and it will be a shoddy implementation, either because it looks shit, or things just dont line up.

cloak repalces feign so that the ragdoll corpse DOESNT MATTER in terms of where it lands. FF uses client side corpses. if you had one server controlled corpse among a zillion client ones, you can tell it a mile off, therefore you have to have all the corpse calculation done on the server.... etc

10 bonus points if you can describe FF's theme without using the word futuristickey.....ish

post-modern

mervaka 03-17-2008 03:05 AM

Quote:

Originally Posted by Circuitous
You... you did read the thread, right?

It's not that it's impossible, really, it's just that it's a ridiculous amount of work, tweaking, optimization, and coding for an effect that is not significantly better than cloaking in any way, shape, or form.

but, but....

i say its not feasible. all of what circ said is on top of the lack of feasibility, ie the network stuff we cant do much about until everyone has fibre to their doorstep or something.

Circuitous 03-17-2008 03:10 AM

I'm making the potentially-false assumption that it can be done in such a way as to not soak up so very much bandwidth.


All times are GMT. The time now is 07:14 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.