speaker
Announcement: coherence 1.1 is now released! See what's new with 1.1

A multiplayer networking solution for everybody

coherence is a complete, all-needs-covered toolkit for getting your projects working in multiplayer.

coherence logoGet Started
features

A Unity multiplayer networking solution for all developers

We’re with you every step of the way from development to testing and running your game locally or in the cloud, with hosting included right out of the box.  Try anything from a simple co-op to dozens of players duking it out in a room-based match or even create a fully populated massive virtual world. coherence supports each of these use cases, and it lets you combine them as well. Run your dream project at any scale, in the cloud or with automatic scaling, or completely for free using client-hosting through Steam or other services. 

Key Features

Explore some of what makes coherence the most flexible networking platform available.

EASE OF USE

Best in class ease of use.

As veteran game developers we have addressed all the hard pain points, making coherence almost effortless to use compared to typical Unity networking solutions. We’ve spent massive amounts of time and effort - so you don’t have to! After a quick installation of the coherence Unity package it takes just a few moments to configure a scene and game objects so they can see each other over the network. Using our free cloud hosting option, you can then deploy your project online directly from within the Unity editor.

To see what we mean, check out this short video to learn just how easy it can be to turn your single-player game into a multiplayer one with coherence.

Best in class ease of use.
State Replication

Accurate and fast data replication.

For a multiplayer game to function, the data for all the players and the game world has to be accurately and speedily replicated to every participating player’s Game Client.

A key part of coherence is a very smart relay called the Replication Server. The Replication Server is a lean and performant server that keeps the state of the world and replicates it efficiently between various Simulators (or game servers) and Game Clients.

The Replication Server can be run locally during development, and in the cloud or bundled with the game when in production or during online tests.

coherence also comes with a powerful client-side prediction solution that supports rollback and synchronizes inputs in deterministic simulations.

Accurate and fast data replication.
Tick-Based Simulation

Smooth simulation, flexible client update rates.

coherence uses tick-based simulation, meaning that all networked Game Objects get updated at regular intervals to keep the simulation going. As Game Objects can only respond to game events when they receive a tick, it means that getting the interval between two ticks to be as small as possible improves the experience. On the other hand, this has to be balanced against available computational resources and bandwidth budget, creating a trade-off scenario.

coherence can run your game’s simulation at 60Hz or even faster, but the update rate to Game Clients is flexible and can be configured from 20 to 60Hz, in 1Hz increments, as needed.

When the update rates get more sparse, the built-in and configurable interpolation steps in to fill in the gaps and help maintain fidelity of the experience.

Smooth simulation, flexible client update rates.
Client-Side Prediction with Rollback

High-fidelity interpolation with historical states.

Client-side prediction is what happens when there are no inputs from the Replication Server due to a bad connection, lag or any number of reasons that degrade the connection quality. In the absence of inputs, it’s up to the Game Client to maintain fidelity and keep the game running as if nothing happened.

This is achieved by client-side prediction as well as interpolation.

While the default implementations shipped with the engine work well for most use cases, they are also highly configurable and developers can even circumvent state replication entirely and implement their own prediction algorithms based on historical states accessible through the API to cater to specific project needs.

High-fidelity interpolation with historical states.
Flexible Authority Model

Seamless authority transfer between clients and servers.

Let’s take a game of virtual football as an example. There are 22 players in the match, but just one ball. It stands to reason that only the player who can touch the ball can give it inputs. That player is then said to have what’s called Authority over the game object.

In more technical terms, Authority defines which Client or Simulation Server is allowed to make changes to a Game Object.

In coherence, authority can be transferred freely and instantly between game clients and dedicated servers using the API.

This allows for extremely flexible game architectures, from client-server, peer-to-peer, MMO with multiple simulation servers splitting up the world, and any combination of the above.

Seamless authority transfer between clients and servers.
WORLD ORIGIN SHIFTING

Build extremely large worlds with 64-bit world origin shifting.

Most game engines, like Unity, use 32-bit numbers to represent positions within the world. This usually limits the size of a game world to a few thousand meters, or just a few miles, before precision is too low for accurate simulation.

This is often not sufficient, especially when building open-worlds, MMOs or space exploration games.

That's why coherence lets you move a 64-bit origin of the world in real time, and takes care of all the internal mappings without actually synchronizing all the positions with 64-bit precision (which would have a big impact on bandwidth use).

With world origin shifting, you will actually be able to build a game world that reaches from here to Mars and far beyond with a precision of less than a milimeter!

Build extremely large worlds with 64-bit world origin shifting.

A one-stop shop.

Everything you need to build a real-time multiplayer experience, at any scale. Here are a few more features that can help make your project great.

Rooms And Worlds
Rooms And Worlds

coherence provides two types of replicated environments - Rooms and Worlds. Rooms are best for session-based multiplayer gameplay that takes place in a short-lived environment. Think of a tennis match, a first-person shooter map, or a race track session. The players go in, play until the end, the results get recorded and the Room is closed. Worlds on the other hand are long-lived and permanent multiplayer environments that can keep running for years. This is how MMOs are built.

Bandwidth Optimization
Bandwidth Optimization

Using as little bandwidth as possible is often key to running a viable multiplayer game. Data is replicated only where absolutely needed and at the resolution required at any given moment. Beyond cutting down on your platform costs, the benefits of bandwidth optimization also stretch to the client side: lower RAM use, better battery life for mobile devices and better results over low-speed or congested connections. In addition to bit streams, delta compression and quantization, coherence uses features like Area of Interest, variable sample rate and Levels of Detail to give developers unprecedented control over bandwidth use.

Build Sharing
Build Sharing

You’ve finished building your multiplayer game client, but how do you share it for feedback? Whether it be a Windows, Mac or a Linux build, once you upload it to the coherence Cloud you will get a shareable URL that leads to your Public Builds page. Anyone can then download the Client from there. But wait, we have one more trick up our sleeve! If you choose the WebGL build that allows your game to be played in browsers, you will experience the ultimate in sharing ease. Share a URL and players can get straight into the game.