One of my projects I’ve toyed in the past with, was 3D version of popular The Incredible Machine game. Of course you can work out how it worked (or rather didn’t) with Unity’s physics that are non-deterministic. Therefore it is in backburner right now.
What are some good deterministic (everything works out always the same for same set of forces, masses, etc.) 3D physics engines? Just say names, I’ll work out integration myself now that there are plugins in free version (probably would make C# wrapper for their API).
This is a post by Kevin Ryan, the programmer behind The Incredible Machine series and the spiritual successor Contraption Maker where he talks about determinism.
In both The Incredible Machine and Contraption Maker he wrote his own integer (fixed-point) physics system but it may be possible to get floating point determinism anyway with Box2D or PhysX. The reason he switched to a fixed-point system was that copying and pasting contraptions did not work due to differences in precision. A comment on the article suggests this can be solved by moving all contraptions away from the origin (0,0) to something like (50000,50000).
Yes, I am aware he wrote his own physics, however I’m not such wizard to be able to do so myself, especially not in 3D, that’s why I am asking of already made solutions. Again, don’t worry about integration, I’d write necessary wrappers myself, just need names.
hi,any result?
Met the same problem
search for a deterministic 3d physics
True Sync might help you out, it is a jitter physics implementation within Unity3d, and the photon guys made jitter physics FixedPoint to be deterministic.
However, currently there are bunch of limitations on what it can do, and I wish there were people in unity able to create a project to tune this 3D physics engine, it does have so much potential.
- Does not support compound collider(this was deal breaker for me)
- doesn’t work well with animator/or not at all.
- No joint support.(this was something I needed, but I think I could’ve implemented it myself)
- some bugs with initialization, where all connected prefabs will reset to prefab’s original position at start.
- Also performance is something you did have to worry about a lot… but that’s not even come in before you fix/add the first 3 things.
I would say months of work involved to get to something that’s might be half commercial usable.
1 Like