Pro CVAR: pmove_fixed, b_fixedphysics, b_optomizedprediction

ET Pro Documentation Project

Moderators: Forum moderators, developers, ET Pro Documentation

Post Reply
User avatar
Posts: 762
Joined: Sun Sep 08, 2002 1:03 pm

Pro CVAR: pmove_fixed, b_fixedphysics, b_optomizedprediction

Post by WeblionX »

<b>S</b>ince Quake 3, the function that's responsible for game physics (amongst other things) is named <i>Pmove()</i>. Normally, this function is run once every client frame, and this is where framerate-dependant physics (most notably jump heights) come from. <i>pmove_fixed</i> is an attempt to level the playing field by running this function at a fixed rate (every <b>pmove_msec</b> milliseconds.) The default <b>pmove_msec</b> of 8 is equivalent to normal physics at 1000 / 8 = 125 frames/second.<ul>
<li><i>pmove_fixed</i> 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 will be reset to the value of the server quite frequently due to some silliness in the code.) <b>pmove_msec</b> can only be set on the server side.

<li><i>b_fixedphysics</i> is a server-side setting with similar goals to <i>pmove_fixed</i>. <i>b_fixedphysics <b>1</b></i> avoids rounding the velocity at all (Removing the framerate-dependent behavior in movement); however, it offers <i>b_fixedphysicsfps</i> 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 <i>pmove_fixed</i> 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. <i>b_fixedphysics <b>2</b></i> is a cross between normal behavior and fixed behavior, which effectively just caps the maximum framerate-dependent behavior to 166fps.

<li><i>b_optimizedprediction</i> 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. <i>b_optimizedprediction</i> will store the result of the previous computations and reuse them (Only 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.
<i>(Thanks to |Rain|'s post.)</i>
Got any old idtech3 tutorials you made or saved? Send them my way.
Post Reply