Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

DOTSNET - High Performance Unity ECS Networking from the creator of Mirror!

Discussion in 'Connected Games' started by vis2k, May 1, 2020.

  1. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,685
    V1.17 pending review (bug fix release):
    2020-08-25_11-17-15.png
     
    GilbertoBitt, PolarU and florianhanke like this.
  2. yummybrainz

    yummybrainz

    Joined:
    Jan 14, 2014
    Posts:
    67
    @vis2k looks really cool!

    Is it relatively straight forward to convert the NetworkManager in usurvival to use this?
     
    GilbertoBitt likes this.
  3. tranngochung

    tranngochung

    Joined:
    Oct 24, 2016
    Posts:
    3
    Hello, this asset is support smooth sync ?
     
  4. SocialArenaPR

    SocialArenaPR

    Joined:
    Sep 26, 2016
    Posts:
    65
    No this can not be used with uSurvival. This doesn't use the old concept of GameObjects and components. The entire project would have to be rewritten.
     
  5. yummybrainz

    yummybrainz

    Joined:
    Jan 14, 2014
    Posts:
    67
    Got it thanks
     
  6. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,685
    AlexHolderDev likes this.
  7. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,685
  8. nico_st_29

    nico_st_29

    Joined:
    Mar 14, 2020
    Posts:
    7
    Does Dotsnet support animations with DOTS? Is it stable?
     
    shanepadgett likes this.
  9. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,685
    Animations are client sided, so there should be no problem :)
     
  10. Syn0_

    Syn0_

    Joined:
    Apr 1, 2018
    Posts:
    4
    Let's test this for my ambitious project :D
     
    vis2k and dannyalgorithmic like this.
  11. Matt-Cranktrain

    Matt-Cranktrain

    Joined:
    Sep 10, 2013
    Posts:
    59
    This project looks absolutely brilliant. I hope to give it a go sometime soon!
     
  12. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,685
    Thanks :)
    Manage expectations though. DOTS/ECS is still in preview and DOTSNET while stable, is still lacking features.
     
    Matt-Cranktrain likes this.
  13. Studiomaurer

    Studiomaurer

    Joined:
    Sep 5, 2012
    Posts:
    37
    Hi, just bought DOTSNET. It looks very promising and you absolutely should have the money to work on it full time. We need this kind of asset and its mostly been a bad idea to rely on unity.
    Not sure if I can use it for my current project though. Would it be crazy to try to make it work with the ultimate character controller? It's only a prototype, so not everything has to be perfect and server authorative. I'm just wondering about the long run... I heard somebody is working on a mirror port. If that ever is released, would it be easy to adapt it to DOTSNET?
     
  14. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,685
    Making character controllers work well over the network is very hard.
    For Mirror, I only know of one controller that works, which is the one I made for uSurvival/uMMORPG.
    DOTSNET definitely allows you to do that, but you really need to know what you are doing to get it right.
    But sure, try and report back :)
     
  15. bartimus

    bartimus

    Joined:
    Apr 21, 2020
    Posts:
    3
    Anyone know how you would go about setting the camera to follow the player in the samples? I’m trying to figure out how you reference the camera since it’s not a traditional game object. Is it possible to convert it to an entity?
     
  16. dannyalgorithmic

    dannyalgorithmic

    Joined:
    Jul 22, 2018
    Posts:
    51
  17. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,685
    DOTSNET V1.18 pending review.
    What a month. I hope you all enjoy libuv2k. It's the best scaling Transport for Unity by far, being able to handle 100k Entities with 60 FPS on my laptop :)

    Let me know if you have any problems.
    2020-09-25_16-23-49.png
     
  18. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,685
    V1.18b resubmitted. Now with the libuv2k Windows DllNotFoundException fix, and without physics package upgrade :)

    2020-10-03_14-33-32.png
     
  19. voncarp

    voncarp

    Joined:
    Jan 3, 2012
    Posts:
    185
    Picked this up on sale few weeks ago. Haven’t dived into it much outside of the examples scenes. 100k entities is nice. But, that type of bandwidth/messages are going to be brutal on some devices.

    Is there a way to track messages and bytes in editor or we got to use 3rd party tools?

    Again. Haven’t spent more than a few hours playing with it. Is there any way to spread that bandwidth and messages out or do we have to script that on our own?

    Just trying to plan on my next project. 10k entities I love it. I am just having a hard time planning how to spread that out among clients.
     
  20. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,685
    Not yet :)

    If you want a game with insane amounts of entities, then that's the price to pay :)
     
  21. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,685
    V1.19 pending review:
    2020-10-09_09-45-00.png
     
  22. Zyblade

    Zyblade

    Joined:
    Jul 1, 2014
    Posts:
    125
    What if I don't use hybrid renderer, but gpu instancing? I made a prototype using dots and gpu instancing, learned from examples from other threads. How deep "dots networking" is bound to the hybrid renderer? I update position values through compute buffer to move dynamic units. Entities are anyways setup in a way, that natural fits the gpu array setup, so I think it should be doable without too much effort?
     
  23. FakeByte

    FakeByte

    Joined:
    Dec 8, 2015
    Posts:
    119
    Rendering has nothing to do with networking.
     
    vis2k likes this.
  24. lmbarns

    lmbarns

    Joined:
    Jul 14, 2011
    Posts:
    1,482
    Been digging through it, pretty dang awesome. I'm still trying to learn DOTS to move over but this is a great example to learn from and build off.

    Thanks so much for all your work.
     
    Last edited: Oct 12, 2020
  25. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,685
    Thanks mate :)
     
  26. Zyblade

    Zyblade

    Joined:
    Jul 1, 2014
    Posts:
    125
    Then please remove the hybrid renderer requirement if it's not related at all:
    hybridRenderer.jpg

    And btw., I know rendering has nothing to do with networking...
     
  27. voncarp

    voncarp

    Joined:
    Jan 3, 2012
    Posts:
    185
    I think the Hybrid Renderer is required in order to use DOTS.
     
  28. FakeByte

    FakeByte

    Joined:
    Dec 8, 2015
    Posts:
    119
    DOTS is the data oriented tech stack, this includes all data oriented packages, therefor you don't use DOTS, you use DOTS packages. The hybrid renderer is one of those DOTS packages and its not required for all DOTS packages, just some have it as dependency.
     
  29. Zyblade

    Zyblade

    Joined:
    Jul 1, 2014
    Posts:
    125
    Thank you for replying @voncarp and @FakeByte
    So the asset just uses some packages, which leads to some package dependencies regarding hybrid renderer. I Just wanted to be sure, there's no heavy code refactoring necessary, to work with my own rendering workflow.
     
  30. FakeByte

    FakeByte

    Joined:
    Dec 8, 2015
    Posts:
    119
    The package has demo scenes which for one would require the hybrid renderer, that could be one of the reason why its mentioned as dependency. You can always disable the hybrid renderers systems, then pick up the entities you want to render with your own system, I don't see why you would need to change a single line in the network code.

    ECS is very modular and there are almost no direct dependencies which make your use case very easy to implement.
     
    Zyblade likes this.
  31. lmbarns

    lmbarns

    Joined:
    Jul 14, 2011
    Posts:
    1,482
    1 quality of life example feature request would be an example shooting a networked projectile from the player position and direction and destroying it. I edited the physics example to be a character controller, and its great, but struggling to get projectiles working right, I'll figure it out, but its taken a lot of time and I'm sure its probably 15 mins if you knew what you were doing.
     
  32. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,685
    Yep, a few more examples and a few more basic features will be needed.
    Still spending all my time on transports these days. libuv is done and kcp will come to DOTSNET soon.
    Afterwards features/examples again :)
     
  33. Brainshack

    Brainshack

    Joined:
    Mar 1, 2013
    Posts:
    8
    Would this asset also work with other type of games from MMOs? Like for instance FPS or RTS? I am evaluating using this for an RTS, would this work out of the box or would I have to change a lot to get it working?

    Also, how easy would it be to add networking to an existing ECS game with this?
     
  34. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,685
    Should work fine for RTS.
    For FPS you need prediction etc., which DOTSNET doesn't have. It simply syncs entities over the network :)

    I'd recommend starting with one of the DOTSNET examples and build your game on top of it.
    DOTS/ECS is still new and nobody really knows the best way to do things yet.
     
  35. dannyalgorithmic

    dannyalgorithmic

    Joined:
    Jul 22, 2018
    Posts:
    51
    Would you imagine ECS architecture would be suitable for card games with related entities? Something like X card reacts to how much mama Y character has?
     
  36. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,685
    I wouldn't recommend using ECS unless that's your only option.
    If you aren't going for massive scale, go with MonoBehaviour instead.
     
    dannyalgorithmic likes this.
  37. dannyalgorithmic

    dannyalgorithmic

    Joined:
    Jul 22, 2018
    Posts:
    51
    Thanks, mate!
     
unityunity