NormCore, a Unity Netcode plugin??

Has anyone heard of this netcode plugin for Unity before?

https://www.normalvr.com/blog/normcore/

Is it as useful as the blog suggests?

1 Like

It looks nice! I'd suggest investigating it's capabilities and limitations fully to understand if it fits any needs you have for a project you might be building.

In terms of usefulness, that is subjective to what you are trying to build. Normcore seems to suggest they are primarily filling a VR and VOIP gap with projects build in Unity, and the lack of determinism in the PhysX. So in that regard it may be quite useful. I can't find any mention of server rewind, interpolation, or rollback, so if you are looking into highly-competitive multiplayer projects that require that and you don't want to write it yourself, this may not be the netcode for you. Definitely depends!

I've used it, it's pretty nice. but it totally depends on your needs and use case.

We've been using it for about a year now for a mobile app that's due out this year. So far, only at pretty limited beta test scale so can't really speak to scaling when it comes to running hundreds or thousands of rooms on their servers (we are using their hosting).

The API is clean. Easy to use. Not a great deal of flexibility but if Normcore's model works for you, you're up and running fast and reliably. If you end up needing to, for example, transmit data that doesn't readily fit their model (e.g. collections of primitive data), then things get iffy. Writing a network sync of an Animator, for example, is super straightforward IF you're okay hardcoding states and parameter/triggers into the model. If you want something that can network any Animator, it gets tricky because you can't have collections (except for the heavy collections of models) and would have to come up with workarounds.

The ownership model allows for some clever networking stuff but can be iffy to work with. Setting up mixed ownership can be painful.

Documentation is decent-ish.

No ability to customize prefab spawning and they all have to go into the Resources folder. That part is not great (////EDIT: there actually is an API hook that you can use to take over the actual spawning such that you can put the data anywhere).

Performance so far has been stellar. We've been impressed by the low-latency network performance we're seeing in our mobile-to-mobile fighting game.

The code generation part is a little annoying, but not a massive deal.

Can't speak to cost yet because we've not run at scale yet.

There is the option to self-host servers as well as to put server logic in rooms. We haven't yet tried either but we're happy that the options are there.

All in all, we're very happy with Normcore so far.

3 Likes