Bepuint and solver discrepancies
Posted: Wed Apr 15, 2020 5:13 pm
Hello!
This is a question not really related to BEPU v1 in its standard form, but the Fixedmath version found in:
https://github.com/sam-vdp/bepuphysics1int
Its a bit unfair to ask this here, but there's no other place to, so let me try.
We are developing a multiplayer game in which we simulate in 2 devices according to player input. We tried the deterministic version of bepu to try to avoid the hassle of creating and implementing our own fixed math physics.
But I think either we are doing something wrong or the fixed math version does not guarantee the same output under some circumstances (that we are apparently facing).
After a collision between to spheres with locked y (no vertical movement, only movement in a 2d plane by overriding y always to 0), the final output position is slightly different, and our consistency checks alert us that they are not the same.
My biggest suspect is the DeactivationManager, that does its magic in intervals and might be setting slightly different results for each client (all run in the same machine, for now). We are trying to avoid having an authority that fixes this discrepancies, so we would like them to have the same results always...
Does this make any sense? Is there something that comes to your mind that could help us? Is my assumption of the DeactivationManager all wrong?
Thanks a lot in advance!
Cheers
This is a question not really related to BEPU v1 in its standard form, but the Fixedmath version found in:
https://github.com/sam-vdp/bepuphysics1int
Its a bit unfair to ask this here, but there's no other place to, so let me try.
We are developing a multiplayer game in which we simulate in 2 devices according to player input. We tried the deterministic version of bepu to try to avoid the hassle of creating and implementing our own fixed math physics.
But I think either we are doing something wrong or the fixed math version does not guarantee the same output under some circumstances (that we are apparently facing).
After a collision between to spheres with locked y (no vertical movement, only movement in a 2d plane by overriding y always to 0), the final output position is slightly different, and our consistency checks alert us that they are not the same.
My biggest suspect is the DeactivationManager, that does its magic in intervals and might be setting slightly different results for each client (all run in the same machine, for now). We are trying to avoid having an authority that fixes this discrepancies, so we would like them to have the same results always...
Does this make any sense? Is there something that comes to your mind that could help us? Is my assumption of the DeactivationManager all wrong?
Thanks a lot in advance!
Cheers