Should You Use DOTS in 2024? (plus what is Unity ECS)

  Рет қаралды 37,054

Turbo Makes Games

Turbo Makes Games

Күн бұрын

🔽 Download Unity 2022 LTS - unity.com/releases/lts 🔽
📃 Unity Devblog - blog.unity.com/devblog 📃
🦅 Follow me on Twitter - / turbomakesgames 🦅
💬 Join our Discord community: tmg.dev/Discord 💬
🔴 Livestream with Dani: kzfaq.infoEWZ3cq7cims 🔴
💻 My Game Development Setup: tmg.dev/GameDevPC 💻
📸 My Camera Gear: tmg.dev/CameraGear 📸
🎮 Let me know what other topics you want to learn about 🎮
⌚ Time stamps for key topics ⌚
- 0:00 - Is DOTS Production Ready?
- 1:13 - What can you make with DOTS?
- 3:12 - Unity 2022 LTS + Dev Blog
- 4:07 - Livestream with Dani!
- 5:03 - Overview of DOTS packages
- 5:54 - Entities (ECS)
- 9:24 - Entities Graphics
- 10:15 - Netcode for Entities
- 12:10 - DOTS + Havok Physics
- 15:01 - C# Job System
- 17:50 - Collections
- 19:48 - Burst Compiler
- 20:57 - Mathematics
- 21:57 - When to use ECS
- 23:45 - When NOT to use ECS
- 23:28 - Packages to use with ECS
- 24:56 - Packages to use without ECS
- 26:53 - Downsides of DOTS
- 29:34 - THANK YOU!
🌐 Find Me Online! 🌐
📄 Blog: tmg.dev
👨‍💻 GitHub: github.com/JohnnyTurbo
🎮 Games: johnnyturbo.itch.io/
🦅 Twitter: / turbomakesgames
📺 Twitch: / turbomakesgames

