❗❗ *Caution:* This video was made using an older version of Unity ECS. While the core concepts remain the same, some of the API and workflows have changed as of ECS version 1.0. I would recommend checking out my ECS 1.0 tutorial video for a good overview of the latest standards for Unity’s DOTS: th-cam.com/video/IO6_6Y_YUdE/w-d-xo.html Once again, the theory behind the concepts of this video are still relevant, however the API has changed. Stay tuned for further updated videos on this subject. Please let me know if you have any questions either here or in our Discord community: tmg.dev/Discord
Awesome, definitely going to be doing more research and experimentation on that in the coming weeks, so It'll be exciting to have some more videos out about that soon 😊
Great! It's a good read 😊 Some things were definitely above me as well, but it's interesting to get some more insight into the DOD mindset and how things work at a low level
Awesome! Just in time! Thank you.. I have millions of entities on a very large grid and was just about writing the filters. This gave me the idea to group them into downsampled grid positions based on the maximum distance they could affect each other. This should speed things ups considerably.
Great to hear, hope that all works out! Feel free to come share your progress and ask any questions to other ECS developers in our Discord community too - tmg.dev/Discord
@@TurboMakesGames This should work..Quick calculation: For my purposes I only have to check 9 "proximity clusters" out of 4096. For this, I gladly lose Multithreading and Burst :-)
Enums of entity/data component for typing, like say creature type, seem like a perfect target for this. This feels like the poor man's version of relational db's indexes
Kinda feel like giving ECS another shot. I've done Data Oriented Design and development outside of game dev and this style clicks for me way more than than standard OOP approach. Seems like ECS is now more stable both actually and in terms of APIs. Just need those Animations to land. :D
Yeah it's kinda fun to think about the different ways you can structure your data to optimize for different problems you come across in your game. I'd agree, I think the "core" of ECS is pretty solid (of course there are many minor improvements that could/will be made) but then they still have a number of things to build on top of all that i.e. animation 😊
Is there a way to get all already existing values in shared component? Let's say I want to run a job for each mesh used by currently existing mesh renderers. Do I track all assignment manually or is there a convenient function?
@@TurboMakesGames I'd brought it up in the discord, but I was mainly curious as I notice the RenderMeshUtility adds quite a bit of data to each entity. Though, I guess that may be the trade-off for highly configurable dynamic rendering? No clue.
Yo, I'm releasing a MMO I want to take on every other Space MMO in a few months. You want on board or later, let me know. I used some of your ECS knowledge!
I read the first chapter a few months ago, it was interesting, but it started to get very technical fast which at times I felt lost. There's another publication on Data Oriented Programing through Manning publishing coming out soon. I hope to jump back into reading more about this framework. I look forward to these conversations.
❗❗ *Caution:* This video was made using an older version of Unity ECS. While the core concepts remain the same, some of the API and workflows have changed as of ECS version 1.0. I would recommend checking out my ECS 1.0 tutorial video for a good overview of the latest standards for Unity’s DOTS: th-cam.com/video/IO6_6Y_YUdE/w-d-xo.html
Once again, the theory behind the concepts of this video are still relevant, however the API has changed. Stay tuned for further updated videos on this subject. Please let me know if you have any questions either here or in our Discord community: tmg.dev/Discord
Always a pleasure to get this conversation going, would be interesting with more of a perspective on the copying of data n.n
Awesome, definitely going to be doing more research and experimentation on that in the coming weeks, so It'll be exciting to have some more videos out about that soon 😊
Reading Data-Oriented Design on your recommendation. Thanks! Very illuminating, even though some of it is whooshing over my head.
Great! It's a good read 😊
Some things were definitely above me as well, but it's interesting to get some more insight into the DOD mindset and how things work at a low level
Awesome! Just in time! Thank you.. I have millions of entities on a very large grid and was just about writing the filters. This gave me the idea to group them into downsampled grid positions based on the maximum distance they could affect each other. This should speed things ups considerably.
Great to hear, hope that all works out! Feel free to come share your progress and ask any questions to other ECS developers in our Discord community too - tmg.dev/Discord
@@TurboMakesGames This should work..Quick calculation: For my purposes I only have to check 9 "proximity clusters" out of 4096. For this, I gladly lose Multithreading and Burst :-)
Enums of entity/data component for typing, like say creature type, seem like a perfect target for this. This feels like the poor man's version of relational db's indexes
In a sense, yeah!
Kinda feel like giving ECS another shot. I've done Data Oriented Design and development outside of game dev and this style clicks for me way more than than standard OOP approach. Seems like ECS is now more stable both actually and in terms of APIs. Just need those Animations to land. :D
Yeah it's kinda fun to think about the different ways you can structure your data to optimize for different problems you come across in your game. I'd agree, I think the "core" of ECS is pretty solid (of course there are many minor improvements that could/will be made) but then they still have a number of things to build on top of all that i.e. animation 😊
at first its different then you cant do without it
Is there a way to get all already existing values in shared component? Let's say I want to run a job for each mesh used by currently existing mesh renderers. Do I track all assignment manually or is there a convenient function?
Great question, yes there is! docs.unity3d.com/Packages/com.unity.entities@0.17/api/Unity.Entities.EntityManager.GetAllUniqueSharedComponentData.html
@@TurboMakesGames thanks!
Any reason to not use the RenderMeshUtility in initial RenderMesh creation?
Great question, and yes that is the correct way to setup the RenderMesh. For this tutorial I just wanted the focus to be on Shared Components
@@TurboMakesGames I'd brought it up in the discord, but I was mainly curious as I notice the RenderMeshUtility adds quite a bit of data to each entity. Though, I guess that may be the trade-off for highly configurable dynamic rendering? No clue.
@@jakehix8132 Hmm, yeah I haven't looked into it too closely, but it might lead to some interesting topics and discussions
hey can u make a video or series about networking in ECS
Great to know you're interested in that topic. Might be a while until I get to networking topics though, lots of important concepts to go over first 😊
Yo, I'm releasing a MMO I want to take on every other Space MMO in a few months. You want on board or later, let me know. I used some of your ECS knowledge!
Sounds ambitious! Glad to hear you've been finding these videos helpful 😀
You lie, there's no way you enjoy a book like 'Data Oriented Design by Richard Fabian'.
I read the first chapter a few months ago, it was interesting, but it started to get very technical fast which at times I felt lost. There's another publication on Data Oriented Programing through Manning publishing coming out soon. I hope to jump back into reading more about this framework. I look forward to these conversations.
😆😂😂 Fire, you've read it!?!
Thanks Dav, I'll take a look out for the Manning book!