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
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