Entia is a free, open-source, data-oriented, highly performant, parallelizable and extensible Entity-Component-System (ECS) framework written in C# especially for game development.
I want to be able to use a custom third party profiling tool, so I would like to surround the 'Run' call with BeginSample and EndSample so I can profile each system individually. What is the best way to do so? I don't want to have all my systems to have these statements copy-pasted.
I'm debugging quite a lot theses days, and one thing that I find difficult is never knowing what the entity I'm looking at is when stepping into the code. Would it be possible that each entity has a debug name, or something to easy identify it, even if it's not in the release version.
With "Read" the generated file won't add UnityEngine.UI
With "Read<UnityEngine.UI.Image>" the generated will be "global::UnityEngine.UnityEngine.UnityEngine.UI.Image". So adds 2 UnityEngine in front which does not work.
I wonder why everything is a struct, i understand you want cache locality, but with C# it's impossible to achieve without bloated the code with ref everywhere, and some code might still have to use reference types ex: libraries, assets, poco etc
I am forced to use struct for component and system ? can i still use class ? if i do, will i get performance penalty because of choice to focus on structs for Entia internals ?