Author: {wf}shadowspawn <shadowspawn_at_shadowspawn_dot_net>     Reply to Message
Date: 12/27/2003 1:11:14 PM
Subject: Answer

short answer: nope not borked; its a direct port of q2wf's. its a fusion between the two because of engine differences (well not differences, mergers) but all in all its more like q2 then wfa.

long answer:

it used to be server side. q2wf was all strictly server-side. there was no client side changes at all. server says you can't move, you can't move. thats what q2wf was.

q3 it became client/server, with additional prediction added in. there were tons of bugs with it.

i'd say no it's not borked, its more true to the original q2wf grapple then the wfa grapple; but with the effects of my own fixes for prediction and differences in collision detection its definitely not identical to one or the other and there are allot of reasons why.

WHEN I SAY "MY OWN FIXES":
that doesn't mean i said to myself 'ok, this should've been done this way, so i'll just mess around with some code like I think it should've been done', it means that fixes HAD to be done because of how the engine works. i kept my changes to effects and efficiency checks; any changes I made to the core I did because I had to.

in q2wf you grappled, then when you were close to the grapple point you were moved a bit away from the surface to make sure you didn't get stuck, after a trace happened to make sure that wherever you moved you didn't clip into a solid. sorta like the jetpack does; you actually move a couple of units upwards. (this was also the source of a bug in pre wfa 3.3 where you could clip through playerclips.)

in wff when you get to a certain distance from the grapple point your movement commands are turned off (not like q2wf) and then you are locked into place with a client and server side velocity wipe after a few frames. there's a reason i did this, and it made the grapple just like wfa's to an extent as the client can 'skip' over this stop point if they are moving fast enough, so the grapple sling is still present, albeit a bit stickier then wfa's.

the reason for the clearing is that the server would always be trying to reposition the client, and sometimes other clients would see the person grappling look like they are tarzan; always moving around when in fact they weren't.

this stops the 'crosshair' creep that happens in wfa; wfa i believe it happens in reverse order, hence the creep. you are stopped then cleared so you still actually move client side; but because collision detection is at its strongest when you are up against something the client is never told it was moved.

collision detection and physics: in q2 you have a function for ground movement that is different then q3. your velocity is not checked when you hit a ramp; your direction is. so you can basically continue with your same velocity and just on a different vector, hence the cancer ramp jump/bug. its very easy to change that in q3 back to q2, however... well you'll see. you can skyrocket up the ramp in 2forttron/2k faster then you can believe. these physics, along with meshes and high lod's make for some weird movement for some at first. you move allot more then you are used to.

the grapple when combined with the other physics with collision detection and client movement visual effects (when you strafe your roll changes, when you move forward your pitch changes, just like q2) it looks and feels like something in between the two.

the grapple pull and fire speed are also configurable on the server by the weapons.cfg so people can play around; i just multiplied both by 1.32 from stock q2wf to make up the difference of player scale and map scale.

  


_