Search Unity

Official MLAPI Experimental Release 0.1.0

Discussion in 'Netcode for GameObjects' started by luke-unity, Mar 23, 2021.

  1. luke-unity

    luke-unity

    Joined:
    Sep 30, 2020
    Posts:
    306
    Hey Everyone!

    Today we are finally announcing the release of our first experimental MLAPI package.

    Since this is an experimental release, it is not available in the Unity Package Manager yet. Instead, you have to manually add it from Github. To learn how to install MLAPI into your project follow installation guide.

    Version 0.1.0
    With version 0.1.0 of MLAPI, we focused on integrating MLAPI in our ecosystem and introduced changes to improve performance and make the API easier to use and maintain. You can learn about what we changed in our release notes.

    Our next round of releases will focus on adding new and exciting features to MLAPI. You can get an overview of what we have planned on our roadmap. We encourage everyone to actively participate in the roadmap and submit suggestions and feature requests to us.

    What does experimental mean?
    We are still working on a lot of future-facing functionality which means that some features are currently a work in progress and you may experience minor issues. Please note that Experimental packages are not meant for use in Production scenarios – instead, you could use experimental packages to preview and test-drive what we are working on as an early look.

    There are a few things to be aware of when using this Experimental Unity package:
    • Expect breaking API changes - using this early has risks!
    • Expect no SLA on the timeline to ship patches/fixes to releases, as we are still establishing our test and release cadence.
    • Expect this will be moving towards a fuller Release (aka we don't plan to throw this away)
    • Expect us to answer questions of early adopters on Discord and Forums, and we welcome all feedback and issues logged!

    Upgrading


    For all existing MLAPI users, we encourage you to upgrade to our new version. We introduced many bug fixes in version 0.1.0 and will be better able to support you if you upgrade. MLAPI is now distributed as a Unity package which means upgrading isn’t straightforward. We have created a guide for upgrading to the new version.

    If you have an existing UNet project or have used UNet previously checkout our UNet upgrade guide to learn some of the key differences between UNet and MLAPI.

    Where to go for help?


    Let us know what you think in this forum thread and MLAPI’s discord! This is the place where you can meet our Multiplayer Solution Architect team - engagement engineers helping to support you in building multiplayer games.

    Together with the Unity Package, we are also releasing our new documentation site. Our documentation is open source and contributions are welcome (repository)!

    Learn more on our Netcode landing page and save the date for Boss Room to actively learn with the upcoming sample game project.
     
    Last edited by a moderator: Mar 23, 2021
  2. Ruchir

    Ruchir

    Joined:
    May 26, 2015
    Posts:
    934
    You should pin this thread
     
    blabz2007 and luke-unity like this.
  3. Favo-Yang

    Favo-Yang

    Joined:
    Apr 4, 2011
    Posts:
    464
    Hi @luke-unity,

    Thanks for the update. I'm a little bit confusing that,
    1) If I have a product in production based on the existing MLAPI, should I migrate to the new API, Or should I just play with it and wait for it to get mature (reach 1.0.0)?

    2) If I have a new product just get started at the moment and aim to be released later this year, Should I start with the new API or the old one?

    I know that Unity has a history to make an inaccurate estimation for new features and sometimes just eventually lost track. But as a member work directly on the MLAPI team, your opinion will help manage our expectations.

    3) I also have a suggestion for the Git tag naming: https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/tags

    Now all old releases are prefixed with "v", but not for the new API releases. It could be confusing over time. Could you change it to a more readable tag pattern, like `new-mlapi/0.1.0` or `develop/0.1.0`.
     
    rangolee302 and Ruchir like this.
  4. CreativeChris

    CreativeChris

    Unity Technologies

    Joined:
    Jun 7, 2010
    Posts:
    457
    Let me try and help here.

    1) If you have a product in production currently, what are your project deadlines and release cadence?
    - Whether you should or not depends on a number of factors - 1. When do you ship? 2. Is the existing MLAPI working well for the project or do you have any issues/bugs? Review the release notes, check out the refactored API names and removed features and also follow this guide.

    2) Some trade-offs to consider. Have you extended MLAPI with custom code? We are still likely to break things in the new version, but the old version is now stagnant. The old version is aged and has its problems, and will not be supported by Unity. Migrating now could save you from a bigger migration in the future if you need to migrate later. I think there is a net positive to move over for a new project. You know it'll be supported by Unity and we have forums/discord for further help.

    3) Can you raise that as a GitHub issue on the MLAPI repo?

    Come find us on Discord if it's easier to chat there instead of this forum. Hope this helps you come to a decision.
     
  5. Favo-Yang

    Favo-Yang

    Joined:
    Apr 4, 2011
    Posts:
    464
    Thank you for the valuable feedback.

    My point is to narrow down to two classic scenarios the audiences may face and listen to advice from the internal guys to migrate or wait.

    - Devs with a shipped product and may get some benefits from new API, i.e. better performance (new RPC implementation) or bug fixes.
    - Devs with a chance to start a new product and aim to release it later this year.

    From my understanding, the feedback is
    - Wait if have a shipped product that running well.
    - Start with caution, if you want to start a new product. Maybe it's wise to wait until the demo gets released, so at least there's one "product" that is shipped with the new API. Or you can research other 3rd party solutions with better expectation management.

    As I said, it's not the first time developers are facing such choices. Because the way Unity is running - rolling out new exciting marketing material (video, slides, demo at conference), and publish preview features with ETA. And it usually takes a much longer time to get to the point that something is stable enough for everything one to pick it up. Sometimes the preview features are just hanging and less cared for. The early adoptions will pay significate energy to involve in the preview feature for bug fixes. Of course, it's not just Unity, relying on any new tech will likely running into the same scenario.

    Don't get me wrong, I don't think ship early is bad. You never get a mature point if you don't ship a product/feature to the public first. It just about expectation management and how many resources (Dev/QA/Automated Testing) Unity keeps investing in the feature. Anyone with years of experience working with exciting new features from Unity may share the same concern.

    Anyway, you provided some good information and thank you.

    https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/issues/662
     
    rangolee302 likes this.
  6. XCO

    XCO

    Joined:
    Nov 17, 2012
    Posts:
    380
    Can you guys add playmaker actions/support for us PM users :) ?
     
    Alphawolfme likes this.
  7. PolyMad

    PolyMad

    Joined:
    Mar 19, 2009
    Posts:
    2,350
    I think the actions should be developed by third party or by the Playmaker developer.
     
  8. Ruchir

    Ruchir

    Joined:
    May 26, 2015
    Posts:
    934
    I am a bit curious about the release window for MLAPI, I mean when will it have the 1.0 release?:)
    Because it has been two months since the first 0.1 release and I haven't seen any new big updates till now :(
     
  9. luke-unity

    luke-unity

    Joined:
    Sep 30, 2020
    Posts:
    306
    I posted the following a while ago on our Discord about why we are not doing updates:

    I only know about our plans between 0.1.0 and our next release. Long term our strategy will most likely change. Right now creating a release is a very manual process for us and takes a lot of time which we could spend on development instead. This is the case because we lack some of the infrastructure which other Unity packages have for testing. So our plan is to keep patch releases to a minimum for now. If a critical issue arises where there is no easy workaround we can definitely do a patch but so far it looks like there aren't any issues like that.

    No patch releases does not mean that we are not fixing bugs. Some of the bugs which were raised are already fixed on the develop branch. It is just really hard for us to get them out to you guys. You always have the option to either use the develop branch or create your own branch and merge some of the bug fixes we did into it.

    tl;dr No patch releases will be made unless there is a critical issue
     
    hippocoder and Ruchir like this.
  10. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Would love to use MLAPI with VIVOX on MULTIPLAY servers. I want the integrations. I showed @LeonhardP our Sony game in progress and would really love to work closer with Unity.
     
  11. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Please Unity, post updates on forums too. Many of us do not visit or use Discord because we try to limit the impact of social media on our lives. Forums aren't as engaging, and consume less time / stress.

    I do visit Discord but it's likely to be only very rarely if I'm stuck or something.

    For example I had no idea MLAPI was due to change it's name until someone said they heard about it on discord.

    Cheers! :)
     
  12. luke-unity

    luke-unity

    Joined:
    Sep 30, 2020
    Posts:
    306
    Fair point, we'll look into posting the announcements which we make in the Discord also in this sub forum. Would people prefer a certain format?
    1. 1 closed thread where we just post announcements without discussions.
    2. We create a new thread for each announcement and anyone can discuss it in that thread (like this thread)
    3. A single thread where we do all announcements and discussions.
    4. Both 1. and 2.
     
    Last edited: Jul 19, 2021
    JesOb, hippocoder and Ruchir like this.
  13. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Whichever format you find easiest to maintain without letting it fall behind, I guess! :)
     
    luke-unity and JesOb like this.
  14. Vote for this + please pin it as well. Like this.

    We can open new threads for discussion in the topic.
     
    luke-unity likes this.
  15. luke-unity

    luke-unity

    Joined:
    Sep 30, 2020
    Posts:
    306
    I created MLAPI Announcements for this. From now on we'll post announcements and updates in that thread.
     
    Lurking-Ninja and hippocoder like this.
  16. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Brilliant! Guess what, I didn't even know about the webinar! :D This is great, thank you.
     
    CreativeChris and luke-unity like this.
  17. Cranom

    Cranom

    Joined:
    Jan 31, 2018
    Posts:
    26
    Didn't know either ! Wanted to look at it but then clicked and stumbled on some orwellian pages with 9 prerequisites including but not limited to brain ablation & soul offering:
    https://create.unity3d.com/netcode-for-gameobjects-and-message-ordering
    https://create.unity3d.com/Multiplayer-Networking-Series-Webinar

    Since when was Unity bought by China? can we have links for the free World please?
     
  18. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Well I won't get into politics, but it is a bit much, in exchange for some innocent just wanting to learn a bit more about MLAPI, an open source based networking library!

    You probably inadvertently did already agree to similar elsewhere on Unity at some point.
     
  19. Cranom

    Cranom

    Joined:
    Jan 31, 2018
    Posts:
    26
    So many wrong things in such a little sentence that it baffles my mind.

    You mention open source yet the condition to access a talk about it isn't quite open, don't you want as many people as possible to have a look at it?
    Can't you make a link between the type of person that would be interested in having a look and participate in such a project and what you're demanding by gating those videos with the exact opposite of an open community?
    Then you assume that i might have been dumb/lazy to accept it by the past so now it's okay, get wronged by the past makes the wrong okay in the present...

    The only good point is my message not being sensored (unless it's shadowed looking from the none response of any other users, or there were little to no interest in the subject from the get go ?).
     
  20. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Steady on, mods aren't Unity staff. We just try to help out, FYI. We do not speak for Unity and often criticise quite heavily if you look at mod posting history :)

    But your complaint is valid and accepted.
     
    Cranom likes this.