Пікірлер: 91
@CodeMonkeyUnity
@CodeMonkeyUnity Жыл бұрын
Really excellent video! So much knowledge in 30 mins, awesome!
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Thank you so much Hugo, I really appreciate that! Hope all is going well with your game 😀
@Eculeus007
@Eculeus007 10 ай бұрын
Yes , HE is a fine teacher !
@googleuser4720
@googleuser4720 2 ай бұрын
What are you talking about?? No? This doesn't work in a multiplayer game. Theres literally no support for it (yet).
@markaldrich8753
@markaldrich8753 Жыл бұрын
I've been playing around with DOTS here and there since its inception, and it's a treat to finally "get it" enough to create gameplay! I'd like to write some tutorials for it as I learn new things, but there's a LOT of basics I still need to figure out first. God, I wish the documentation was better!
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Awesome, glad to hear you've hit your stride with DOTS development! Hope you do get to post some tutorials, the more the merrier! And out of curiosity, is there any particular part(s) of the documentation that are lacking for one reason or another?
@markaldrich8753
@markaldrich8753 Жыл бұрын
@@TurboMakesGames The issue I have is a lack of examples. Like SystemAPI is one of the most useful tools in simplifying a system, but NONE of its methods have examples showing how you would use them. It took me a few days just to find out how GetComponentLookup was supposed to be implemented with parallel jobs.
@daniel99631
@daniel99631 Жыл бұрын
I LOVE these kinds of videos! I'm finishing my IT thesis and doing an object vs. data-oriented design comparison in Unity. These videos help set everything for the general public, who may need to be more knowledgeable of data orientation, helping prepare my thesis defense much more accessible. Thanks a lot for the work!
@TurboMakesGames
@TurboMakesGames Жыл бұрын
So glad to hear this!! All the best with your thesis 😀
@LukeClemens
@LukeClemens Жыл бұрын
Good luck man!!
@MrPokemonlover56
@MrPokemonlover56 Жыл бұрын
Another great video! Was cool seeing you on the LTS stream!! Can't wait for you to dig into the weeds of projects made with DOTS!!
@ArkaidDeims
@ArkaidDeims Жыл бұрын
I've started a new game this year and I'm taking as a chance to learn DOTS. Your videos are helping a lot! Thanks a bunch! :D
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Congrats on starting development on your game, and glad to hear the DOTS videos have been helpful! Feel free to share progress on your game in our Discord community! tmg.dev/Discord
@armint9109
@armint9109 4 ай бұрын
Thanks! This was what I was looking for to understand what is DOTS. Amazing job!
@TurboMakesGames
@TurboMakesGames 4 ай бұрын
So glad to hear it, all the best 😀
@tufanaydin6340
@tufanaydin6340 Жыл бұрын
You are the best and only who making videos about DOTS and ECS. We needed this thank you so much...
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Glad you've been enjoying them 😀
@tufanaydin6340
@tufanaydin6340 Жыл бұрын
@@TurboMakesGames Actually DOTS ECS are very hard i am not getting "enjoy"... hahah but anyway thanks again
@Cosssstamcos
@Cosssstamcos 11 ай бұрын
Really good job!
@TurboMakesGames
@TurboMakesGames 11 ай бұрын
Thank you so much 😀
@HenOOXX
@HenOOXX Жыл бұрын
Thack you. Great Video!
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Glad you thought so 😊
@farvardinmainyu1961
@farvardinmainyu1961 Жыл бұрын
Thank you, Johnny.
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Absolutely, thanks for watching!!
@hanzhang4592
@hanzhang4592 2 ай бұрын
Great Vedio!
@Norritt42
@Norritt42 6 ай бұрын
What a great video. I have one CAD model with many complex submodels. Like up to 13 000. Would it be recomended to just transition that CAD model to DOTS or will it be a nightmare when interacting with it using the standard VR interaction system with grabbing and such. I can't move the entire project to DOTS as we have built a lot and now need to optimize for performance. Right now we are looking in to complex mesh baking and LODs.
@krishx007
@krishx007 11 ай бұрын
Superb tutorial..!! Thanks..!!
@TurboMakesGames
@TurboMakesGames 11 ай бұрын
You're welcome, glad it helped!
@LukeClemens
@LukeClemens Жыл бұрын
Excellent summary!! Looking forward to June 30 Q&A. Don't forget about Hostile Mars being a badass game built on DOTS.
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Thanks, it's gonna be a fun time 😀 Tuuue - any word on a release date!?!?
@LukeClemens
@LukeClemens Жыл бұрын
@@TurboMakesGames Probably not for a year or two. But it's currently on steam and people have testing and playing it a lot.
@LesP56
@LesP56 29 күн бұрын
Excellent Vid! Easy to understand for the somewhat hard of hearing. Question: It sounds like ECS would be ideal for larger, open world, multiplayer games...would I be correct in assuming this?
@TurboMakesGames
@TurboMakesGames 27 күн бұрын
Thank you so much! ECS certainly benefits the game types you discussed, but that is far from an exhaustive list. ECS can also work very well for smaller games with dynamic entity structures
@lemetamax
@lemetamax Жыл бұрын
Now that DOTS is fully supported for production, I want to start learning it. So will you be making an updated tutorial on it or has nothing significant changed from your last full DOTS tutorial?
@TheKr0ckeR
@TheKr0ckeR Жыл бұрын
+1 from me. I want to start learn the latest DOTS. I dont want to stuck with deprecated methods etc that is not used anymore. Since DOTS was on development, i am pretty sure there are significant changes
@TurboMakesGames
@TurboMakesGames Жыл бұрын
I certainly plan on making some more full tutorials, but those do take a long time. For now, the Zombies one is a great starting point and I've been keeping a blog post updated (linked in that video's description) that goes over any of the changes from that video to the most recent version of DOTS. Thankfully most of the changes are just minor API changes.
@TheKr0ckeR
@TheKr0ckeR Жыл бұрын
@@TurboMakesGames Then its certainly worth watching 1.0 version of it? I will go through and learn it, appreciated your effort!
@yudanaim6849
@yudanaim6849 Жыл бұрын
Very cool video
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Awesome, glad you thought so!!
@nickgennady
@nickgennady Жыл бұрын
I got a node tool I been working on for few days for procedural generation. I hope to let nodes use jobs system to speed things up.
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Oh that sounds sweet! Hope it works out for you! Feel free to share your tool in our Discord community or ask any questions if you need help - tmg.dev/Discord
@DamasoBruno
@DamasoBruno 2 ай бұрын
I'm creating a PONG-styled competitive game, and I really don't know what to choose, Netcode for Game Objects or Netcode for entities, what's better for this type of game?
@Qiwi94
@Qiwi94 11 ай бұрын
Great tutorial! So to be clear, ECS helps if you have a lot of objects that want to run logic, but if you just have a lot of objects with a lot of vertices ECS or DOTS is not the tool to increase performance?
@TurboMakesGames
@TurboMakesGames 10 ай бұрын
Really depends on what you are doing with things in the different scenarios you mentioned. But to generalize, ECS gives you optimizations for memory access and CPU processing, the DOD architecture does give you _some_ performance benefits when it comes to rendering, but not as significant of gains that you'll see on the CPU side. That being said, if you want to simulate all those vertices for say your own soft-body physics system, then DOTS/ECS will be great!
@jethdaflip7741
@jethdaflip7741 Жыл бұрын
Is DOTS Physics mainly for when you have multiple physics objects running or is it also for making one physics object run and look better? Does it help much with improving perfomance even if it's just for one character or vehicle? Can DOTS be used to optimize the terrain? Since, I notice unity's terrain has a performance issue.
@TurboMakesGames
@TurboMakesGames Жыл бұрын
It really depends on what you are doing with that one entity for the amount of performance increase you will see. If you aren't really doing anything too complex, then you probably won't see much of a performance benefit. However if you are constantly doing a bunch of raycasts, collider casts, or other physics checks then you'd probably see a more significant performance gain. What kinds of performance issues have you been having with terrain? Terrain in ECS works basically the same as it is just a large mesh. If you're running into issues because your terrain is too big, it might be worth it to break your terrain into smaller sections and load them in as needed. Or check out the Unity Asset Store, I know there are a lot of good high performance options for terrain there
@CiroContinisio
@CiroContinisio 3 ай бұрын
LOOOOL the opening comment cracked me up. Good one 😆
@TurboMakesGames
@TurboMakesGames 3 ай бұрын
😆😆😆 Hope you're doing well Ciro!!
@CiroContinisio
@CiroContinisio 3 ай бұрын
@@TurboMakesGames I am! Will I see you at GDC perhaps?
@TurboMakesGames
@TurboMakesGames 3 ай бұрын
@@CiroContinisio Yes I will be there!!
@blitzkreig4887
@blitzkreig4887 10 ай бұрын
Does DOTS/ECS affect Build size ? Fewer components should reduce the size of entities, but do you think its substantial enough to consider a switch ?
@TurboMakesGames
@TurboMakesGames 10 ай бұрын
I haven't seen it affect build size in any significant way. Build size mostly comes from assets (i.e. meshes, textures, audio clips, etc.) rather than entity data.
@skechinballs
@skechinballs 10 ай бұрын
so from information i've read, my understanding is that anyone can use havok physics but only the pro+enterprise versions have a further license fee to use it.
@zanebrant
@zanebrant 10 ай бұрын
Question: are most existing AssetStore assets compatible with ECS? I.e. can an asset made with conventional GameObjects be imported seamlessly into an ECS project?
@jonathansaindon788
@jonathansaindon788 9 ай бұрын
Unfortunately no, most code included in asset store products is monobehaviour. You would need to make a script bridging between the two worlds and there is no guarantee future updates won’t break your bridge script. I would probably try to make a custom minimum viable product of what you want in dots at this point.
@thanatosor
@thanatosor Жыл бұрын
In any cases that you guys fail to use DOTS on Unity, move to Rust/Bevy for free multi-threaded model.
@TurboMakesGames
@TurboMakesGames 11 ай бұрын
Rust/Bevy is a great option, I've heard lots of good things!
@heman922
@heman922 Жыл бұрын
Any update about dots pathfinding and animation?
@TurboMakesGames
@TurboMakesGames Жыл бұрын
According to the DOTS roadmap - unity.com/roadmap/unity-platform/dots - ECS animation is currently in development and ECS based navigation is under consideration for development. Though there are a bunch of 3rd party options for implementing animations in ECS projects - forum.unity.com/threads/dots-animation-options-wiki.1339196/ There are other assets for DOTS pathfinding as well, here is my favorite - assetstore.unity.com/packages/tools/ai/agents-navigation-239233?aid=1101l9vRP
@hoanglinhle4468
@hoanglinhle4468 8 ай бұрын
- I think every Dev should learn about multithread in general, not just DOTS specific. - imagine you build an RTS game with 400 units running around. Multi-thread will boost the fps like drug.
@MrScreamingPotato
@MrScreamingPotato Жыл бұрын
Your old tutorials are great but they are also kind of outdated, it's a pain to try and figure out differences between versions. Especially now that DOTS is fully released. Do you plan on making new small project tutorials on DOTS? Not complaining, just wondering.
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Yes absolutely! Is there anything specific you'd like to learn or have updated? or just want to see complete projects?
@dibaterman
@dibaterman Жыл бұрын
Also yes, this, not at him or the tutorials but rather at the instability of the resources, I'm dumb so following along is not going to work off the bat, I need to practice a lot. But then you find that TransformAspect is gone replaced with I believe it was LocalTransform and the so on, meh. My saving grace is on OOD I was getting into making my own stack data and learned how there were properties for that as well so understanding what DOTS was doing became easier.
@mracipayam
@mracipayam Жыл бұрын
@@TurboMakesGames I want to see complete projects man.
@orwell235
@orwell235 Жыл бұрын
@@TurboMakesGames I'd personally prefer you to take an existing game Vampires Survivor (that you made recently on GameJam) or diplomacy is not an option or starcraft etc and made a series of "DevLogs" where you actually show and teach how step by step from start to finish make the game using ECS approach (if it would be somehow multiplayer that would be awesome. I am sure Unitechs would like that as well):)
@Kasseenzettel
@Kasseenzettel Жыл бұрын
@@TurboMakesGames I'd also jump on the "completed project" train. Though, I suppose, it doesn't really have to be an actual completed project, I'm more so worried about the large void between "I can use ECS" and "I can actually make a fully polished game". With Unity rolling out actual documentation recently, getting to that first statement is no longer too daunting. But going to the second statement... How does one do animations and pathfinding or, the less talked about, particles and audio and UI and all the other things that a game needs but ECS doesn't really have an answer for. And how does one do that without just canceling out the whole ECS thing? Doesn't make much sense to just throw a particle system on all your entities, after all, because then you just do double the work and gain nothing. That's where I, personally, am at right now. I can make something resembling a game, but I can't make something worthy of steam. (Already wrote a better comment yesterday ,which appears to either be gone or never made it. Hmmm... Must've just pressed enter, rather than clicking save :
@DutchyChannel
@DutchyChannel 11 ай бұрын
As I understand, it might be easier to think of an 'Entity' as a 'Composition' instead; a composition of data components. Systems are merely responsible for manipulating the data components of these compositions.
@TurboMakesGames
@TurboMakesGames 11 ай бұрын
That's a good way to look at it!
@tiffanygabriel2311
@tiffanygabriel2311 11 ай бұрын
I lost interest when I found out animation wouldn't work with DOTS. Has that been changed? There were dozens of reasons that it interested me, but that one issue was enough to make me forget about it for a couple of years.
@TurboMakesGames
@TurboMakesGames 11 ай бұрын
There isn't yet a "Native ECS-Based" animation solution, however there are a ton of options to get animations working with DOTS. Here is a comprehensive list: forum.unity.com/threads/dots-animation-options-wiki.1339196/
@lockyaw
@lockyaw Жыл бұрын
...and 50 cent bulletproof. LMAO
@TurboMakesGames
@TurboMakesGames Жыл бұрын
A truly groundbreaking game in its own right.
@simonnordon8421
@simonnordon8421 Жыл бұрын
I love that you make these videos and are pretty much carrying DOTS solo. I will not use it for the foreseeable future. Unity's success is that it's easy to use, and that it's C# OOP. Which means any C#, Java, Python or JS developer can jump in and fairly quickly get the hang of it. I wish they would spend more time improving what they already have instead of coming out with new products which are usually worse than the original (UI Toolkit, New Input System). If they focused on OOP they could support inspector Interfaces and actually give Dependency Injection a proper go (they continually use 3rd party DI frameworks in official unity apps). Unity Dots is never going to be as fast as Rust so I don't know why they're putting all this effort to have a convoluted new language (HPC) with new syntax that is only applicable to this one very specific application. Just a really bad business move from Unity over all.
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Appreciate the perspective! Though I don't necessarily agree that working on DOTS is taking away focus or resources from regular OOP Unity as there are dedicated teams for DOTS and many of those people were hired due to their knowledge of data-oriented design. Sure there are still plenty things in regular Unity that need to be improved, but those teams are still intact as well. I think Unity DOTS has been great and there isn't really anything else in the market like it that gives you both high-performance and a full suite of development tools. Most if not all of the developers I've talked to who use it said their idea simply would not be possible without DOTS.
@mracipayam
@mracipayam Жыл бұрын
Are you gonna make other example games with ECS course?
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Yep! The complete projects take a ton of time, but I'll be in a position where I can start working on the next one soon!
@dibaterman
@dibaterman Жыл бұрын
I'll be honest, it feels hacky. Putting the RW and RO stuff aside it's very much like the wild wild west when it comes to declaration usage. With that said it's verging on being its own language so in a way a person using DOTS couldn't directly translate that to any other engine. The overall DOD is similar but the definitions of things are uniquely Unity. At least that's my take away.
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Totally agree on that learning DOTS is akin to learning a new language. And yes, everything is VERRRY Unity specific, but at least for me, I don't think I'd ever put myself in a situation where I'd want to port a project over to a new engine without doing a ground up rebuild anyhow.
@RoffeDH
@RoffeDH Жыл бұрын
Should have called the video "DOTS and DON'TS" Sad.
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Gah! I'll have to save that one for DOTS 2.0 😉
@RoffeDH
@RoffeDH Жыл бұрын
@@TurboMakesGames great shame to miss such an opportunity. God help you! 😅
@radwl
@radwl 9 ай бұрын
Nowadays, the question (unfortunately) is if you should even use Unity at all.
@richardbeare11
@richardbeare11 2 ай бұрын
From a pragmatic perspective, Unity still has a lot to offer -when considering pros/cons - benefits/trade-offs with other options. If your game/app release timeline is short, you are less at risk of Unity dropping the ball. My gut: very low risk. I'f you're developing a large AAA game, and/or, say, a 3+ year project, then you'd be considering a different higher risk factor. Just one way to think of it. DOTS+ECS is pretty substantial, and considering if you already have unity expertise, you are at a significant advantage.
@DCXCIII
@DCXCIII 10 ай бұрын
Should you use Unity Dots? Sponsored by Unity...I wonder what the conclusion is going to be
@TurboMakesGames
@TurboMakesGames 10 ай бұрын
What was the conclusion?
@googleuser4720
@googleuser4720 2 ай бұрын
You couldnt use this in any kind of multiplayer game. So dont watch it
@jackreacher963
@jackreacher963 8 ай бұрын
Answer is no because you shouldn't use Unity at all.
@klinkclang
@klinkclang Жыл бұрын
Is your DOTS 1.0 prerelease tutorial (zombie brain game) still applicable to current release version? I'd love to take a nose dive into DOD as someone whose pretty much only ever done OOP.
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Yep! It is still a great place to start. There have been some minor API changes, but I've been keeping a blog post updated (linked in the comments/description of that video) detailing the changes. All the best!!
Data-Oriented Input in Unity ECS - DOTS + Input System 2023
19:24
Turbo Makes Games
Рет қаралды 14 М.
So you want to make a Game Engine!? (WATCH THIS before you start)
14:39
Giant Sloth Games
Рет қаралды 273 М.
ОСКАР ИСПОРТИЛ ДЖОНИ ЖИЗНЬ 😢 @lenta_com
01:01
ИРИНА КАЙРАТОВНА - АЙДАХАР (БЕКА) [MV]
02:51
ГОСТ ENTERTAINMENT
Рет қаралды 14 МЛН
Получилось у Вики?😂 #хабибка
00:14
ХАБИБ
Рет қаралды 7 МЛН
TOP 10 NEW Systems and Tools JUNE 2024! | Unity Asset Store
7:44
Should you use Unity 6 to develop your Game?
25:28
DarkDax
Рет қаралды 39 М.
We Made VAMPIRE SURVIVORS in 2 Engines - Unity & Bevy
19:19
Turbo Makes Games
Рет қаралды 31 М.
Clean Code is SLOW But REQUIRED? | Prime Reacts
28:22
ThePrimeTime
Рет қаралды 282 М.
Making Boids with Unity ECS - The Hot Path Show Ep. 13
2:03:02
Turbo Makes Games
Рет қаралды 896
Game Prototype 009 UNITY ECS Player Camera
23:37
Brundlethwaite
Рет қаралды 366
Easy Pathfinding for ECS and MONO [Agents Navigation Asset Review]
16:19
Turbo Makes Games
Рет қаралды 13 М.
Unity ECS 1.0 Full Project Tutorial | Step-by-Step 🧟‍♂️
2:27:31
Turbo Makes Games
Рет қаралды 130 М.
Ascii Elden Ring??? | Prime Reacts
32:49
ThePrimeTime
Рет қаралды 83 М.
ОСКАР ИСПОРТИЛ ДЖОНИ ЖИЗНЬ 😢 @lenta_com
01:01