As I'm literally just stepping into this game development and computer science world, and completely on my own, so much of this is hovering just over my head. But you did an excellent job explaining it, so it's hovering instead of flying.
@othmanalq9849 Жыл бұрын
yo man how you going so far?
@luluskuy7 ай бұрын
@@othmanalq9849 how about you man?
@othmanalq98497 ай бұрын
@@luluskuy i started learning godot a few months ago but im now taking a short break to play wow with my friends. Hopefully i wont have to relearn anything when im back😂😂😂
@CodeMonkeyUnity5 жыл бұрын
What example game genre/system would you like to see made with ECS?
@mehmedcavas30695 жыл бұрын
Hey, code monkey it would be cool if you would make an easy hyper-casual game with using ECS :) so it would be easier for us to understand what's going on and how to integrate it to other games. At least the basics :)
@Toxick1225 жыл бұрын
Could do a Tower Defense style game, Wave Spawner / Unit Pathing
@KeiNovak5 жыл бұрын
old-school RTS! But without the 200 unit cap!
@Hakohn25115 жыл бұрын
A Tower Defense or simple RTS with a ton of units moving simultaneously. Just like Toxick and KeiNovak said.
@danielmakac36865 жыл бұрын
a simple melee and range enemy Ai that can patrol, attack, defend, and follow the player.
@nenok15 ай бұрын
5:50 I like how the bus at top left corner is synced with "it requires this SLIGHT change in thinking"
@resistancefighter8885 жыл бұрын
Thank you so much for this video, everything was explained clearly and in detail.
@CodeMonkeyUnity5 жыл бұрын
Glad to hear it! I tried my best to explain it as clearly as possible.
@FuranTenshiFK4 жыл бұрын
@@CodeMonkeyUnity Yes, thank you so much!
@dharmeshkumar27635 жыл бұрын
I was really confused about ECS before. But now it is clear. Nice explanation
@soandsononame87505 жыл бұрын
Thanks man great video. I've watched hours and hours of unity presentations, and your relatively short playlist has helped me much more.
@CodeMonkeyUnity5 жыл бұрын
Awesome! Glad to hear it!
@Trombonaut2 жыл бұрын
This to be the best DOTS overview for brevity and clarity. Wish I'd found it first!
@trainee5560 Жыл бұрын
2:50 Oh gosh this is the best way for me to finally understand what ECS is about, watched some videos but could still get the fundemental idea of how this system works.
@CodeMonkeyUnity Жыл бұрын
I'm glad it helped!
@jdmozo3 жыл бұрын
The best indie game channel, love budy you always save me! ❤
@GoodNewsJim4 жыл бұрын
I love this video. It is exactly what I needed to move my massively multiplayer online computer game to DOTS. Threads are tough. Glad to try these job thingies.
@ZoKKeRFreAK3 жыл бұрын
So basically while IL2CPP had the inbetween step of going to c++, the burst compiler now is a direct way of going native. That is amazing. Lots of potential.
@beginnereasy2 жыл бұрын
That taxi game is blowing my mind... I remember when the news was s.t.a.l.k.e.r. would have one trillion polygons
@jeffenriquez9929 Жыл бұрын
Thank you! I really like how you included unity examples.
@r1s11124 жыл бұрын
Incredible explanation, clear and concise. Thank you.
@RyanZehm5 жыл бұрын
Thank you Mr. Monkey, this was well put together and explained clearly. :)
@kalita21274 жыл бұрын
you make it a lootttt more easier to understand mate!! sure unity already made some explanations about this but yours are much easier to follow
@hamzamustafa34914 жыл бұрын
Nicely explained...thank you
@CodeMonkeyUnity5 жыл бұрын
Check out the complete Unity ECS Tutorials Playlist: kzbin.info/aero/PLzDRvYVwl53s40yP5RQXitbT--IRcHqba
@DxBALLxD4 жыл бұрын
oh my god. Somehow, while I have such a rudimentary understanding of how to code; this still sounds like the exact heaven sent thing I've been looking for, I was born to learn this
@davidm.johnston89943 жыл бұрын
Hey man, this video is really helpful! Thank you for that!
@CodeMonkeyUnity3 жыл бұрын
I'm glad to hear it! Thanks!
@rickloyd82085 жыл бұрын
Awesome! Now going to continue with jobs tutorial! Thanks
@joeknap10 Жыл бұрын
This was a very well explained video for it being only 6 minutes long!
@CodeMonkeyUnity Жыл бұрын
I'm glad you found it helpful! Thanks!
@magnusm45 жыл бұрын
Since it focuses on performance then I would either like to see an RTS game or a more complex single player movement system done in multiplayer like a 3D platformer. I wish there was a Unity equivalent to GMOD. I've seen some videos on making LUA supported coding for Unity so modding could be a fun concept for any game. Imagine a game like C&C but someone mods or adds an FPS control system so you fight as a soldier. Then with DOTS you can have 32 or maybe even 64 players on a large map with one commander building the base while the rest duke it out. Highly performance requiring but hope for the future, if you don't make it a 2160p realistic lighting open world game
@pitchou83755 жыл бұрын
Really good explanation! Thank you!👍
@hansshadow3603 жыл бұрын
The use of structs over classes is very usefull, since structs are allocated in Stack and not the Heap, ECS use structs for organize data. This is a adventage whit the new paradigm.
@adoniakazemzadeh5 жыл бұрын
Finally I understand what is this exact;y. Thank you so much
@experiFilm3 жыл бұрын
Wow amazing 😯
@pedro-paint5 жыл бұрын
Thanks so much for explaining this!
@pdrval68055 жыл бұрын
Nice explanation.
@_denzy_63104 жыл бұрын
Awesome explanation. Its like UE4 but still well understood. Keep it up
@koordcoach Жыл бұрын
Awesome video, thnx
@marcingardyjan66804 жыл бұрын
It is not always possible to calculate paths on multithread. For example if path A and B collide. I have to calculate path for object A, then I can calculate path for object B knowing path for A - so the path for B takes into account path A and not collide with them. Similar path for object C takes into account path A and B, and so on :)
@tamatasoft99022 жыл бұрын
Nice DOTS explanation. Please make a video on DOTS app publishing on android. I tried with different DOTS versions but no luck.
@BunnyGunGames5 жыл бұрын
Good explanation, thanks!
@entertainmentoverloaded57003 жыл бұрын
Fantastic
@alec_almartson5 жыл бұрын
Thank you. Your explanation is very clear and easy to understand. By the way: I think It is very difficult to write a complete game from scratch in C# using the ECS Paradigm... BUT maybe it could be easier to just iterate over a prototype made in the "classic way" (MonoBehaviour, update(), lateupdate() like we are used to), to make It a 'decent' 'DOT product' (pun intended). I mean: FIRST Create Your Game without worrying about ECS... and THEN (when you are done): translate it to the ECS Architectural Pattern.
@laxya.76935 жыл бұрын
You rock code Mikey #respect
@TheBigMaxYT Жыл бұрын
Thanks, now I finally know what DOTS means 😂
@ChillinGames2 жыл бұрын
ohh, a multi thread lib and using a three component design pattern like MVC. I have experience from the enterprise side and i will say while MVC is fun to code, it can get very complicated on bigger projects and may not be the correct answer for them all. Its interesting that they packaged those two things together and didnt make them more of add ons to a project (since they seem to be championing the composite design style)
@dallinnguyen80254 жыл бұрын
well explanation, thank you
@CodeMonkeyUnity5 жыл бұрын
🤖Join the Community Discord discord.gg/eHjUVrm
@hacklabdesign4 жыл бұрын
What Scene is being shown with the flying cars?
@CodeMonkeyUnity4 жыл бұрын
That's the Unity DOTS Megacity demo
@reyizleroynuyo56715 жыл бұрын
Hey the best unity tutorial Chanel. Pls make a coin shop pls code monkey i Like you 😀😀😎😎🤩
@raghulponnusamy90345 жыл бұрын
Hi, loved your videos, can you please make a video on design pattern.
@CodeMonkeyUnity5 жыл бұрын
Yeah design patterns is something I'd like to cover, thanks!
@ReapeX2 жыл бұрын
Thank you
@Other-Stickman-Games3 жыл бұрын
Awesome
@ashwaniprajapati56354 жыл бұрын
you made interesting videos.
@tomicooltomi5 жыл бұрын
I'm writing my diploma thesis on ECS and usage in Unity. Any suggestions on books or articles on that topic?
@CodeMonkeyUnity5 жыл бұрын
I made a post on the Unity forums with a bunch of extra resources on ECS forum.unity.com/threads/video-tutorials-ecs-job-system-burst.687712/
@Kondensatorr5 жыл бұрын
How should I cope with procedural generation of world with new ECS system? Should I make WorldGenerator gamebobject? If my world if chunk-based should every chunk be an entity, or each tile of chunk would be an entity? Can I group entities?
@MAUREISHON5 жыл бұрын
Buen video amigo \ good video bro
@user-uk9er5vw4c Жыл бұрын
thanks man
@bittersweet40744 жыл бұрын
I don't quite understand why must we separate gameobject and give them invidual script so they can access each other, rather than attach those individual script in one game object, aren't it more neat than that? since the concept remain same.
@Misterlegoboy Жыл бұрын
so basicly we can use more foreach loops and stuff like that and we dont really have to worry about it?
@wertin2005 жыл бұрын
Can't wait on the tutorial
@MathsPlusGames5 жыл бұрын
Hello, Thank you for Video, I am new to programming, In-fact I am working on my first project (Strategy Game) and I was watching your "Control Units and Give Orders in Unity ECS!" Video which brought me here. I feel like Learning ECS while being a noob is a mistake? or do you think I should Learn this despite being new? Would it be extremely costly to do what you did in "Control Units and Give Orders in Unity ECS!" without using ECS? Thanks in advance
@CodeMonkeyUnity5 жыл бұрын
If you're completely new then learning the normal Object Oriented way might be simpler. It easier to wrap your head around how to interact with objects rather than just data.
@MathsPlusGames5 жыл бұрын
@@CodeMonkeyUnity Thank you so much for reply, Would it be possible for you to make the same guide without ECS "Control Units and Give Orders in Unity ECS". Cant seem to find any guide that did it as good as you did. Would greatly appreciate it. Thanks in advance
@CodeMonkeyUnity5 жыл бұрын
@@MathsPlusGames Hmm I haven't done something exactly like that but I did cover some basic unit control in the Gatherer AI series: kzbin.info/www/bejne/a5aWmIirr6aqgaM For doing the area selection the logic is mostly the same, get the lowerLeft and upperRight positions and find our what units are inside
@lemetamax5 жыл бұрын
Thank you for this video. I want to ask: Will this technology work fine with mobile? Specifically older phones. I started learning DOTS' ECS, burst compiler and Job system today.
@CodeMonkeyUnity5 жыл бұрын
Yes everything should work the same on Mobile. Just not sure how much of a performance improvement it will provide since Mobile CPUs have fewer cores.
@lemetamax5 жыл бұрын
I thought so too, it might just improve the performance by just a fraction.
@45hopefull4 жыл бұрын
Thank you for this and for your reply on my comment in your flappy bird vid i found a way to fix the problem. Also is it a good idea to start learning programming in ecs instead of the traditional way? Im still new to c# and programming in general but after i learn the basic can i straight jump into this?
@CodeMonkeyUnity4 жыл бұрын
If you're new definitely stick with normal Game Objects. DOTS is awesome but it's still in development so it should only be used for entertainment/research purposes and not really in actual production at the moment.
@rogercabo55458 ай бұрын
If I see this 7 years old mega city demo in 2024.. I got some electrical shocks in my brain..
@johnnythesilverhand5 жыл бұрын
awesome make more videos about new things that added to unity 19
@omeryilmaz1021 Жыл бұрын
is the system going to work on all entities or can we spesify the entities that system should work on?
@CodeMonkeyUnity Жыл бұрын
You can use EntityQueries to define which entities a system should be applied to
@miguelomp4 жыл бұрын
Could you tell that Systems are like Jobs but on main thread? I kind of understand but can not see the full view of differences between both paradigms
@CodeMonkeyUnity4 жыл бұрын
A ComponentSystem runs on the Main Thread. A JobComponentSystem can be made to run on a worker thread with Schedule(); or on the main thread with Run();
@rahultandon97494 жыл бұрын
Does unity permit the usage of EXPRESSION TREES IN C#
@Elnino20145 жыл бұрын
Hi Code Monkey! Do you know how the equipment system works? For example in Dark devotion, where when you equip another armor or set every animation changes depending on equipped set. I have all the sprites but i dont know how to change for example attack animation when i click attack button and set_2 is equipped (Always plays attack animation with set_1 )
@CodeMonkeyUnity5 жыл бұрын
That depends heavily on the particular animation system is working, every implementation is different. It could be as simple as modifying a sprite or a lot more complicated. If every equipment has very specific animations then the only way seems to be to individually create all those animations.
@Joooooooooooosh2 жыл бұрын
I'm not sure I follow this ECS benefit. Memory fragmentation is not a particularly important performance concern since addresses are virtual anyway. Is this a heap vs stack thing?
@CodeMonkeyUnity2 жыл бұрын
It's more of a "avoid cache misses" thing. If the memory is all sequentially aligned then the CPU will have much fewer cache misses as you iterate through hundreds or millions of components making it insanely fast.
@geri43675 жыл бұрын
My body is so ready. Let's get into the nitty gritty
@metaDeWeta3 жыл бұрын
What game is being played in the background?
@CodeMonkeyUnity3 жыл бұрын
That's the DOTS Megacity demo
@MadBunnyRabbit5 жыл бұрын
So basically it's MVVM for games?
@davidpak2713 жыл бұрын
I can't seem to find the Entities package to import, also couldn't access using Unity.entities thinking maybe its built into 2020 version. Can anyone explain if things have changed since this video was created please?
@CodeMonkeyUnity3 жыл бұрын
I haven't touched DOTS in quite a while but in Unity 2020 Preview packages are hidden by default and you need to go to the settings to even see them
@davidpak2713 жыл бұрын
@@CodeMonkeyUnity got it, thanks for the reply! I was wondering, I've been learning Unity on and off for a few years, am finally getting somewhere, but wondering if I should instead start over and learn DOTS, what do you think?
@CodeMonkeyUnity3 жыл бұрын
@@davidpak271 DOTS is still in experimental stage, if you're new to Unity don't touch DOTS, work with normal game objects
@halivudestevez23 жыл бұрын
entering into hardcore possibilities
@jaysistar27115 жыл бұрын
I think that saying "entities holds components" or "entities refer to components" is good for the mental model, but the machines's model is more like "entity is an index or key" (key as in key-value stores) to component storages. Component storages could be an array, a hashmap, or just a set (for "tag" components).
@vegitoblue21875 жыл бұрын
The burst compiler is out of preview. Can I get any use out of it for proper projects?
@CodeMonkeyUnity5 жыл бұрын
You can but the Job System is still in preview so it's really Burst only. The DOTS Core is meant to all come out of Preview this year so if your release date is over one year away you might consider writing your code in a way that makes it easy to swap to DOTS.
@vegitoblue21875 жыл бұрын
@@CodeMonkeyUnity so does burst have any benefits of its own without ECS and Jobs as this region is pretty much uncharted waters for me and the internet
@CodeMonkeyUnity5 жыл бұрын
Hmm not sure I've only used Burst in conjunction with Jobs. Maybe you could get some performance benefits by adding it to a struct formatted exactly like a job except without implementing IJob and just calling Execute(); on the main thread. Not sure if that would work.
@vegitoblue21875 жыл бұрын
@@CodeMonkeyUnity I'll give it a shot
@Zackmortar5 жыл бұрын
Make a networking Tutorial
@lauch88444 жыл бұрын
is the performance boost only on the cpu side?
@CodeMonkeyUnity4 жыл бұрын
Yes this is all to solve CPU bottlenecks, but theyre also working on URP and HDRP which have GPU performance improvements
@dreamspheree4 жыл бұрын
techmoan background music
@douglasg14b5 жыл бұрын
I keep hearing "C# Job System". Yet I can find not language specification for it, don't you mean Unity Job System?
@CodeMonkeyUnity5 жыл бұрын
Yes that is correct, it's Unity's C# Job System. They use the terms "Job System" "Unity Job System" and "C# Job System" interchangeably.
@jaulloa21 Жыл бұрын
This this feature integrated into unity?
@CodeMonkeyUnity Жыл бұрын
Yes, since version 2022 LTS Unity DOTS is now production ready
@Layarion4 жыл бұрын
this just sounds like interfaces and separation principle taken to a more serious level.
@williamknight24332 жыл бұрын
What's the game in te background ?
@CodeMonkeyUnity2 жыл бұрын
It's the Unity MegaCity demo, used to demonstrate a scene using DOTS with tons and tons of objects. Each building is composed of something like 100k game objects
@williamknight24332 жыл бұрын
@@CodeMonkeyUnity wow that sounds mad, thanks
@captainufo45875 жыл бұрын
So, the ECS is kinda like callbacks/delegates on steroids?
@CodeMonkeyUnity5 жыл бұрын
Hmm what part makes you think its like callbacks?
@captainufo45875 жыл бұрын
"OnUpdate" seems the typical callback function name. Plus, in your example you wrote that it runs on every entity with the component Position, for example. In a way, it seems to me like using the C# event system to handle classes interacting with each other. Am I wrong?
@CodeMonkeyUnity5 жыл бұрын
The name sounds like a Delegate but its actually a protected override void OnUpdate(); Still unsure exactly how it works, previously it would do something like foreach (Entity entity in GetEntities()) but apparently changed in 2019.1
The code shown in the video is just pseudocode, it's not an actual C# implementation All of the concepts, what is DOTS, what is ECS, what is a Component, System; all of those concepts are still the same. I just recently made a video covering the DOTS 1.0 syntax kzbin.info/www/bejne/fmjdcoKIlpiIrpI
@cap7ainskull5 жыл бұрын
is that a demo ? in 2019 ?
@CodeMonkeyUnity5 жыл бұрын
Yes the Megacity project sample was released last week.
@cap7ainskull5 жыл бұрын
Thank God I was waiting to play that demo and they released it good guy unity
@wothin5 жыл бұрын
Wait what is this game in the background?
@CodeMonkeyUnity5 жыл бұрын
It's the Unity Megacity Project created specifically to showcase the benefits of DOTS.
@wengel_eth5 жыл бұрын
So ECS is basically Unity CSS?
@CodeMonkeyUnity5 жыл бұрын
What makes you think that? CSS is a Style Language so not at all related to ECS. ECS is about writing your code with a Data Oriented mindset as opposed to the normal Object Oriented way.
@wengel_eth5 жыл бұрын
@@CodeMonkeyUnity Well, CSS has classes that you can mix and match when you apply them to the desired spot in HTML. You can create multiple classes that do different little things to make up one big thing. ECS seems kinda similar in that aspect.