Search Unity

Unity Multiplayer Unite 2018 Networking Notes

Discussion in 'Connected Games' started by vis2k, Jun 21, 2018.

  1. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,241
    Hey guys,
    talked to a lot of networking people at Unite. Not everyone knew everything or was 100% sure on everything, so take this with a grain of salt. Here are my notes:

    Google Cloud
    • Unity moves everything to google cloud
    Multiplay
    • Unity acquired Multiplay for $20m a while ago, they used to host game servers for AAA games like Rust and DayZ
    • Multiplay will push our game servers to google cloud and show networking stats, UI, etc.
    • Works with current UNET system too
    • Very friendly and helpful team
    • => Available to test hosting right now. Push button not yet.
    New NetworkTransport (LLAPI)
    • LLAPI will be replaced by a new LLAPI that's written completely in C# because people couldn't modify or fix current LLAPI code
    • New LLAPI is a subset of current LLAPI
    • New LLAPI focuses on max performance
    • Still UDP
    • Only unreliable channels
    • A reliable layer will later be developed on top of it
    • Will work with current HLAPI / UNET too (probably need to remove reliable stuff then)
    • => Available to test this year probably
    UNET Team
    • No one I talked to mentioned anyone from the old UNET team, I specifically asked about Erik Juhl, Larus, Alexey etc. but couldn't figure out what they work on now. Either it was a coincidence or they don't have any major responsibilites for Networking anymore.
    • New LLAPI is not developed by @aabramychev anymore but by @MichalBUnity .
      • My guess is that Alexey is a C networking guy and they picked Michal since they want C# now

    First Person Shooter Demo from the Keynote (and others)
    • Instead of one general purpose HLAPI they want to make several templates for different game styles for now (Asset Store proabably)
    • People can use and modify those templates. It's not meant like 'the new FPS networking components' but 'an FPS example template that you can modify'
    • Still all research, they want to be more careful this time
    • Demo was originally developed with just LLAPI when ECS wasn't a thing yet
    • Demo uses Hybrid ECS now

    HLAPI
    • Current HLAPI will be abandoned. Well it was for 3 years anyway.
    • He said there's no reason to not use it for us though, since it's open source anyway
    • They know some teams who made decent games with HLAPI
    • They just didn't like the fact that it's too general
    • (see also: HLAPI Community Edition)

    ECS Networking
    • 'Networking by default' applies to ECS only
    • ECS will be NetworkTransport aware up to some degree
    • ECS will definitely happen, they have roadmaps for all internal components

    MonoBehaviour Networking
    • MonoBehaviour won't be made 'Networking by default'
     
    Last edited: Jun 21, 2018
  2. moco2k

    moco2k

    Joined:
    Apr 29, 2015
    Posts:
    289
    Thanks for providing these information vis!

    Some thoughts of mine:

    1. I've thought that LLAPI was pretty good already. However, if they plan a rework I assume that there are good reasons, but more details will be interesting to know. But no reliable channels from start doesn't sound too good for migrating projects from current LLAPI/HLAPI to the new one, or am I missing something?

    2. Some time ago, the UNET team put some efforts into asking the community about things that people needed. I think this was a nice move (even though nothing happened afterwards). But do they still care? For example, what about such things like NAT punch trough, Steam support, a better relay/matchmaking concept etc.? My project is working fine already with current LLAPI + HLAPI and I was just waiting for such things. Considering currently available information, I'm afraid they throw everything over the table in order to start with completely new things.. hmm. It's nice if they move forward, but I would also wish if they take the current solutions to a stable, fully usable and polished state as well because I argue that many people want to finish current projects started with those solutions.

    3. As it regards UNET, after 3 years, official communication still seems to be lacking. I would like to see much more statements, explanations for particular decisions and more community inclusion.
     
    Last edited: Jun 22, 2018
    RaL likes this.
  3. yvesgrolet

    yvesgrolet

    Joined:
    Jan 22, 2014
    Posts:
    10
    Thanks a lot for those notes @vis2k . This help a lot because we are planning to start the development of a multiplayer game with Unity in the coming weeks.

    We have an old prototype running with PhotonCloud but we would like to use Multiplay hosted (custom made) servers to have full authoritative servers. So UNet LLAPI + Multiplay servers seemed to be the way to go.
    However, as our development have not really started right now, it's now probably better to use ECS and it's "Networking by default" (ECS Networking Layer). Do you know if it's already available as beta ? I suppose it will be a king of automatic data replication thing ?
    That would probably be better to wait to use the upcoming "ECS Networking Layer" instead of using LLAPI for now and trashing all the work when "ECS Networking Layer" will be available ?
     
    Last edited: Jun 21, 2018
  4. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,241
    It's not available to try yet. Do the math, if it's available 1 year from now then it'll be kinda stable 2 years from now and stable 3 years from now, if we are lucky. I'd stay with the current stuff if I were you.
     
  5. yvesgrolet

    yvesgrolet

    Joined:
    Jan 22, 2014
    Posts:
    10
    Makes sence.
    Thanks.
     
  6. yvesgrolet

    yvesgrolet

    Joined:
    Jan 22, 2014
    Posts:
    10
    Moreover, custom LLAPI data replication will always be more efficient bandwidth wise than automatic replication systems. This is because you can compress your update packets to the bit level and even have smart dynamic data layout.
     
  7. iCode

    iCode

    Joined:
    May 25, 2013
    Posts:
    32
    Thank you for posting this!

    I kind of have mixed emotions. Super happy that there seems to be some kind of road map to the future and they want to do things right. I am hopefully they will this time. Kind of bummed that after three or so years of waiting for UNET to be improved, it will probably be another 2-3 years before the new system is REALLY ready and be where Unreal's multiplayer is at today. Was really hoping with how quite they have been with UNET, they were going to announce that something would be ready sooner.
     
  8. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,241
    If we get an open source and bulletproof LLAPI then that's worth a lot already. HLAPI is already open source so we can fix it ourselves if needed.
     
  9. Shizola

    Shizola

    Joined:
    Jun 29, 2014
    Posts:
    187
    Did someone really say these exact words to you?
     
  10. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,241
    This was not from a Unity employee. Sorry I should've made this more clear, I edited this out now.
     
    Last edited: Jun 21, 2018
    Shizola likes this.
  11. Whippets

    Whippets

    Joined:
    Feb 28, 2013
    Posts:
    1,775
    Maybe time to use ENet which has very good results in the benchmark tests.
     
  12. Vincenzo

    Vincenzo

    Joined:
    Feb 29, 2012
    Posts:
    46
    I'm shocked to be honest.

    Again, build something new, again big promises, again a new team...
    Why the hell.. The focus on Multiplay and their servers is also not making anything warm for me.

    The current LLAPI is very good, but needs improving, there are still random bugs, (like random disconnects) the performance is not crazy good as it should be, and from the last months it seemed like our favorite Russian friend @aabramychev was working hard on the library to make it better. I was hoping to see these improvements making it into 2018.2 or at latest 2018.3..

    But I see now they just put him to some other job, LLAPI goes into the freezer in it's current state and we can wait again on a new library, with not even support for reliable messages?? seriously guys? Knowing Unity track record, it will not be stable and good by the next 2 years.

    I understand that there are alternatives around, a good example is for instance the LiteNetLib project. Which I probably will have to switch to with the current state of affairs.

    Unity as always disappoints us in the topic of multiplayer, which is not on any roadmap.. their focus on AR and AI is funny but not helping any real game developers here.

    Meh.
     
    RaL and yvesgrolet like this.
  13. yvesgrolet

    yvesgrolet

    Joined:
    Jan 22, 2014
    Posts:
    10
    LiteNetLib seems better, no ?
     
  14. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    6,285
    Replacing the LLAPI is quite a surprise to me. Active support for the LLAPI with none for the HLAPI gave me the assumption that the system that would replace the HLAPI would sit on top of the LLAPI.

    Did you get any indication on if this shift was happening in 2018.x, or somewhere in 2019.x?
     
  15. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,241
    I don't know when they release it, but the FPS demo that you saw in the keynote already uses the new NetworkTransport.

    Agreed, alexey seemed like the man for the job. He's been posting here on sundays..
     
  16. Vincenzo

    Vincenzo

    Joined:
    Feb 29, 2012
    Posts:
    46
    Is this FPS demo from the Keynote available anywhere as a project?
     
  17. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,241
    Not yet
     
  18. nxrighthere

    nxrighthere

    Joined:
    Mar 2, 2014
    Posts:
    534
    Recently, we finished testing our fork that's faster and consumes fewer resources than the original library. On top of that, we extended the functionality (IPv6 support, monotonic time, packets/data metrics, and many other improvements). It's used in librg for MMO games, and I use it for low-level communications in my lightweight networking layer in Unity.
     
    Last edited: Aug 18, 2018
    asdzxcv777 likes this.
  19. Driiades

    Driiades

    Joined:
    Oct 27, 2015
    Posts:
    151
    With the news, Still don't know if Unity only plan to provide just a LLAPI or LLAPI + HLAPI.
    Don't know if providing my own HLAPI is necessary -,-
     
  20. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,241
    They want to provide a LLAPI in C#. You can use HLAPI Community Edition if you want (see my signature). We will keep supporting it.