Search Unity

  1. We have added sub-forums for the experimental MLAPI and Unity Transport Package. Please use the new forums to discuss related topics.
    Dismiss Notice
  2. All Pro and Enterprise subscribers: find helpful & inspiring creative, tech, and business know-how in the new Unity Success Hub. Sign in to stay up to date.
    Dismiss Notice
  3. Dismiss Notice

Unity MLAPI Experimental Release 0.1.0

Discussion in 'MLAPI' started by luke-unity, Mar 23, 2021.

  1. luke-unity

    luke-unity

    Unity Technologies

    Joined:
    Sep 30, 2020
    Posts:
    126
    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:
    473
    You should pin this thread
     
    blabz2007 and luke-unity like this.
  3. Favo-Yang

    Favo-Yang

    Joined:
    Apr 4, 2011
    Posts:
    453
    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`.
     
    rango302 and Ruchir like this.
  4. CreativeChris

    CreativeChris

    Unity Technologies

    Joined:
    Jun 7, 2010
    Posts:
    384
    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:
    453
    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
     
    rango302 likes this.
  6. XCO

    XCO

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

    OutCyder

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

    Ruchir

    Joined:
    May 26, 2015
    Posts:
    473
    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

    Unity Technologies

    Joined:
    Sep 30, 2020
    Posts:
    126
    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
     
    Ruchir likes this.
  10. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    27,199
    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.
     
unityunity