Multiple Physics Scenes for Multiple Closed System Simulations in the Same Map

Use case: I want to have a couple dozen (12-24) pinball-style machines operating semi-automatically, simultaneously but independently of each other, rendered within the same map. The physics operation of these machines is a core part of gameplay, and should be smooth especially when the player is directly viewing a machine up close, but less visible machines can sacrifice some simulation fidelity for speed. Each machine’s playfield will consist of a couple hundred (200-400) static mesh obstacles and triggers. Around a dozen or so of these obstacles (8-16) will be set piece meshes with complex collision, and the rest will will be using very simple collision (single boxes, capsules, spheres and the ilk). There can also be a few (8-16) moving obstacles like spinners and gates. There can be around a dozen (8-16) balls in the playfield on the machine simultaneously. Physics objects should never enter or leave the playfield except by way of a launcher dedicated to and part of the machine, or through contact with pocket or drain triggers that are part of the machine. In addition to the machines’ physics simulations, there is also the world-level physics simulation where the player can walk about and collide with the machines, but is not able to affect the machine’s physics simulation by means of physics interaction.

Since each individual machine is a closed system, It would be rather elegant to be able to partition each machine’s component parts into its own physics scene, so that each scene would not have to consider objects from unrelated machines, and where settings such as tick frequency, substepping, and solver iterations can be dynamically controlled based on player proximity and field of view.

Is such a partitioning possible or are there plans to make it possible? Looking at engine source, it seems there is a hard 1:1 relation between UWorld and FPhysScene. Anyone have any experience working around that?

I’ve found a couple of dribs and drabs about it here and on Reddit, but what I’ve found is all pondering and no solutioning. So I think I’m probably going to have to hope that broadphase does a good job partitioning the machines from each other with few pathological cases, but also hoping someone can point out something I’ve missed. The tighter I can make this, the lower I can make my hardware requirements.

Have you found a way to have multiple physics scenes at once ? I’m having the same needs on my side. Having multiple physics scenes would be an elegant way to solve it.