# Overview

**coherence** is a network engine, platform, and a series of tools to help anyone create a multiplayer game.

Our **network engine** is our foundational tech. It works by sharing game world data via the [Replication Server](https://docs.coherence.io/1.2.4/manual/replication-server) and passing it to the connected Clients. The Clients, in this context, can be regular game Clients (where a human player is playing the game) or a special version of the game running in the cloud, which we call "Simulator".

While coherence's network engine is meant to be [game engine agnostic](#user-content-fn-1)[^1], we offer SDKs to integrate with popular engines (for instance, Unity).

The **coherence Unity SDK** provides a suite of tools and pre-made Unity components, and a designer-friendly interface to easily configure [network entities](#user-content-fn-2)[^2]. It also takes care of generating netcode[^3] via a process called "Baking". In fact, simple networking can be setup completely without code.

But coherence is not just an SDK.

The [**coherence Cloud**](https://docs.coherence.io/1.2.4/hosting/coherence-cloud) is a **platform** that can handle scaling, matchmaking, persistence and load balancing, all automatically. And all using a handy [Dashboard](https://docs.coherence.io/1.2.4/hosting/coherence-cloud/online-dashboard). The coherence Cloud can be used to launch and maintain live games, as well as a way to quickly test a game in development together with remote colleagues.

<div data-full-width="false"><figure><img src="https://2047761709-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ffo6vUwbCyyb7fmwjPG0A%2Fuploads%2FAqhBrxDNkZJlzk4GD5P2%2FOverviewGraph_Animated.gif?alt=media&#x26;token=e71bee0e-a753-422a-8671-28544b42b094" alt=""><figcaption><p>A game topology where 3 clients and 2 Simulators are connected to a coherence Replication Server</p></figcaption></figure></div>

## Important concepts

### [Replication Server (RS)](https://docs.coherence.io/1.2.4/manual/replication-server)

A lean and performant smart relay that keeps the state of the world, and replicates it efficiently between various Simulators and game Clients.

The Replication Server usually runs in the [**coherence Cloud**](https://docs.coherence.io/1.2.4/hosting/coherence-cloud), but developers can start it locally from the command line or the Unity Editor. It can also be run on-premise, hosted on your servers; or be hosted by one of the Clients, to create a [peer-to-peer](https://docs.coherence.io/1.2.4/hosting/client-hosting) scenario (Client-hosting).

### [Simulation Server ("Simulator")](https://docs.coherence.io/1.2.4/manual/simulation-server)

A special version of the Game Client without graphics (a "headless client"), optimized and configured to perform server-side simulation of the game world. When we say something is simulated "server-side", we mean it is simulated on one or several Simulators.

### Game Clients

A regular build of the game. To connect to coherence, it uses our[ **SDK**](https://docs.coherence.io/1.2.4/getting-started/installation).

Clients (and Simulators) can define [areas of interest](https://docs.coherence.io/1.2.4/manual/optimization/areas-of-interest) (Live Queries), levels of detail, varying simulation and replication frequencies and other [optimization techniques](https://docs.coherence.io/1.2.4/manual/optimization) to control how much bandwidth and CPU is used in different scenarios.

### [**Code generation ("Baking")**](https://docs.coherence.io/1.2.4/manual/baking-and-code-generation)

This is the process of [generating code](https://docs.coherence.io/1.2.4/manual/baking-and-code-generation) specific to the game engine that takes care of network synchronization and other network-specific code. This is also known as "baking", and it's a completely automated process in coherence, triggered by just pressing a button. You can however [configure it](https://docs.coherence.io/1.2.4/manual/advanced-topics/schema-explained) for very advanced use cases.

### [coherence Cloud](https://docs.coherence.io/1.2.4/hosting/coherence-cloud)

An easy-to-manage platform for hosting and scaling the backend for your multiplayer game. The coherence Cloud can host a Replication Server, but also Simulators.

In addition, every project can have a showcase page where you can host [WebGL builds](https://docs.coherence.io/1.2.4/support/webgl)!

### [Online Dashboard](https://docs.coherence.io/1.2.4/hosting/coherence-cloud/online-dashboard)

Our cloud-backed dashboard, where you can control all of the aspects of a project, configure matchmaking, Rooms, Worlds, and keep an eye on how much traffic the project is generating.

{% hint style="success" %}
For more coherence terminology, visit the [Glossary](https://docs.coherence.io/1.2.4/support/glossary).
{% endhint %}

[^1]: That is not specific to any particular engine.

[^2]: An object in the simulation that is visible to all connected Clients, and whose properties are synchronised over the network.

[^3]: The part of the code of a game in charge of defining how networking behaves.
