✅ Get my DOTS RTS Course! cmonkey.co/dotscourse 💬 Learn how to get MASSIVE PERFORMANCE to build any game you can imagine! Write code that runs 260x FASTER!
For anybody unsure if to purchase the course: I’ve been using Unity for years and know my way around C#, but DOTS always felt like a hurdle I couldn’t get over. I finally bit the bullet and paid for a course, and honestly, it’s been worth every cent. It’s really helped me kickstart my DOTS journey and made everything click. Totally recommend it for anyone struggling to get started with DOTS
Dots and ecs is winning me over... in my game due to heavy pivoting and all I stumbled on a solution that demanded 3600 objects on one map... So I tried to implement movement sync and graphics through dots... blazing fast, my pc struggled with regular objects... but this saved the game so far.
@@CodeMonkeyUnity I was extremely sceptical, it was really last ditch effort... but now I'm blown away!!! was on the tip to buy your course on ecs, but managed to get through it :D ;)
A few years ago I implemented my own ECS / DOTS like system in a different game engine. The experience made me realize just how inefficient most software is these days. Essentially CPUs and GPUs have become blazingly fast but software development practices have moved in the opposite direction. The way we usually build software with object oriented design is counter productive to how CPUs like to process data resulting in a lot of wasted CPU cycles. Now to be fair, I'm not saying all software needs to be blazingly fast and run in 0.24ms but at the same time it's a shame to realize that our computers are not nearly as slow as we're lead to believe. On the upside, it is kind of exciting to realize that the hardware is not really the limiting factor in building amazing software.
It definitely is amazing looking at the results of basically the same code using Game Objects vs Entities and how much faster it is. The hardware is the same, but thanks to all the clever memory stuff in the background it runs much faster
The course looks great! Next time I feel the urge to do some game dev I'll definitely pick it up! Your cooking game course was delightful. I have an idea for an rts in space which uses all three dimensions, I imagine modifying the grid to calculate x,y,z would be fairly straightforward. If I wanted to add gravity to the equation that could be done by adjusting how the best scores are calculated right?
Yup you would just basically stack grids on top of one another to have a third dimension Then for the algorithm you would only need to modify the GetNeighbours(); function to also grab neighbours above and below And yup you could make the cost higher as the gird positions are on a higher Y to basically encourage ships to drive on the bottom part as if it were gravity
If you are interested, I did implementation of your a* pathfinding video in ECS and I could show you. With of course implementation to 3D space but movement on one layer for a platform game.
will your dots course include DOTs multiplayer, because I dont see it in the listed learned topics for DOTs and I will buy it instantly if it does. Personaly I would rather get it on UDEMY as I have a bunch of courses there already but if this really helps you out then i could make an acception
I am developing a real-time strategy (RTS) game. In my game, I can build a command tent, a worker hut, a garrison that can build troops, and an archer tower that damages enemies and can also train archer troops. I have just started development on the project, and in the future, I will add more buildings, troop types, and enemy types that will attack the castle and try to destroy the command tent. I have not fixed the total number of troops I can train at this moment. Are DOTS compulsory for my game? I may add Unity multiplayer features, such as a dedicated server. Is there a way I can build this type of game without DOTS? If yes, how many total troops, enemies, and buildings can Unity handle in a scene that is currently rendering in the camera view?
Obviously, DOTS is needed for large RTS things or a fluid sim, but do you think Flow Field could still be useful outside of DOTS? Would you consider making a standalone video on that with a reference to the DOTS version?
Making a flow field is easy. TurboMakesGames has a tutorial on a non-DOTS flow field system (which he uses to compare to another flow field tutorial using DOTS). Keep in mind, the tutorials are fairly old (back when DOTS was in its infancy). The primary benefit to using DOTS is the speed of calculating the flow field. After that, the data is stored in an array and accessing it is super-fast regardless of whether its DOTS or non-DOTS. In fact, you can use DOTS to create the flow field and access it using normal GameObjects. Remember, you can use DOTS and GameObjects together. You don't have to stick with one or the other. DOTS can be great for doing calculation heavy tasks and you can use the simplicity of GameObjects for everything else.
Flow field is just another way of doing pathfinding, most games use A* but Flow field also has it's use cases. And flow field can be used with or without DOTS, for example Supreme Commander uses Flow field pathfinding If you have a fixed end point then flowfield can be better than A* even for just a handful of units. I would definitely like to make a standalone DOTS pathfinding video, maybe flowfield or maybe A*, not sure
can you please make a full in depth tutorial on how to make a multiplayer game with the steam multiplayer api, because I'm making a game that uses your steam account (it will be on steam) and has proximity chat + text chat for people who don't have microphones. I'd appreciate it if you could make a tutorial on this because every other tutorial is always to hard to understand or just straight up doesn't work. Have a good day, you're amazing!
One question regarding bestCost: Did I understand it correctly that you add up all grid positions one by one their costs to the bestCost so that at the end you know which way is the fastest? If so, did your byte type for bestCost does not overflow (255 + 1 = 0) and thus result in perhaps not the best path than another?
Yup the answer to that is walls are simply ignored, they are completely unwalkable so it doesn't overflow. However later on there is an interesting lecture where I experiment with making walls walkable but very costly, and in that case yup to make that happen I had to swap bestCost to int to avoid overflow
For making it easier to use IJobEntity for cycling through all of them. Although yup making a linear array is absolutely another valid option. You could do that and use IJobFor to make it super fast.
Hey codemonkey, can you make a video how to use GameObjects that navigate towards the player (run every frame pathfinding function like A*) and that function calls run in DOTS? GameOBject + DOTS + BurstCompiler, but without the ECS stuff as much as possible.. I think you had a video with that topic, but maybe it needs an update with Unity 6 coming out with newest DOTS version?
That used to be a limitation before 1.0 but no longer, you can now have NativeArrays inside components. DynamicBuffers is the way to go if you want to use queries, for example the Unit Queue in the Barracks is stored with a DynamicBuffer
@@CodeMonkeyUnity That must be a recent 1.3 update(I'll probably have to look at the changelogs). Because I started using dots last year when 1.0 was officially released. In my current dots game, I started with 1.2 and I couldn't use NativeArrays in an IComponentData. Regardless, this is helpful, I will try it out soon.
@@CodeMonkeyUnity I'm new to entities, but in 1.3 I still can't if the component is baked through an authoring component which one would do if you want to specify a width, height, and grid object size at edit-time. Where/how are you authoring the values for width, height, and grid object size? I've only been able to do it if you use a separate IComponent, hard code values, or use a SystemBase to get them from a monobehaviour.
Sadly Udemy has some very restrictive rules that prevent me from putting my courses on there. Now I'm trying to make sure all my courses have a substantial free version of some sort. For example my C# course has the video lectures completely free, the premium version has a bunch of extra bonuses. For the DOTS course I intend to make a free sample of about 6 hours, on Udemy that is not allowed. You cannot have a paid course that has a free version available that is more than 2 hours long. Udemy also has very strict pricing rules, all courses must be $20 which makes it impossible to do more niche courses like the DOTS course. And Udemy has a pretty terrible deal for course creators where if someone buys a course without being through my direct link I only keep about 20%. Meaning when someone buys one of my courses on Udemy for $20 I end up keeping just $1 to $4.
Man, can you do payment plans? XD I really enjoy your content and want to do this course, i have the ones on udemy already, but in my country the dollar conversion is just wayyy too much and this is quite expensive, rightfully so though you always put a lot of effort in these, but jsut want to know if there are options on payment like a monthly thing or something similar
Hi, another great video and the course it is interesting. I was thinking maybe you can create a tutorial how to use unity sentis to create an AI NPCs that generate dialogs based on its knowledge database? I saw a video for the Inworld AI ruclips.net/video/gUCahPSAut4/видео.html but right now it don't exist in the asset store and I dont want to integrate the chatGPT so I was wondering maybe I can create an AI with similar abilities but using instead the Unity Sentis. What do you think about it? Also is there a tutorial how to create models for Unity sentis?
Sadly Udemy has some very restrictive rules that prevent me from putting my courses on there. Now I'm trying to make sure all my courses have a substantial free version of some sort. For example my C# course has the video lectures completely free, the premium version has a bunch of extra bonuses. For the DOTS course I intend to make a free sample of about 6 hours, on Udemy that is not allowed. You cannot have a paid course that has a free version available that is more than 2 hours long. Udemy also has very strict pricing rules, all courses must be $20 which makes it impossible to do more niche courses like the DOTS course. And Udemy has a pretty terrible deal for course creators where if someone buys a course without being through my direct link I only keep about 20%. Meaning when someone buys one of my courses on Udemy for $20 I end up keeping just $1 to $4.
It's funny you mention that, for this video I made 3 thumbnails and AB tested them, one is handmade and 2 with AI. The AI ones both have better stats. Like I've said before, using AI for thumbnails helps me spend more time on what actually matters which is the content inside the video. So if it helps me save time AND has better CTR/AVD then that's an awesome tool.
It's funny you mention that, for this video I made 3 thumbnails and AB tested them, one is handmade and 2 with AI. The AI ones both have better stats. Like I've said before, using AI for thumbnails helps me spend more time on what actually matters which is the content inside the video. So if it helps me save time AND has better CTR/AVD then that's an awesome tool.
It's funny you mention that, for this video I made 3 thumbnails and AB tested them, one is handmade and 2 with AI. The AI ones both have better stats. Like I've said before, using AI for thumbnails helps me spend more time on what actually matters which is the content inside the video. So if it helps me save time AND has better CTR/AVD then that's an awesome tool.
@@CodeMonkeyUnity hey good for you! if stats and efficiency is what you're trying to solve for go ahead and do it. my point is that AI steals content from creators, is bad for the environment, and is being trained by irresponsible companies that have no interest in the ethical, economic, and political issues at hand. for me its a matter of integrity, and i was disappointed in seeing you using a tool I have very little respect for (see the reasons above). maximum growth isnt everything, you used to be cool.
@CodeMonkeyUnity AI is stolen labor. If the thumbnails you make aren't good enough, either learn to make better ones, or hire someone who can. The fact you're increasing your profits and productivity by stealing from people doesn't make it better, arguably it makes it worse.
If you find a 2 hour free video going step by step implementing flow field pathfinding in DOTS then that's awesome! I've got mountains of free knowledge including free courses completely for free here on my channel, the way I can afford to give away 99% of my knowledge is to charge for the remaining 1%. If I did not have any paid courses at all then this channel would not exist. For example this video is going to generate about $5, I cannot afford to spend 5 months working on a step by step course and make $5 from it.
✅ Get my DOTS RTS Course! cmonkey.co/dotscourse
💬 Learn how to get MASSIVE PERFORMANCE to build any game you can imagine!
Write code that runs 260x FASTER!
For anybody unsure if to purchase the course: I’ve been using Unity for years and know my way around C#, but DOTS always felt like a hurdle I couldn’t get over. I finally bit the bullet and paid for a course, and honestly, it’s been worth every cent. It’s really helped me kickstart my DOTS journey and made everything click. Totally recommend it for anyone struggling to get started with DOTS
Thanks for the kind words, I'm glad you found the learning curve nice and smooth!
@CodeMonkeyUnity Honestly, thanks to you!
oh thats awesome!
Dots and ecs is winning me over... in my game due to heavy pivoting and all I stumbled on a solution that demanded 3600 objects on one map... So I tried to implement movement sync and graphics through dots... blazing fast, my pc struggled with regular objects... but this saved the game so far.
DOTS is super impressive!
@@CodeMonkeyUnity I was extremely sceptical, it was really last ditch effort... but now I'm blown away!!! was on the tip to buy your course on ecs, but managed to get through it :D ;)
A few years ago I implemented my own ECS / DOTS like system in a different game engine.
The experience made me realize just how inefficient most software is these days. Essentially CPUs and GPUs have become blazingly fast but software development practices have moved in the opposite direction. The way we usually build software with object oriented design is counter productive to how CPUs like to process data resulting in a lot of wasted CPU cycles.
Now to be fair, I'm not saying all software needs to be blazingly fast and run in 0.24ms but at the same time it's a shame to realize that our computers are not nearly as slow as we're lead to believe. On the upside, it is kind of exciting to realize that the hardware is not really the limiting factor in building amazing software.
It definitely is amazing looking at the results of basically the same code using Game Objects vs Entities and how much faster it is. The hardware is the same, but thanks to all the clever memory stuff in the background it runs much faster
I wasn't expecting to see 3 free lectures when I clicked on this video.
The course looks great! Next time I feel the urge to do some game dev I'll definitely pick it up! Your cooking game course was delightful.
I have an idea for an rts in space which uses all three dimensions, I imagine modifying the grid to calculate x,y,z would be fairly straightforward. If I wanted to add gravity to the equation that could be done by adjusting how the best scores are calculated right?
Yup you would just basically stack grids on top of one another to have a third dimension
Then for the algorithm you would only need to modify the GetNeighbours(); function to also grab neighbours above and below
And yup you could make the cost higher as the gird positions are on a higher Y to basically encourage ships to drive on the bottom part as if it were gravity
If you are interested, I did implementation of your a* pathfinding video in ECS and I could show you.
With of course implementation to 3D space but movement on one layer for a platform game.
will your dots course include DOTs multiplayer, because I dont see it in the listed learned topics for DOTs and I will buy it instantly if it does. Personaly I would rather get it on UDEMY as I have a bunch of courses there already but if this really helps you out then i could make an acception
I am developing a real-time strategy (RTS) game. In my game, I can build a command tent, a worker hut, a garrison that can build troops, and an archer tower that damages enemies and can also train archer troops. I have just started development on the project, and in the future, I will add more buildings, troop types, and enemy types that will attack the castle and try to destroy the command tent. I have not fixed the total number of troops I can train at this moment.
Are DOTS compulsory for my game? I may add Unity multiplayer features, such as a dedicated server. Is there a way I can build this type of game without DOTS? If yes, how many total troops, enemies, and buildings can Unity handle in a scene that is currently rendering in the camera view?
Obviously, DOTS is needed for large RTS things or a fluid sim, but do you think Flow Field could still be useful outside of DOTS? Would you consider making a standalone video on that with a reference to the DOTS version?
Making a flow field is easy. TurboMakesGames has a tutorial on a non-DOTS flow field system (which he uses to compare to another flow field tutorial using DOTS). Keep in mind, the tutorials are fairly old (back when DOTS was in its infancy). The primary benefit to using DOTS is the speed of calculating the flow field. After that, the data is stored in an array and accessing it is super-fast regardless of whether its DOTS or non-DOTS. In fact, you can use DOTS to create the flow field and access it using normal GameObjects.
Remember, you can use DOTS and GameObjects together. You don't have to stick with one or the other. DOTS can be great for doing calculation heavy tasks and you can use the simplicity of GameObjects for everything else.
Flow field is just another way of doing pathfinding, most games use A* but Flow field also has it's use cases. And flow field can be used with or without DOTS, for example Supreme Commander uses Flow field pathfinding
If you have a fixed end point then flowfield can be better than A* even for just a handful of units.
I would definitely like to make a standalone DOTS pathfinding video, maybe flowfield or maybe A*, not sure
can you please make a full in depth tutorial on how to make a multiplayer game with the steam multiplayer api, because I'm making a game that uses your steam account (it will be on steam) and has proximity chat + text chat for people who don't have microphones. I'd appreciate it if you could make a tutorial on this because every other tutorial is always to hard to understand or just straight up doesn't work. Have a good day, you're amazing!
he he he, will you now take these dots and implement Bezier' Curves for individual paths to follow? ... Please? Details man, details, lots of details.
One question regarding bestCost: Did I understand it correctly that you add up all grid positions one by one their costs to the bestCost so that at the end you know which way is the fastest? If so, did your byte type for bestCost does not overflow (255 + 1 = 0) and thus result in perhaps not the best path than another?
Yup the answer to that is walls are simply ignored, they are completely unwalkable so it doesn't overflow.
However later on there is an interesting lecture where I experiment with making walls walkable but very costly, and in that case yup to make that happen I had to swap bestCost to int to avoid overflow
Are we gonna get free version of course in future?
Probably not
And i also feel like its worth the money
just buy the course
@@cppcompile 🥲
yes, when its finished the first 10 hours are comming to youtube
Yes in the future I will post about the first 6 hours of the course as a free video
It might be answered in the full course, but why is the grid built of discrete entities instead of neatly packing all the data in linear arrays?
For making it easier to use IJobEntity for cycling through all of them.
Although yup making a linear array is absolutely another valid option. You could do that and use IJobFor to make it super fast.
Hey codemonkey, can you make a video how to use GameObjects that navigate towards the player (run every frame pathfinding function like A*) and that function calls run in DOTS? GameOBject + DOTS + BurstCompiler, but without the ECS stuff as much as possible.. I think you had a video with that topic, but maybe it needs an update with Unity 6 coming out with newest DOTS version?
could anyone suggest me any good tutorial about chopping trees, thanks.
I'm confused...how did you not get an error using a NativeArray in an IComponentData? I thought unity says to use a dynamic buffer instead.
That used to be a limitation before 1.0 but no longer, you can now have NativeArrays inside components.
DynamicBuffers is the way to go if you want to use queries, for example the Unit Queue in the Barracks is stored with a DynamicBuffer
@@CodeMonkeyUnity That must be a recent 1.3 update(I'll probably have to look at the changelogs). Because I started using dots last year when 1.0 was officially released. In my current dots game, I started with 1.2 and I couldn't use NativeArrays in an IComponentData.
Regardless, this is helpful, I will try it out soon.
@@lemetamax Did you bake the NativeArray to an Entity?
@@hoangtongvu9952 yes
@@CodeMonkeyUnity I'm new to entities, but in 1.3 I still can't if the component is baked through an authoring component which one would do if you want to specify a width, height, and grid object size at edit-time. Where/how are you authoring the values for width, height, and grid object size? I've only been able to do it if you use a separate IComponent, hard code values, or use a SystemBase to get them from a monobehaviour.
Hi is this going to be available on Udemy?
Sadly Udemy has some very restrictive rules that prevent me from putting my courses on there.
Now I'm trying to make sure all my courses have a substantial free version of some sort. For example my C# course has the video lectures completely free, the premium version has a bunch of extra bonuses. For the DOTS course I intend to make a free sample of about 6 hours, on Udemy that is not allowed. You cannot have a paid course that has a free version available that is more than 2 hours long.
Udemy also has very strict pricing rules, all courses must be $20 which makes it impossible to do more niche courses like the DOTS course.
And Udemy has a pretty terrible deal for course creators where if someone buys a course without being through my direct link I only keep about 20%. Meaning when someone buys one of my courses on Udemy for $20 I end up keeping just $1 to $4.
Man, can you do payment plans? XD I really enjoy your content and want to do this course, i have the ones on udemy already, but in my country the dollar conversion is just wayyy too much and this is quite expensive, rightfully so though you always put a lot of effort in these, but jsut want to know if there are options on payment like a monthly thing or something similar
Yup I just added a 4x plan, thanks!
@@CodeMonkeyUnity Oh wow, that is amazing thanks, gonna get that the moment i am home! 🥳
Hi, another great video and the course it is interesting. I was thinking maybe you can create a tutorial how to use unity sentis to create an AI NPCs that generate dialogs based on its knowledge database? I saw a video for the Inworld AI ruclips.net/video/gUCahPSAut4/видео.html but right now it don't exist in the asset store and I dont want to integrate the chatGPT so I was wondering maybe I can create an AI with similar abilities but using instead the Unity Sentis. What do you think about it? Also is there a tutorial how to create models for Unity sentis?
udemy pls
Sadly Udemy has some very restrictive rules that prevent me from putting my courses on there.
Now I'm trying to make sure all my courses have a substantial free version of some sort. For example my C# course has the video lectures completely free, the premium version has a bunch of extra bonuses. For the DOTS course I intend to make a free sample of about 6 hours, on Udemy that is not allowed. You cannot have a paid course that has a free version available that is more than 2 hours long.
Udemy also has very strict pricing rules, all courses must be $20 which makes it impossible to do more niche courses like the DOTS course.
And Udemy has a pretty terrible deal for course creators where if someone buys a course without being through my direct link I only keep about 20%. Meaning when someone buys one of my courses on Udemy for $20 I end up keeping just $1 to $4.
Your whole teachable service seems to be down for me
Hmm strange it seems fine on my end. The course page or the lectures page? Maybe the server just went down for a few seconds
@@CodeMonkeyUnity its online now! Thanks for checking, i couldnt connect to it (404) for atleast an hour or two.
Not a fan of the AI for the thumbnail
It's funny you mention that, for this video I made 3 thumbnails and AB tested them, one is handmade and 2 with AI. The AI ones both have better stats.
Like I've said before, using AI for thumbnails helps me spend more time on what actually matters which is the content inside the video. So if it helps me save time AND has better CTR/AVD then that's an awesome tool.
@@CodeMonkeyUnity Nice thread! I had no idea thumbnail mattered so much! And I had no idea this one was using an AI!
It's not a tool it's theft@@CodeMonkeyUnity
AI generated clickbait thumbnail was a bit lazy and dissapointing
It's funny you mention that, for this video I made 3 thumbnails and AB tested them, one is handmade and 2 with AI. The AI ones both have better stats.
Like I've said before, using AI for thumbnails helps me spend more time on what actually matters which is the content inside the video. So if it helps me save time AND has better CTR/AVD then that's an awesome tool.
honestly the AI thumbnail is kind of disappointing. you can do better.
It's funny you mention that, for this video I made 3 thumbnails and AB tested them, one is handmade and 2 with AI. The AI ones both have better stats.
Like I've said before, using AI for thumbnails helps me spend more time on what actually matters which is the content inside the video. So if it helps me save time AND has better CTR/AVD then that's an awesome tool.
@@CodeMonkeyUnity hey good for you! if stats and efficiency is what you're trying to solve for go ahead and do it. my point is that AI steals content from creators, is bad for the environment, and is being trained by irresponsible companies that have no interest in the ethical, economic, and political issues at hand. for me its a matter of integrity, and i was disappointed in seeing you using a tool I have very little respect for (see the reasons above).
maximum growth isnt everything, you used to be cool.
@CodeMonkeyUnity AI is stolen labor. If the thumbnails you make aren't good enough, either learn to make better ones, or hire someone who can. The fact you're increasing your profits and productivity by stealing from people doesn't make it better, arguably it makes it worse.
Why should someone pay for your course, if you steal people's work with AI? Might as well pirate your course.
What? The game assets were either made by me or Synty and I asked Synty for permission to use a handful of their assets in the game.
thanks for wasting my time, I can just google a youtube video about flow field pathfinding and find somebody explaining it for free...
If you find a 2 hour free video going step by step implementing flow field pathfinding in DOTS then that's awesome!
I've got mountains of free knowledge including free courses completely for free here on my channel, the way I can afford to give away 99% of my knowledge is to charge for the remaining 1%. If I did not have any paid courses at all then this channel would not exist. For example this video is going to generate about $5, I cannot afford to spend 5 months working on a step by step course and make $5 from it.
after 1 video you will be have 1000 video in your channel. I wanted to notificate you
You welcome
It's crazy how it's been 6 years since I started doing this! Time flies!