If you’ve ever tried building a multiplayer game, you know it’s a lot of work. Even just getting to the point where you can pass data between two clients can be challenging. It’s so much work that many developers decide from the beginning not to create multiplayer games. We love multiplayer games and apps at Normal. Especially when it comes to VR, multiplayer turns what has the potential to be a very isolated experience, into a shared one.
When we started implementing our own multiplayer titles, we realized the multiplayer aspect was going to be a lot of work. Sending messages between clients, synchronizing & smoothing movement of objects, implementing voice chat, matchmaking, running servers, etc. The list piles up quickly, and there are many engineering challenges that aren’t obvious until you’re months or even years into a project.
We’ve spent the last three years working on Normcore, a Unity plug-in for our own internal use, implementing all the different pieces—state syncing, physics syncing, voice chat, persistence, fast serialization with versioning, delta compression, flow control, and much more. Through this process, we noticed a pattern: Everyone currently needs to implement each of these pieces from scratch.
We’re releasing Normcore in an effort to not only save developers time and encourage more multiplayer titles, but with the hopes of creating the best multiplayer networking plugin available. Our goal is to refine and improve Normcore until it becomes so good, you wouldn’t ever dream of writing your own multiplayer networking. You should be spending that time on your game anyway.
So, instead of a social VR platform, Normal sells a multiplayer networking plugin for Unity-based games. So it is “social” in that sense. But it’s not very interesting from an end-user point of view, so I’m not going to include it in my list of social VR/virtual worlds.