Hi, I’m internally debating the feasibility of a game concept, so the “2d/3d in a single engine” aspect of nphysics caught my attention.
I’m fan of an indie game called rawbots https://rawbots.github.io/ which is basically a virtual robotics kit (like lego mindstorms, with the programming and all). Unfortunately the game seems to be abandonware, so if I cannot I find an existing game that fulfill this niche I might need to work on a successor by myself.
I 'm also a fan of a 2d physics sandbox called Algodoo, which imo is superior to rawbots in these two ways:
Being 2d, the colliders are drawn by hand, which offer more design freedom than the premade components in rawbots. Drawing 2d shapes, then extruding them like in a CAD program could offer a similar design freedom when in the 3d realm.
Algodoo’s physics can be ran with a very fast timestep (easily >1200hz), which allows for small colliders and joints to work even when subjected to high speed and forces. For instance, I can simulate a planetary gearbox with >100 real teeth that works smoothly when spun at 600rpm. 2d physics are great at accurately simulating internal mechanisms with precise colliders, but 3d physics are nice to simulate an outside world.
Would it be possible to run a physics engine at a fast framerate to simulate internal mechanisms (that never collide with anything outside their little box and are treated as 2d for performance) while computing less critical 3d colliders only every 10 steps or so?
Properly managing the interactions between the former and the latter (example: computing the torque a piston engine experience when something is slowing the wheels) sounds like nightmare to me (will need an integrator?). Maybe I’m looking at the problem the wrong way…