When making maps, with a func_door as my platform, and
setting the move value higher then 120 units/s the
player would be left under the platform, and travel at
around 100 units/s - the jerky movemnt was not
noticable, but it was very sad to see the platform way
above you and you moving up on an 'invisable'
platform.

So this might be prediction code?

Adam

--------
My Website http://www.ammahls.com
  Lead Programer NightFall http://www.nightfallmod.net
     Developer of CST and ZHLT 3.0 http://www.zhlt.info
        Team Lead - Prime - http://www.nigredostudios.com


It's kinda looking like it's a prediction issue combined with the fact
that the plats don't simulate their physics nearly as often as the
player,  so they're a bit jerky even with good prediction. I would think
that the client would smooth the updates from the server, but that
doesn't seem to be happening. Unfortunately, the interpolation code is
rather complex and heavily burdened with nested STL macros making it
very hard to read (at least for me). Plus the interpolation stuff isn't
really documented making things that much more difficult to debug.

It all seems to come down to m_vecOrigin and m_iv_vecOrigin which are
defined on the client. As I mentioned, this stuff isn't documented very
well, but I believe that when the server sends the updated m_vecOrigin
to the client, it gets intercepted by the interpolation code and this
raw value is stored in m_iv_vecOrigin (actually m_iv_vecOrigin seems to
be an array which stores a history of the changes). Then any references
to m_vecOrigin on the client are overloaded by the interpolation code
which substitutes the interpolated value of  m_vecOrigin instead of the
raw value sent by the server. The problem seems to be that there is no
actual interpolation taking place, plus the client is falling well
behind the server which respect to the plat's actual position. This is
happening on a listen server which has essentially 0 ping. The problem
is much worse on a dedicated server with a 50 or higher ping.

The fun part is that both the client and server know when the plat
starts and how fast it moves. This should be a trivial entity to
predict. But somehow, it's not.


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to