-
-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Client-Side Prediction #34
Comments
A comment here from our use-case that we've been dealing with in various ways over the past few years... For reference, a project with Box2D Client-Side Prediction implemented here (Also added SDF collision fixtures to this as well): https://rocketbotroyale.winterpixel.io But for client-side prediction to work, we need to arbitrarily rollback the world to some given state and re-simulate with This actually works very well in Box2D with a few caveats...
|
Just another comment as this scenario may be helpful... We run our cloud gameservers single threaded because we generally want our server load to be as non-volatile as possible. i.e. I'm not sure we would WANT to solve our physics simulations multithreaded there. For our use-case we schedule each gameserver a core (well less than a core in all honesty), but we definitely limit the cpu on each gameserver to 1vCPU. So multi-threaded-solver... Very welcome on a client device, but i'm not sure I would want to run the solver on multiple threads on a gameserver. We'd want to pin the cpu through the simulation on a single core so we can balance load across a cloud VM with reasonable cpu scheduling assumptions for each gameserver process. Would be great if when thinking about determinism and threading, if some different configurations were available. |
Will this be targeted for 3.1? Or is it more of an investigation task? |
I'd like to get this in for v3.1. However Rollback might be v3.2. It is a big feature. |
This has gotten me thinking again... Just a note for any potential rollback feature in b2c, but we recently shipped another game with client reset/rollback, however on this game we had a lot of objects that were stacked and there just wasn't a decent simulation that didn't kill our cpu without warm starting enabled. So we have it enabled and eventually our client simulations just kinda even out, but this has gotten me thinking about warm starting in general and how it would apply to rollback/reset simulations as well as any other internal 'state' memory that the engine maintains across |
The text was updated successfully, but these errors were encountered: