3 ms·
Curious question: I have a few years experience with Unity. When I first grabbed it, I assumed the engine having C# scripting would give me rich tools to make
by diegoperini 6y ago
Curious question:
I have a few years experience with Unity. When I first grabbed it, I assumed the engine having C# scripting would give me rich tools to make game state serialization (save games, streaming open worlds etc) a relatively easy task, thanks to its reflection capabilities. This turned out not to be the case due to my false expectations, the programming model game objects use and the asset pipeline needing too much plumbing. Official ECS packages made it easier later but they also broke the entire authoring workflow by effectively deprecating `GameObject` in practice.
I've never used Unreal Engine but if serialization is a solved problem there, I want to try.
Does anyone here have experience with similar use cases?
Are there other AAA-ready engines good at this? Giving value types first class support, promoting data oriented design and building the artistic authoring tools around these priorities is what I will appreciate the most.
I don't care if the high level scripting language is non-existent, C++ heavy or Brainfuck. That can be circumvented by building muscle memory in a few months.
- pastrami_panda 6y ago> they also broke the entire authoring workflow by effectively deprecating `GameObject` in practice I've not yet worked with ECS, but I've read the docs and remember there was an emphasis on GO -> Entity conversion. So authored GOs can be converted to efficient entities runtime. Is this not the case anymore?
- diegoperini 6y ago> Is this not the case anymore? It is but it has some drawbacks: 1) Play Mode inspection/modification capabilities are harshly reduced. Unity is years behind re-implementing those. 2) Not all subsystems speak ECS yet. Many of them are still essential. 3) There is now a distinction between what you see in Edit and what you get during Play. 4) Serializing ECS is easy but de-serializing is still a pain. You have to keep track of GO's that hasn't finished their async conversion to defer de-serialization. 5) Yes, GO->Entity conversion is async so you need to manually wait for all conversions before your game can start playing.