Connecting the DOTS: Let’s make a game with Entities | Unite 2024

  Рет қаралды 9,510

Unity

Unity

Күн бұрын

Пікірлер: 32
@lotwar
@lotwar 2 ай бұрын
this is probably the best introduction video on DOTS I've seen!
@leonidus101
@leonidus101 2 ай бұрын
The best ECS/DOTS intro I have seen in 5 years.. and that components have gone a long way in the right direction, but it is still weird and confusing af. Build subscene in a scene to just get a "mapping" between Entities and GameObjects? And then we have animations and audio and that brings me to the conclusion: except I have a massive game with huge amount of objects in the scene on mobile or want to calculate for them A* path, I would go for the traditional GameObject oriented logic and mechanics, they are as intuitive as any other object oriented language (at least the most popular ones) and gets in 99% of non-RTS games the job done with 30-60fps! Please, never drop the support for the "old" GameObjects and MonoBehaviours!
@DanielKierkegaardAndersen
@DanielKierkegaardAndersen 2 ай бұрын
@@leonidus101 thanks! And yeah there's currently no plans of getting rid of GameObjects, and MonoBehaviours, as they are the quicker way to iterate on most games. However ideally over time that gap closes and you can pick whatever suits the problem you're currently looking at at any given time in your game. Some features lend themselves well to quickly composing behaviour based on a set of components while other games/mechanics just want a quick way to create a component with some behaviour and quickly be able to add it to the object in the game. In the future when GameObjects are also Entities you'll be able to add componentdata directly to your GameObjects, skipping the need for baking entirely in most simple cases, by which point you might notice some features become easier to implement in ECS than normal GameObject land, and that way you don't have to sacrifice performance anymore either :)
@JacobNax
@JacobNax Ай бұрын
You can even use ECS as a part of your traditional game object oriented ways. You were always doing it with ParticleSystem ^^ Ideally a packed set of systems where you can update them on your own when you need something that is very intensive to be executed fast and in parallel using Burst + jobs One example i can think of is if you wanted to simulate realistic clouds, you can just make a specific ECS world that simulates clouds very effectively by utilizing burst and jobs.
@piotrek7633
@piotrek7633 21 сағат бұрын
This is for games that require top performance, you need to figure out in your game needs it or not, most of the time you dont
@DanielKierkegaardAndersen
@DanielKierkegaardAndersen 16 сағат бұрын
@piotrek7633 not quite, it's useful for performance but that's not all entities is about, it's about architecture, putting your data first and solving your problems as discrete, composeable tasks. There are plenty of games using an ECS for more reasons than just performance. Some games lend themselves more to this design than others, but that doesn't make it only about performance :)
@fulongfromthegrave
@fulongfromthegrave 2 ай бұрын
By far the best primer talk on ecs i ve seen it clears up so many questions i had starting out! Keep em coming please 🙏
@jagdishsahu3935
@jagdishsahu3935 2 ай бұрын
This is AWESOME!! Good Job!!
@Samuel_3000
@Samuel_3000 2 ай бұрын
These videos are very valuable to beginner devs like myself, thank you for sharing
@gamedebix
@gamedebix 2 ай бұрын
This is much needed that how things are done ✅
@TurboMakesGames
@TurboMakesGames 2 ай бұрын
Great talk Anne and Dani, excellent overview into all that Unity ECS has to offer! That clicker on the other hand needs to go 🗑
@CaesarLiu-w6e
@CaesarLiu-w6e 2 ай бұрын
Awesome!Please combine GameObject and Entity as soon as possible🤩.And it's improtant to teach me how ECS and OOP sharing data~😭
@shotoutgames8823
@shotoutgames8823 2 ай бұрын
Animation and Audio aren't ecs compatible. what about VFX and particle systems??
@DanielKierkegaardAndersen
@DanielKierkegaardAndersen 2 ай бұрын
Nope, however ECS is lightweight enough that you can make your own fairly easily, or as discussed in the last part of the presentation, you can interact between GameObject's and entities to do what you want. Say you wanted particles to spawn as the bug dies, you would simply spawn a GameObject with the particles at the time you delete the bug entity
@shotoutgames8823
@shotoutgames8823 2 ай бұрын
​@@DanielKierkegaardAndersen Thank you. I am doing something very similar but I am not using unityobjectref. What is the reason to use this? Thanks again
@shotoutgames8823
@shotoutgames8823 2 ай бұрын
Is it because it can be in a struct as I am using a Class??
@DanielKierkegaardAndersen
@DanielKierkegaardAndersen 2 ай бұрын
@@shotoutgames8823 correct, UnityObjectRef allows the use of struct IComponentData, and as a result as long as you're just querying for that component/changing the reference, but not accessing the reference (getting the managed data it point to) then you're allowed to use burst. Something you can't do if you were using class IComponentData (which we also name managed components)
@burakcimenli
@burakcimenli 2 ай бұрын
The only problem is that it doesn't look fun to code with
@shotoutgames8823
@shotoutgames8823 Ай бұрын
Why is GetDependency (Spawning GO) give me an error in the code? What does it do anyway?
@DanielKierkegaardAndersen
@DanielKierkegaardAndersen Ай бұрын
Which error are you getting? GetDependency let's Bakers know to track any changes to an additional object. Since bakers are only run when you change your baked MonoBehaviour, it won't know to update after making changes to any other objects that the baker might be dependent on (like your spawning GO). To fix this, you use GetDependency to let the baker, "also update this baker, when you change anything on the passed in object"
@oninuva
@oninuva 2 ай бұрын
So when will ECS for All be ready
@guanyangwu9118
@guanyangwu9118 2 ай бұрын
DOTS support webgl?
@DanielKierkegaardAndersen
@DanielKierkegaardAndersen 2 ай бұрын
Burst, Jobs, and Entities-Graphics are not supported in WebGL, but Entities, Native Collections and Mathematics are supported. Meaning if you want graphics you have to run your own solution or use GameObjects as the frontend, but you can still write a lot with the core Entities API (e.g. all the API showcased in this talk)
@SigmaZer0
@SigmaZer0 Ай бұрын
So the same people that thought that creating a 'Web-based' solution for UI Toolkit did this monstrosity... weird mind set.
@daxodearchives9467
@daxodearchives9467 Ай бұрын
Haha, well a company is made out of many minds, the people making a web-based solution for UI Toolkit are quite unlikely to be the same people that made DOTS, after all they are fairly opposing ideas, so I'm a little uncertain how you got this idea ;)
@SigmaZer0
@SigmaZer0 Ай бұрын
@@daxodearchives9467 Sorry, my comment was on the horrible choice of solution, I'm happy they are doing a new GUI implementation but they should have stuck to two separate methods for Edit and in-game, immediate mode ui's are excellent for technical interfaces, take a look at Flutter but using a Web like solution where you have 2-3 files you need to maintain per logical page entity is just dumb, that is also why .NET WPF was and .NET MAUI is such disasters.
@tbunreall
@tbunreall 2 ай бұрын
*insert charlie day meme
@DanielKierkegaardAndersen
@DanielKierkegaardAndersen 2 ай бұрын
Haha, well, we're trying to go through the entire API in less than an hour, so it has to be a bit speedy in some parts 😆
@tbunreall
@tbunreall 2 ай бұрын
@@DanielKierkegaardAndersen I appreciate it though. Any resource for dots is a good one.
@ИсидораАлександрова
@ИсидораАлександрова 2 ай бұрын
Williams Brian Davis Jose Williams Betty
Should You Use DOTS in 2024? (plus what is Unity ECS)
30:15
Turbo Makes Games
Рет қаралды 45 М.
Chain Game Strong ⛓️
00:21
Anwar Jibawi
Рет қаралды 41 МЛН
Beat Ronaldo, Win $1,000,000
22:45
MrBeast
Рет қаралды 158 МЛН
It’s all not real
00:15
V.A. show / Магика
Рет қаралды 20 МЛН
The Unity Engine Roadmap
47:12
Unity
Рет қаралды 84 М.
Revolutionize Your Unity Game with Optionals and Monads
14:59
Coding Adventure: Optimizing a Ray Tracer (by building a BVH)
52:13
Sebastian Lague
Рет қаралды 484 М.
No One Hires Jr Devs So I Made A Game
39:31
ThePrimeTime
Рет қаралды 359 М.
20 Advanced Coding Tips For Big Unity Projects
22:23
Tesseract
Рет қаралды 206 М.