Hello, The following reffers to the Half-Life 1 engine and in most use cases Counter-Strike 1.6.
The problem: - also occurs when using the engine's native startmovie command, it gets especially obvious when using it when playing (with viewdemo) HLTV demos (i.e. CS 1.6), which have low rates and therefore also high interpolation times (0.1 ms) - the usual user [in this case a moviemaker using viewdemo+startmovie or viewdemo+MIRV Demo Tool] sees it as stuttering of things that have to do with interpolation (i.e. campaths, but those can be worked around by using cl_fixtimerate), player models stuttering, especially timing problems with sprites etc. The cause: - The deltaClientTime = (engfuncs.pfnClientTime - last_pfnClientTime) gets negative, meaning the time used to render the current frame lies before the time that was used for the last frame, this results in stuttering of player models, interpolations and sprites and would especially cause problems with the particle system (i.e. on de_aztec new raindrops get (re-)spawned, although the correct amount has been already spawned 1 or 2 frames ago, .. (this map isn't used in tournaments anymore anyways due to exceptional high CPU / grfx load (even when weather is turned off))). - The difference is around 100ms and usually kicks in after the time specified in seconds with cl_clockreset (default is 0.1) - I think the source of the problem are (in time) wrongly alligned demo envents in the demos: The HL engine uses those to resync the client's clock with the server's clock (I wonder why that needs to be done when watching demos heh). Possible solutions: (the solutions take into account that the project I am involved with has an own dumping method anyways) - seting cl_clockreset to a very high value (in seconds, negative values or zero won't work like it does for cl_fixtimerate), I have no idea what negative side effects could occur [very easy] - realignment of events in demos (in time) [hard - very hard] - messing around with the engines timing functions [medium - very hard] - droping frames with a negative deltatime and trying to get a frame that is closer to the time we relay wanted (still the frames would have remarkable residual errors in time) [easy-medium] My questions: - Which solution should I use in your opinion, or is there even a better one (considering it even happens when using Valve's own viewdemo+startmovie)? - What is the intention behind the cvars cl_clockreset (I asume that it specifies the time after which the client's clock will get resynced to the server's clock using the difference the engine knows from events) and cl_fixtimerate (I am not sure, but it seems to have to do s.th. with fixing resyncing of interpolations like camera paths (If you don't know HL1 Demoedit / Camerapaths, you can read more about that here: http://planet-movies.com/wiki/doku.php/en/games/half-life/demoedit)). Thank you for the time you took reading this (even if you can't help :) With kind regards Dominik Tugend _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders

