Author Topic: Q3 movement physics, SnapVector()  (Read 7038 times)

/dev/humancontroller

  • Posts: 1033
  • Turrets: +1002/-383
Q3 movement physics, SnapVector()
« on: July 10, 2007, 05:47:02 am »
http://ucguides.savagehelp.com/Quake3/FAQFPSJumps.html

It's a discussion about Q3 physics, and how they relate to the possibility of Strafe Jumping, which is also possible in Tremulous, as far as I have tried. Tremulous has the 125Hz patch, right? Despite having it, small descreprencies can arise, such as sometimes I can jump on the barrels in Niveus, sometimes I can't. It really depends on framerate: player count around me.

Could we change the SnapVector code so that the DLLs are equal to QVMs?
Code: [Select]
// nail 'em
v[0] = ( (int)( v[0] ) );
v[1] = ( (int)( v[1] ) );
v[2] = ( (int)( v[2] ) );

Code: [Select]
// we are approximating, not amputating
v[0] = rint( v[0] );
v[1] = rint( v[1] );
v[2] = rint( v[2] );


IMO, there is just no reason to use game.qvm.

TinMan

  • Posts: 1019
  • Turrets: +49/-70
    • http://neonpulse.net
Q3 movement physics, SnapVector()
« Reply #1 on: July 10, 2007, 06:34:08 am »
125Hz? You mean 125 FPS?

I don't think any of those fixes made it into 1.1.0 since there's clearly overbounce and 125 FPS physics advantages.

See this for the supposed fix: http://svn.icculus.org/tremulous/trunk/src/game/bg_pmove.c?rev=862&view=auto
Code: [Select]
Linux: ~/.tremulous/base/
Mac: ~/Library/Application\ Support/Tremulous/base/
Windows: C:\Documents and Settings\username\Local Settings\Application Data\Tremulous\base\
NeonPulse
http://neonpulse.net/media/games/tremulous/base/autoexec.cfg

Warrior

  • Posts: 230
  • Turrets: +2/-0
    • Warrior's Stuff
Q3 movement physics, SnapVector()
« Reply #2 on: July 10, 2007, 06:50:04 am »
Why Your Framerate Affects Jumping
Quote
Note that these do not apply when you are using the new 125HZ modification released 18.09.2000 and incorporated into OSP and Q3COMP. Any 1.27g or above server that has 125 Hz enabled server side is also not subject to the FPS physics issue. By default however 1.27g is set to disable 125 Hz server side.

The DEFINITIVE fps physics post
Quote
This third point explains exactly why DLL's have slower speeds and jump heights than QVM's. In a QVM, the rounding is to nearest integer, so errors will tend to cancel out. In a DLL, rounding is always towards 0, so errors always reduce your speed and will always accumulate. The rounding error in a DLL always acts as extra friction. I expect you can get around this problem in DLL's by rewriting the "SnapVector" macro to emulate the QVM's rounding method.


TinMan

  • Posts: 1019
  • Turrets: +49/-70
    • http://neonpulse.net
Q3 movement physics, SnapVector()
« Reply #4 on: July 10, 2007, 05:18:59 pm »
zomg, so svn is finally patched? I'll have to make an un-patch for it, I'm a DeFRaG player...I live on 125 FPS physics.
Code: [Select]
Linux: ~/.tremulous/base/
Mac: ~/Library/Application\ Support/Tremulous/base/
Windows: C:\Documents and Settings\username\Local Settings\Application Data\Tremulous\base\
NeonPulse
http://neonpulse.net/media/games/tremulous/base/autoexec.cfg

BULLSEYE@linux.be

  • Posts: 146
  • Turrets: +0/-1
    • http://www.yankee-clan.com
Q3 movement physics, SnapVector()
« Reply #5 on: July 10, 2007, 06:55:35 pm »
omg tremulous realy needs strafe jumping

it is so fun

but how the hell u want it to be done???
ww.spikers.2fear.com

TinMan

  • Posts: 1019
  • Turrets: +49/-70
    • http://neonpulse.net
Q3 movement physics, SnapVector()
« Reply #6 on: July 10, 2007, 07:00:19 pm »
You already can strafe jump...dretch much?
Code: [Select]
Linux: ~/.tremulous/base/
Mac: ~/Library/Application\ Support/Tremulous/base/
Windows: C:\Documents and Settings\username\Local Settings\Application Data\Tremulous\base\
NeonPulse
http://neonpulse.net/media/games/tremulous/base/autoexec.cfg