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

