Converting scene data to DOTS - Unite Copenhagen

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ก.ค. 2024
  • Uncover the process of converting GameObjects to Entities and how this can be extended and customized.
    Find the code samples on GitHub: github.com/Unity-Technologies...
    Speakers:
    Simon Mogensen - Unity
    Fabrice Léte - Unity
    More about DOTS: on.unity.com/2litTAx
    Slides available here: www.slideshare.net/unity3d/co...
  • เกม

ความคิดเห็น • 52

  • @AntonovDVRUS
    @AntonovDVRUS 4 ปีที่แล้ว +14

    1:30 Why we want conversion
    2:22 When does conversion happen?
    3:10 Introducing SubScenes
    4:32 Let’s look at the code
    5:12 Sample #1 Obligatory spinning cube
    11:30 Custom conversion
    15:17 Sample #2 Prefabs
    18:16 Declaring prefabs
    19:50 Sample #3 Conversion Systems
    25:45 Create GameObjectConversionSystem
    30:00 Sample #4 Blob Assets
    36:45 Don’t forget the ref’s

  • @lizkimber
    @lizkimber 4 ปีที่แล้ว +8

    When dots is more fully integrated with the ide, and the old style is put behind us, it will be more practical for people to learn

  • @marielorent2018
    @marielorent2018 4 ปีที่แล้ว +2

    J'ai presque l'impression de revenir dans le passé, à mon cours de progra de l'heaj. Incroyable. Quelle sensation incroyable !

  • @user-ox9wg1jj9w
    @user-ox9wg1jj9w 4 ปีที่แล้ว +3

    Finally, Unity tries to explain what does BlobAsset mean, I've been waiting for this for long months. It's time to explain how to work with native strings and how to synchronize two systems working with the same pure native data outside of the components.

  • @wang37921
    @wang37921 4 ปีที่แล้ว

    Cool! cannt wait any more

  • @tanzeelrahman7835
    @tanzeelrahman7835 4 ปีที่แล้ว +15

    Really difficult to understand need good tutorials.

  • @snaecooceans8744
    @snaecooceans8744 4 ปีที่แล้ว +6

    More DOTS please

  • @Oxmond
    @Oxmond 4 ปีที่แล้ว +1

    Cool 👍😄

  • @denissachkov6693
    @denissachkov6693 4 ปีที่แล้ว +5

    we need tutorials!

  • @spiral9316
    @spiral9316 4 ปีที่แล้ว +9

    This talk should be delivered by game developers ;
    engine developers just stick to much to technical concretes and disregard the priority on the game context too muchand
    He should think about how to present it in the sense of making the game
    But still they create very good, incredible stuff, just direly needs to be a different person who can link the process as a method of getting our preserving game actual code.
    I'm just depressed they weny by the default on this presentations all the others were excellent.
    But honestly I think it really because dots will be final until March 2020. I think then it's going to be a more accurate presentation.
    This mostly seems a technical exposition rather than the conceptual method for conversion.

    • @dann5295
      @dann5295 4 ปีที่แล้ว

      Well, the ECS usage with script is the same concept for anything you wanna do with it, so you can just pick a concept such as games and think how it works together if you want a clear picture.
      I found this talk to be really good and informative as to how to use DOTS, which I'm sure I'll watch again to understand better.
      Tho, as you said, it is bound to change and I don't think we'll need the gameobject conversion system when DOTS is established, but its the current workaround.

  • @KandyMan90
    @KandyMan90 4 ปีที่แล้ว

    So are Blob Assets going to a be a DOTS version of Scriptable Objects?

    • @msfredb7
      @msfredb7 4 ปีที่แล้ว

      If by scriptable object you mean static data that doesn't belong to any entity, then i guess yes.
      (Scriptable Objects can be used in very different ways though)

  • @mmankt
    @mmankt 4 ปีที่แล้ว +5

    For less advanced ppl this is not good enough and ppl how actually have built some complex stuff with ecs will probably do it differently anyway. maybe some simple scene conversions with tons of objects is cool but i'm trying to think how this would improve my workflow and i'm having a hard time.

    • @tatoforever
      @tatoforever 4 ปีที่แล้ว

      For Dots is not about improving workflow, is about improving performance by a large marge. At least for now, pretty sure workflow will get a lot better over time.

  • @AaronHilton
    @AaronHilton 4 ปีที่แล้ว +2

    DOTS looks really great, but this definitely showed me there is a LOT to unpack mentally to use it effectively. Will be looking forward to some of the compiler improvements to support the use of Blob Assets. Also lots to keep straight between GOs and Entities with the conversion workflow.
    Any idea when this will all just work on the GPU too? (Like CUDA, but C# safe)

    • @mosth8ed
      @mosth8ed 4 ปีที่แล้ว +4

      I have been using DOTS for several weeks/months successfully and after watching this, I am now confused.

    • @spiral9316
      @spiral9316 4 ปีที่แล้ว

      @@mosth8ed yes, this presentation really leaves much to desire, would prefer a game developer than an engine developer explain this

  • @47Mortuus
    @47Mortuus 4 ปีที่แล้ว +1

    Why would we want to learn how to convert things IN ADDITION to doing it "the ECS way" from the start?

  • @yagosilva1699
    @yagosilva1699 4 ปีที่แล้ว +3

    BRs ???

  • @ByteVaultStudio
    @ByteVaultStudio 4 ปีที่แล้ว

  • @thecrazy8888
    @thecrazy8888 3 ปีที่แล้ว

    I like the performance gain dots brings but 20 lines of code to replace 3 is completely insane. I'm having a hard time shaking off the feeling that this whole thing is a spaghetti Monster.

  • @play4fun599
    @play4fun599 4 ปีที่แล้ว +8

    I still don't understand can I have my code to be written in OOP style but then to be automatically converted to ecs-style with my minimal efforts?

    • @sabriboughanmi2435
      @sabriboughanmi2435 4 ปีที่แล้ว +2

      nope it's a totally different approach.
      ECS seems to be hard at the beginning but at the end it becomes the easiest approach for doing games.

    • @Haekels
      @Haekels 4 ปีที่แล้ว +10

      @@sabriboughanmi2435 Somehow I'm beginning to doubt that to be honest. All the examples shown are very lengthy and complicated and do something really trivial like moving an object. I think the object/component paradigm is the most intuitive and straightforward way for game design. That being said, I do understand how ECS is more performant in certain cases.

    • @sabriboughanmi2435
      @sabriboughanmi2435 4 ปีที่แล้ว +13

      @@Haekels im using ECS from 6 months now and i dont see my self doing games in OOP anymore. ECS is just Awesome, still not perfect (for the moment) but already presents a lot of ready to use Logics that are AAA like Burst ....
      also it's not just more performant is certain cases it's just incredibly Performant in Most Cases. it allowes games to take advantage from Multicores CPUs.
      in my case my in dev game is running at a consistent 280 FPS in editor with a full Map opened 1.5Km² . when i disable my subscenes and make them gameobjects again it does not go over 40fps .
      also the ECS allow devs to think in a correct way and write "SAFE MULTITHREADED" code with less dependencies, you can add/remove/modify any logic at any time without touching the other logics.

    • @Haekels
      @Haekels 4 ปีที่แล้ว +4

      @@sabriboughanmi2435 Thank you for your reply. I am interested, what type of game are you working on? I'm asking because I'm working on a simulation/strategy game which has a lot of interacting systems and UI. Implementing those without classes, object references etc. seems very cumbersome. But then again, I haven't really tried it yet.
      One thing I do want to add is that learning about the DOTS has taught me a lot about writing more effective and performant code, even without actually using ECS.

    • @fraser5493
      @fraser5493 4 ปีที่แล้ว +4

      @@Haekels Keep in mind that by 2019.3 this whole lecture will be redundant. The authoring / converting steps are being handled automatically by Unity - as announced in the keynote presentation.

  • @joshua.jebadurai
    @joshua.jebadurai 4 ปีที่แล้ว

    First

  • @ahmetahaydemir
    @ahmetahaydemir 4 ปีที่แล้ว

    Second

  • @Roundbeargames
    @Roundbeargames 4 ปีที่แล้ว +1

    fourth

  • @forasago
    @forasago 4 ปีที่แล้ว +2

    I can't help but think that this is a step in the wrong direction entirely. The main point of a flexible, "big" engine like Unity (and why Unity has seen so much success) is that it *hides* these kinds of abstractions and lets the developers focus on the tangible stuff using intuitive tools. I realize that the makers will have their reasons why these optimizations can't be automatic "under the hood" features (yet). But think long-term. With everything that's happened over the last few decades in the game engine space - does this system look like the future to anyone? To me it looks like a callback to a long-gone past that nobody wants to go back to. I don't see a chance for this extra effort to become the standard for development in Unity.
    P.S. The code in this video is bewildering. The big draw for the new way is supposed to be performance and then you show foreach-loops and magic numbers, written in javascript. How much is left of the performance gains if one writes proper code?

    • @lizkimber
      @lizkimber 4 ปีที่แล้ว +1

      I think an option to control what for many of us could be hidden away is good for bigger projects who need something more like mega city

    • @mosth8ed
      @mosth8ed 4 ปีที่แล้ว +1

      You don't have to change a thing. People can still use everything just the way they have been if they want to. They have said multiple times, Monobehaviour and gameobject are not going anywhere. Joachim even said on the forum in replies to people who were asking, he said if you are new and still just learning, using Monobehaviour and the usual way of doing things is still the best way to start out. These things (DOTS) are being built as another way of doing things for when you are no longer a beginner, have reached the limits of Monobehaviour, and are ready to move on to the big boy stuff (so to speak).
      If someone wants to keep on making things the way they have, by all means, that is no problem. The best part is, all of this stuff is being made so that you don't have to pick one or the other. If you are ready to get your feet wet and try it out, you can do it in the same project, in the same scene, on the same gameobject even that you are using right now and it can coexist. You can transition at your own pace, on the things you want, or not at all if you choose not to.

    • @dino339
      @dino339 4 ปีที่แล้ว +3

      Dots >> Pros: You Gain exceptional amazing performance!
      Cons:
      Losing Code Readability.
      Losing Code Maintainability.
      Losing more Time working on it's more complex approach.

    • @KillMeNext
      @KillMeNext 4 ปีที่แล้ว +4

      @@dino339 You must not have had to maintain much code before because separating things out like this increases maintainability tremendously. If you organize your code properly, readability is just as good, if not better once you get used to it. The majority of people who say all of the negatives have obviously never actually used this approach.

    • @dino339
      @dino339 4 ปีที่แล้ว +2

      @@KillMeNext nop.. you are totally wrong in assumption.. in fact.. its totally the opposite..
      i decouple my code to make it maintainable.. ai.. animation.. physics.. each saperated..and work together smoothly.. i use SOLID principals in my code.. so all is good..
      that's the beauty of being a programming maintaining your "own" organized code..
      dots in some sense feels similar.. but there is so much going on that adds extra stuff.. conversion.. interfaces.. stuff that needs to be wired.