Time Nick Message 05:57 lhofhansl sfan5: It turns out that what I've seen in #16488 is actually related to we time a singleplayer/hosted server (at 60fps), instead of a real server at 1/0.09 = 11.11hz. The short server step throws off the position calculation. Why do we singleplayer at a higher frequency than a dedicated server? (see also #16497, which I closed) 05:57 ShadowBot https://github.com/luanti-org/luanti/issues/16488 -- Activeobject Stutter/jitter 05:57 ShadowBot https://github.com/luanti-org/luanti/issues/16497 -- Interpolate client position updates for content_caos by lhofhansl 05:57 lhofhansl I think a hosted/singleplayer player should also be timed with 'dedicated_server_step' 05:57 repetitivestrain yeah, i would hugely appreciate such a change 05:58 repetitivestrain as it would correct a number of minor discrepancies between singleplayer and dedicated server mob physics in mineclonia 05:58 repetitivestrain (FWIW mineclonia sets dedicated_server_step to 0.05 in keeping with minecraft) 05:59 lhofhansl Yep. I see no good reason why we would do the current logic. But there might be a good "historical" reason. 06:00 lhofhansl 0.05 still just leads to 20hz. Lemme try that here. 06:00 lhofhansl I have a local change that uses dedicated server stop for hosted/singleplayer server as well. 06:03 lhofhansl 0.05 works fine too - no excessive jitter of entities. 06:03 lhofhansl Anyway. I'll wait for a response from sfan5. Happy to post a simple PR. 06:04 repetitivestrain Thanks 08:46 sfan5 ~tell lhofhansl I assume the original idea was that we know how fast the client will run (FPS) and can match the server step accordingly for optimal experience. capping it to 60Hz was met with resistance in https://github.com/luanti-org/luanti/pull/14378. also just reducing it smells like bandaid. 08:46 ShadowBot sfan5: OK. 08:46 sfan5 ~tell lhofhansl quoting grorp there: "Using dedicated_server_step in singleplayer would probably make games like mineos unusable with the current default settings." 08:46 ShadowBot sfan5: OK. 08:48 repetitivestrain sfan5: couldn't an option be introduced for games to specify a fixed target dtime 08:48 repetitivestrain in singleplayer 08:50 sfan5 sure 08:50 repetitivestrain that would be much appreciated 09:21 sfan5 I think games should generally not depend on a certain step size but if they want to do that then well whatever 09:21 sfan5 CAO interpolation apparently being buggy (at small step sizes?) is a separate bug strictly speaking 09:24 sfan5 now it's not that bandaid/workarounds are generally a no-go but I'm not convinced yet for this case 14:51 [MatrxMT] 89 pulls 🎉 16:49 lhofhansl Hmm... So mineos would be is unusable when used via a regular server (even locally)? That seems to be a problem of the game, not the engine. The idea that timing/physics behaving differently between a separate server and singleplayer seems fundamentally wrong. 16:51 lhofhansl I would say use dedicated_server_step everywhere, and games need to fix themselves. If that is too radical we can introduce "singlerplayer_server_step" or something (what would the default be?) 18:39 Desour I recently thought it might be good to give games full control over server step time. i.e. some games (that are not running in luanti) are using a fixed dtime and run slower than real time if it's lagging. in terms of dehardcoding, why shouldn't luanti games be able to do this kind of stuff 18:40 Desour (e.g. something like a callback to decide how long to wait till the next step is started, and what dtime it should use for globalstep, abms, nodetimers, obj movement, and co.)