Search Unity

Official Beyond the Engine: Multiplayer Services | Unite Now

Discussion in 'Multiplayer' started by AskCarol, Nov 18, 2020.

  1. AskCarol

    AskCarol

    Joined:
    Nov 12, 2019
    Posts:
    234


    Beyond the Engine: Multiplayer Services

    If you’re thinking about making a multiplayer game, or are looking for solutions to successfully operate one, attend this session for guidance on key parts of the process. You’ll learn the key components of operating a multiplayer game and get inspired by successful multiplayer titles operated using Unity’s solutions.


    You can also check out this companion blog to learn how to choose the right netcode for your game.
     
  2. Cranom

    Cranom

    Joined:
    Jan 31, 2018
    Posts:
    26
    So Unity think this is usefull content...

    To think that someone in charge of network for their game, that managed to complete the most difficult aspect of multiplayer dev by navigating the uncharted sea of netcode, performed countless feat such as prediction/reconciliation and others, to think he should bother with this dull recap on the easiest aspect of multiplayer ? One side takes many years of unskipable hard work and the other takes as much time as taking out a credit card...

    In this 19 minutes long video "Beyond the Engine: no first party netcode" we got 1 slide on non existant Unity's netcode for the part that takes 99% of a game developpment, and the rest of the video consist in a generic info-dump for hosting/matchmaking/chat for the part that takes 1% of developpment.
    Just make a kickass add for your products vivox/multiplay with proof of concept and have them ready WITH DOCUMENTATION at least, or why bother ?

    Master wizard 8 black belt better take a look at the different ways one could tie his shoelaces...
     
    johnroodt, ikv007s, bluescrn and 10 others like this.
  3. BetaMark

    BetaMark

    Joined:
    Sep 27, 2014
    Posts:
    229
    I don't know where all that salt comes from man. You obviously get how hard it is build multiplayer, so props there -- but there is a huge number of people that are just getting started with Unity like... literally, right now... and this kind of overview is exactly what they need. Getting people exposed to the things that they need to dig deeper into is absolutely step 1, and this video does that.

    edit:
    @Cranom A question for you though, while I'm here -- what kind of multiplayer subject videos do you think should be made? Like what is annoying you the most with the current solutions out there?
     
  4. Cranom

    Cranom

    Joined:
    Jan 31, 2018
    Posts:
    26
    Fun sarcasm is considered salt ? Damn, i have been salty all my life without knowing it!
    Where does it come from? Well if you've been around for some time, by now you should know, Unity has an habit of pushing good ideas in alpha/beta stage as final release just to instantly abandon it in favor of the new cool stuff clipping right around the corner with more delay than a ping to a blackhole, then rince & repeat...

    "[...]there is a huge number of people that are just getting started with Unity[...]" to wich the answer is "Go find a net-API somewhere else!", isn't it ridiculous?
    This sort of overview does not speak to anyone. You do not start a game with chat/hosting/matchmaking:
    You need a game in order for those subjects to matter! And they pale so much in the face of the difficulty you already encountered to make your multiplayer game that this kind of content is ludicrous, you either do something generic and quick or detailed/tailored in full length. This video is just a drag-on disguised (b)add for two products, so just put two links to tutorial/documentation and be done! Newcomers are not gonna stumble on this article, they are here to post "X is not functionning... how to do Y... what's the best Z way to do that" and only need an answer in the form of a link to precise documentation or quick info dump of a few lines and not 20 minutes.

    Who is taking care of the new users for network? It's not Unity, it's the long hardened contributors (not counting myself in them) of this forum that , on their own time, confer newcomers the guidance they need. It's those contributors who fill the gap and allows Unity to advertise their product as net-capable as if Unity was self sufficent when it's not. And not only is there no full recognition of those outside tools, Unity go even as far as rate them when they themself failed at it, the nerve...

    What kind of multiplayer videos they should do? Short and dramatic answer: NONE.
    Long answer: the rule should be as follow, it's easy to make a theorical essay on a subject, but can you back it up? Speak of what you know, and for what you don't, find someone who does. And don't speak of a subject if it requires another one anwsered for wich you brougth nothing.

    If things were ideal:
    - Unity would have released at least one (one would be barely enough) post-mortem (maybe they have, havn't seen it) on HLAPI, don't even start something if you did not take time reflecting on past experiences, or you will make them again.
    - Admit the blank left and instead of rating outside network solutions (leave this part to users), fully aknowledge them by giving them free space in a blog/article/video to have each of those solutions exposed properly by their creators.
    - Post frequent public updates on the new net stack, collect private feedback from previously mentionned outside creators who seem to know how to do what Unity is trying so hard.
    - If you can't refrain yourself from talking about multiplayer, pay a pro with a specific use case scenario applicable in real-life production.
    - Do not take merit and advertise in areas your software is lacking.
    - Do not post generic info dump, only fully featured tutorial or links to documentations.

    How many days have passed since this content was posted, how many reactions, and how many likes on my first comment? As much as each deserve :)
    I just don't see anything wrong with my first statement and there is just no other way to turn it around. I'm not gonna develop more as there is just too much to say, and it's already been said multiple times better than i could. Unity knows what's wrong, they are just surfing the wave expecting no one will notice, so this negative feedback is a quick reminder. Negative feedback is still feedback !

    PS: I have no animosity against you mccorkle, you've been very polite :)
     
  5. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    Sarcasm isn't always obvious in a text posting. I read your post in an angry voice unintentionally. My bad.
    I've criticized Unity a lot on networking since Unet was deprecated as well, because Unity now has to overcome a history of abandoning network implementations.

    But with Unity not having a first party network solution right now, I think it was a good idea to officially recommend using a third party solution for the time being. The reality is up until recently it has come down to other users to make that suggestion, and it felt Unity was completely ignoring the problem.

    Even worse was Unity announced they were working on a new networking API 2 years ago, but it doesn't take 2 years to write one, so they were obviously not making it a priority

    Ehhh, I actually thought the video was pretty good for the target audience. Which I took as people who are just starting to investigate what networking options are available, and what concerns the developer needs to be thinking about. Very very high level, so not that practical as far as actually putting code into your game, but still the high level stuff is very important and hard to design around later if/when you run into problems. We get a lot of threads in this forum asking these high level questions.
     
    ArturoNereuUnity and luke-unity like this.
  6. Cranom

    Cranom

    Joined:
    Jan 31, 2018
    Posts:
    26
    This video is reductible to just 4 slides (if we ignore the last one wich is an add): one with high-level schematic, one for matchmaking, one for hosting and one for communications.
    Knowledgeable users won't benefit from any of those, because master wizards do not need to learn how to tie their shoelaces since they can teleport!

    For newcomers, only the 1st one *should* matter , and I'm saying *should* because it *does not* in this manner, and I hate to disagree with you Joe because you're one of those that help a lot on this forum (I'm mainly lurking and never posting, so thanks man you've been interesting to read), but maybe you're too advanced to put yourself perfectly in a newcomer's shoes, here is how i see things since i'm certainly closer...

    Newcomers won't benefit from any of the last 3 slides, since they need a game (and if they already have one, they are not newcomers anymore) in order for them to matter at the exception of hosting, but it is tied to the choice they will make in 1st slide depending on their projects.


    Going back to 1st slide (high-level schematic) I see two problems:
    - First, directing users to an API based on a survey and not study/test is bad in itself, but it's going to keep them uninformed of the other solutions (The topic mentionning available choices and letting the user explore possibilities is better).
    - Second, all the meat of the project is condensed/simplified in the purple row (Deterministic Rollback/Lockstep, Listen Server, DGS). Why merge two topics ? One being the place where the client/server lives, the other being how timing between their interactions is handled... isn't this step a gross oversimplification ? Now if I was a newcomer I would be like "Where are my damn links to this Deterministic Rollback?" and i would even think that those problems could be anwsered magically by a drop-in package.

    Of course it's interesting but anyone can spit this high-level stuff, it's not gonna be hard to find online, so when a company like Unity does it without any follow-up for implementation, it's either lazyness or incompetence.
    And note that, this peticular slide, the most important one is just trown out in 2 minutes. This just feel like copy-pasta of so many things I have learned from users posting interesting stuff in this forum. It's not even a good "feel good" video since the production value is so low.

    This topic for pros and cons:
    https://forum.unity.com/threads/wha...of-available-network-solutions-assets.609088/
    It should have been sticked long ago at the top of the forum, it would have given creators more incentives to come and describe their product and would have been the perfect get-go for newcomer. Instead unity took more than a year and an half to produce the following link with great "success" looking at the forum feedbacks for this article (it took them almost 2 month to rectify and it is still lacking):
    https://blogs.unity3d.com/2020/09/08/choosing-the-right-netcode-for-your-game/

    PS: (In the High-Level slide) "Card Game -> DOTS"... what! couldn't you use anything? but maybe i'm too focused in my problems to estimate what others could encounter, if anyone has a point to make on this one I'm curious (in PM).
     
    rangolee302 likes this.
  7. BrianHL

    BrianHL

    Joined:
    Dec 6, 2020
    Posts:
    2
    @ArturoNereu can you help me with a question, or point me at someone who can?
    As a complete newbie to Unity, I need to understand what is/not possible here.
    I run a training business that has worked offline for 30 years developing physical simulations that make amazing change in understanding and management skills. With Covid-19, the classroom training is dead, and we are migrating our work online, where we can. The introduction of Lego in Unity made me think that this could solve a major issue, enabling me to take an existing simulation online, but I am not yet clear what is possible and what is not. I want to do the following:

    a. Create an environment in Unity with quantities of LEGO components.
    b. Invite groups of 20-30 naive, non-user participants into the environment at a time, where they will be able to pick up and move Lego blocks, build structures, and possibly use some of the additional action blocks as well.

    The key thing is that Lego is something everyone understands, so the learning curve for total newbies should be short, and the context looks familiar. This would enable us to focus on the learning outcomes of the exercise, which are around how the team works together, not on the technology. I need them *not to* have to create an account, or learn to use Unity or the Lego game-creation interface. On the other hand, I do want them to be able to use Lego blocks as they would in the physical world, since that is familiar to all, stacking them and snapping them together.

    If the Lego extension in Unity does not enable me to do this, is there a simple way to replicate that functionality in Unity? If a seasoned programmer could create a set of blocks for me, that snap together in similar ways to Lego blocks, and that come in a range of colours and sizes, I would presumably be able to use this with a crowd of people who have no knowledge of Unity, with a minimal lerning curve for them....?
     
    ArturoNereu likes this.
  8. ArturoNereuUnity

    ArturoNereuUnity

    Unity Technologies

    Joined:
    Sep 4, 2014
    Posts:
    17
    Hi Cranom, thank you for your feedback. As you mentioned, this was not intended for people who are already making Multiplayer games, but for people that are new to them. Sometimes, people assume that even the more obvious things are/should be known by everyone, but that's not always the case.

    Maybe, I need to be more clear in future presentations about what the takeaways/intended audience the session is for.

    Best.
     
    BetaMark likes this.
  9. ArturoNereuUnity

    ArturoNereuUnity

    Unity Technologies

    Joined:
    Sep 4, 2014
    Posts:
    17
    Hi Brian, thank you for reaching out. Glad to read how you are pivoting your business in a post COVID world.

    So, from what I understand, you essentially want to have a published version of your game (here's how to do it). Then distribute that client to all of your users, they won't need a Unity account or to have the Unity Editor.

    Now, the next part is to allow them to join the same session and play together. That's a functionality that the LEGO microgame doesn't have but that you would need to add. For that, I encourage you to take a look at Photon, MLAPI, Mirror or DarkRift2. These libraries allow your game to connect with others. You will also need a place to host your servers.

    Since the process above might take some time and you mention you are new to Unity, I would also encourage you to find people who you could contract to build this for you.

    As for using the Lego Microgame as is, I suggest you to take a look at the license to see what you can/can't do with the branded assets.

    Hope the information is useful!
     
    Joe-Censored likes this.