Yesterday was working on my own ECS. And was thinking how to engineer this I had the same idea as what they did in unity. Thanks Brian you made it crystal clear and inspired me of what to do with my custom ecs.
Thanks to you i was able to really implement my first systems!! Omg the way of coding it's so easy and convenient! I had an out of combat health regeneration and Mana regeneration system in like a few minutes!!! Ressdead based on timer,aoe skills querying for destructibles meeting criteria it's so easy, really cool!
It all falls into place now. The game engine of Age of Mythology, that I used to mod, is build with an ECS. 20 years ago.. it's data structures matches this exactly..
I'd love to hear a more general opinion on ECS in game development from you! :) Personally, I think ECS is massively undervalued. It has the potential to change how we build games entirely. Less because of the performance benefits, but the impacts it has on scalability, maintainability and flexibility.
Thank you for a great overview of ECS. There's a tiny error at 13:07, where you accidentally say that "we are responsible to dispose of this chunk when we no longer need it".
This essentially means that component types are not contiguous in memory. So when you have your renderer iterate through all the Renderable components, or say 'Position', it doesn't iterate a contiguous block of memory. I've been learning Entt ECS, and this is an important part of its architecture. Apparently it's important to avoid cache misses, but I've seen other ECSs and they don't keep components contiguously, so I dunno.