By random decision I mean a situation where an object falls on an edge or a corner (45 degree rotation) and it’s meant to fall on one of it’s sides. How does the engine decide about how it will fall? Is it fixed in some way, like always on left side, or is it random like Math.random() or an optimized version of it, like >> vx += getTimer() % 2 ? .2 : -.2 <<, or it is randomized in other way not based on time, like using a custom random function taking object properties and an iterated value as a seed?
Let’s say I throw dices. After they are thrown, before I can check what faces are on top, I need to wait until they stop moving, and then wait a little more until they really, technically, stop moving, and that could be annoying for a player. So I could just cache the throw animations, and store arrays of dice positions and rotations, but that could use a lot of space… So I could just cache initial dices positions and vectors and their results, but if the collisions won’t always go the same way (for the exact same starting parameters) then a player will see dices showing different result then my GUI.
I hope I made it clear. Should I maybe write this question on some Bulletphysics forum? Any link to it would be appreciated.