Lots of questions came up and I’m highly concerned about the unification of entities and GOs.
My first question is a blunt one. Why?
Who is the targeted developer and team who profits from it? It sounds like a haphazardly put together elevator pitch.
Initially it was sold to me that it opens up getting missing DOTS features like animations. Now last time I was told that bakers are not working on GOs in a Scene and I should stick to subscenes. Ok, so I’m already out? That was quick.
When bakers are not working and instead IComps/IBuffers are mapped 1:1 on the GO how should anyone postprocess data? Is postprocessing even intended? If not, out again.
So now I want to take advantage of new world creation. Where should I put the world? It’s an important question because what physics engine will be picked? Do I leave it as GO, do I put it in a subscene? What colliders will be created? In both worlds? Where should I raycast? I just wrote code for PhysX and now I realize my world streaming is bottlenecking and I put everything in a subscene. Now the previous PhysX raycasts are not working anymore because it’s Unity.Physics now.
When MBs and systems are mixed. How is execution order determined? This can quickly end up in outdated data and 1 frame delays. How can execution order of MBs work alongside systems? (I do have a solution down below)
Do you realize that this could end up very confusing for everyone?
When I first heard about it I thought it was great and I’m laying out the expectations I had:
- Subscenes are gone, bakers are a first class citizen and encouraged
- Everything is a scene and scenes can have nested scenes
- An entity will be created with any GO and bakers will use that
- Through bakers finally GOs can be controlled to have Transform, hierarchy or WorldSpace, just like we control our entities now
- MBs are baked now too and act as authoring component. (class IComp) Their underlying events are translated into SystemBase calls OnEnable → OnStart, OnUpdate → Update, etc…
- everything flows down into entities and systems
- PhysX will be replaced by Unity.Physics when entities is used
Maybe some of my expectations are way out there but I’m not seeing any of these things being solved. To the contrary, so I’m puzzled, what are you actually solving? I’m interested in an use case that applies to a typical game studio.
If it hasn’t been clear by now. Scenes not being baked is a total shocker I probably can not recover from.
I’d be okay on a personal level but I have a stake with the assets I have. I have no idea what even happens to my monobehaviour and DOTS version of my Third person camera.
What if someone buys the dots version and throws it on a scene GO. Now I get an angry email that nothing is working. Well, I can answer, put it in a subscene but he has a MB and PhysX world. So okay, don’t use the really nice baker but put the IComps on the GO yourself. But wait, my dots version expects unity.physics colliders. Let’s back up then, refund and use the MB third person camera instead. It works. But what did we just do? We just went back to MB. Where does the unification kick in?
We can just flip the situation too.