Any turn-key solutions for baking colliders into ECS subscene?

As far as I can tell, there is no realistic way for a professional game project to author their Scenes entirely via ECS sub-scenes. Third-party assets consistently break using the Graphics for Entities pipeline, and scripts written by tech artists to affect Scene visuals are not easily ported to work as systems/components without help from engineering. Given this is true (happy to be proven wrong here, but have yet to find a serious counter-example), it seems the only reasonable way to author environments for a game that utilizes ECS is to have some kind of baking process that converts relevant Scene collision data into a sub-scene as an authoring post-process step. That way, animations, rendering, and visuals are still controlled by GameObjects and MonoBehaviours, but the simulation aspect of gameplay can still be driven by ECS.

Are there existing tools somewhere in the ECS packages for doing this type of baking? I’ve noticed if I drop all my visual assets into a SubScene their colliders will get automatically converted to ECS physics objects, but this isn’t a functional workflow as the same automatic conversion also breaks the rendering. How can I tell the baking process to find and bake all the colliders in the base scene while leaving my renderer components alone?

Not really. I’ve seen a couple of GitHub projects out there that try to do something hybrid like this. I’ve not tried any of them. This is the kind of thing that I think the “ECS for all” initiative is supposed to solve.

Not 100%, but more like 99%. There’s a few objects like the camera that you will typically keep outside the subscene.

That sounds like a problem with those assets. Any GPU Resident Drawer compatible shader will also work with Entities Graphics. One of the official samples shows how to drive VFX Graph from ECS. And any other asset is probably using custom MonoBehaviour scripts which are obviously not ECS. But many ECS games drive most of their visuals through ECS.

I’m working on a solution for this, though its been deprioritized lately due to a Burst bug. Another option for you is to go data-driven so that your tech artists don’t actually need to write scripts at all to affect things. Its more a form of visual scripting and configuration that I know has found favor by some AA studios using ECS.