Unification Status

What is the current progress of the netcode unification initiative? Ever since this was announced last year, we are kept in the dark and we don’t know what form it will take. I have so many questions:

  • Will this unification have the same API as NGO? Or will it be entirely different? NGO 3.0 or a third new netcode library perhaps?
  • Are we close to seeing an alpha/beta version of this unification?
  • Any technical hurdles the team is facing?

Additionally, I’ve been skimming through the NGO 2.0 source code and I was under the impression that this version would be the result of the unification. But new features like anticipation (a subset of client-side prediction) and Distributed Authority which I think Netcode for Entities doesn’t support right now would mean there is now a feature split between the two libraries. I thought the way it would work was that all the networking logic will be under NFE and NGO would just be some form of wrapper for it. Hopefully this isn’t a repeat of the URP/HDRP feature chasm that plagued Unity.

So much to unpack here. Firstly, yes we have been operating in the dark, it is a sizeable chunk of work and our design and research continue with not much to report at this stage. We’re very much pre-alpha and I aim to share much more as we progress to something meaningful, maybe early next year :slight_smile:

We’re utilising the opportunity to enhance what NGO offers and dispose of what we don’t need but a lot of that is still TBD.

Currently, the GameObect layer/wrapper exists within the Netcode for Entities package, so it won’t be a second, third or fourth Netcode offering, and it’ll be optional, as there are users who will want to continue with pure-ECS.

The Unification effort was also influenced by not wanting to be in a perceived repeat of the render pipeline situation, however, with Netcode solutions, it is fair to say there is no silver bullet out there. For example, whenever we do a Deterministic Lockstep model, likely that’ll need to be a separate package. With Multiplayer, you need to pick a netcode solution right for your game and unfortunately, there is not one package to rule them all. But what we don’t want to be in is a position where NGO and Netcode-Entities are offering similar feature sets and competing against each other, as that doesn’t help anyone. With that, currently, our product positioning is small-scale co-operative games utilise Netcode for GameObjects – fast-paced competitive utilise Netcode for Entities – our new Multiplayer Center tool coming to Unity 6.0 helps with this, as it recommends the packages you need depending on the game configuration you input.

4 Likes

Are there any updates or expected timeline on this? I’m currently deciding what networking solution to go for and the inclusion of prediction and lag compensation is of interest to me in NGO.

Hey there, lBeansprout
Thanks for your interest in this effort. There are currently no updates we can share about the netcode unification, but work is still ongoing.
To clarify our current offerings: there is no prediction or lag compensation in Netcode for GameObjects, but Netcode for Entities already supports both features. If those components are necessary for your game, I’d recommend exploring whether Netcode for Entities fits your project’s needs.
We’ll share more details when we’re able to.

2 Likes

Hey @miniwolf_unity,

Thanks for the quick reply, glad to hear that work on the unification is still ongoing. Looking forward to hearing more details in the future.

In the meantime I’ll also look into Netcode for Entities like you suggest.

Cheers!