Why choose coherence?
And why coherence makes it feasible
Our main goal is to make multiplayer accessible for teams and individuals that wouldn't consider it otherwise because multiplayer is scary, expensive, requires dedicated expertise and overall is a risk you cannot take.
We know how it feels, because we're a bunch of gamedevs that have been there before.
This article explores what we bring to the table.
Porting to multiplayer at any stage — including post-release
It is generally believed that converting an existing single-player game to multiplayer is next to impossible. We've proven this wrong time and time again. We've ported projects, small and big, from proof-of-concept within days, to finished full-blown multiplayer within a few months.
The following features help understand why it can happen when leveraging coherence.
Composition, not inheritance
coherence networks GameObjects by adding a CoherenceSync component — as simple as that. There is no need to derive your scripts from any base class, which is especially painful when your architecture already relies on your objects deriving from a base class of your choice.

Sync what you already have
No NetVars, no custom serialization code. Syncing variables is super easy. No code involved—choose what you want to sync, and you're good to go.

This makes the transition to multiplayer smooth and quick, as you don't have to rewrite the networked components nor other parts of the codebase which rely on those variables.
Instantiate and destroy as you usually would
No special calls like netManager.Instantiate() or netManager.Destroy() needed. We handle all the networking bits of the object lifetime behind the scenes so that you can focus on the fun stuff.

Use your prefabs in single-player and multiplayer
Due to our flexible Component Actions system, you can choose what should happen when a given component is used in multiplayer. This makes it trivial to reuse the same Prefab in both single-player and multiplayer modes. Got a PlayerController, which should be enabled only for your player and not remote ones? Easy-peasy. Need a RigidBody to be kinematic on the remote player? One click away.

RPCs without branching
Whether online or offline, sending a command will have the same effect. Due to our Authority system, this works even if the command would normally be received by another Client—in single-player, you have the authority over all entities, and so the function will still be called. Neat!
Effortless bandwidth optimization
Even if porting initially goes smoothly, you might soon discover that the game feels extremely laggy. This fabulous horde of zombies is using too much bandwidth; yikes! You're left with a choice - redesign the game to be less cool or spend precious hours on handcrafting bandwidth optimizations for your networked objects.
We give you a third choice—keep the game cool and optimize within minutes. Trim your floats, limit your ints, remove whole components for objects at a distance—all with just a few clicks in our network LODing system. You are in control of every single bit!

Hierarchy and physics that just work
Hierarchy and physics are among the hardest elements to sync. We made sure you can be unbothered by them by making them work out-of-the-box.

Built-in interpolation
Even with the best netcode in the world, interpolation is what makes the difference between a smooth multiplayer experience and a choppy, rubber-banding slide show. We prefer the former, and thus, we provide you with a solid, yet flexible, state-of-the-art interpolation system.
While position, rotation, and scale are interpolated by default, you can enable interpolation for any synced variable with just one click. Choose between different forms of interpolation, tweak settings, or provide your own.

Quick iterations
Testing multiplayer can be extremely time-consuming, especially if it requires building a game client. Being mindful of this, we've made coherence compatible with ParrelSync and Multiplayer Play Mode out-of-the-box. These two solutions let you run multiple editor instances of your project, so you can skip the build process.
It's also possible to run multiple clients from within the same Unity editor, for an extremely fast prototyping worflow.

Flexible topology
Games have different networking needs. Coop games are usually played with friends and rarely need cheat prevention. Some games require cross-play, and others need persistent, cheat-proof worlds hosted on game servers.
coherence doesn't force you into a single networking topology. We don't follow the traditional client-server formula. Due to our flexible authority system, you can adjust topology at any stage of development rather easily.
Why overspend on dedicated servers early on if you can start with peer-to-peer at no infrastructure cost, test the waters, and move to a more secure option at any point?
An infrastructure built for coherence
Alongside all the tools you get for Unity development, you can opt-in to use coherence Cloud. We offer a very generous free tier with no compromise.
coherence Cloud is tightly integrated within the editor tools, and grants you quick and cost-effective access to a backend infrastructure to host your game on, allowing for cross-play, easy scaling, and services such as player accounts, lobbies or data storage.
This platform is also very useful in development stages, to get prototypes and ideas going among teams, and to organize playtest sessions with external users. We offer a game portal that hosts game builds to players — both web (playable from within the portal) and desktop builds (downloadable) gives zero-hassle access to your games, in a minutes-away deployment process.
Give it a shot!
You're now ready to tackle your first try at networking your game with coherence. We have all the tutorials and resources you need, as videos or interactive step-by-step demos, whichever you prefer. Good luck!
Last updated
Was this helpful?

