Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

Suggestion: Turn the UNET HLAPI into an 'official' asset store package

Discussion in 'UNet' started by PhilSA, May 10, 2017.

  1. PhilSA

    PhilSA

    Joined:
    Jul 11, 2013
    Posts:
    1,926
    I think it would be a good idea to turn the HLAPI (everything except the NetworkTransport) into an asset store package. Here's why:
    1. Easy access to the source code
      Right now, the only way I know to edit the HLAPI source code is to go here ( https://bitbucket.org/Unity-Technologies/networking ), modify the code and compile a new dll. It happens pretty often that you want to add methods to NetworkWriter/NetworkReader to add custom types support in order to send them through RPCs. And sometimes you'd want to modify things like NetworkManager or PlayerController in order to plug your own custom game logic into them instead of making tons of wrappers and extra layers of inheritance for everything. The code should be more easily accessible, and downloading it in the form of a package would be a great solution. Besides, the bitbucket version doesn't seem super up-to-date (?)
    2. Less bloat and confusion for those who only want the LLAPI
      Right now there's no way to access the NetworkTransport without adding the whole UnityEngine.Networking namespace, which contains the HLAPI. This is problematic when working in teams because you end up in situations where you have for example "NetworkServer" and "GameNetworkServer" (which is your own custom server class created with the NetworkTransport), and it isn't clear which one we're supposed to be using. It would be better if the HLAPI was a completely separate thing
    Is this a possibility that can be evaluated?
     
    Last edited: May 10, 2017
    Deleted User likes this.
  2. DBronson

    DBronson

    Unity Technologies

    Joined:
    Oct 1, 2016
    Posts:
    12
    Thanks for the feedback PhilSA. Also, thanks for providing your specific reasons, we may not come to the same conclusion in terms of a solution but we will certainly evaluate how to address these concerns.
     
    PhilSA likes this.
  3. robochase

    robochase

    Joined:
    Mar 1, 2014
    Posts:
    242
    this is a pretty interesting idea. i think what you'd want is a hybrid approach where it falls back to the default unet installation if you haven't downloaded the asset from the store. this way you avoid any complications for people just learning who shouldn't need to worry about downloading the right version from the asset store. but you'd run into some problems when deciding whether they have a custom unet version somewhere in their project without some strict enforcement like 'the custom unet version must always live in Assets/Plugins/Unet' or something like that.

    the downsides are pretty small compared to the upsides. it would be lovely to have the source code living inside your unity project instead of dealing with DLLs and an external library that's hard to debug.