# Overview

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

<div data-full-width="false"><figure><img src="https://content.gitbook.com/content/CMCtKgV0bk1lwR4tWK3W/blobs/BeaWYZjfzyhszpwCSz5y/OverviewGraph_Animated.gif" alt=""><figcaption><p>A game topology where 3 clients and 2 Simulators are connected to a coherence Replication Server</p></figcaption></figure></div>

Our **network engine** is our foundational tech. It works by sharing game world data via the [Replication Server](https://docs.coherence.io/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], at the moment we only offer an SDK for Unity. We're hoping to change this in the future.

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/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/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.

For more information about how a network topology is structured in coherence, check out this video:

{% embed url="<https://www.youtube.com/watch?v=EpIlyg164w8>" %}

## Important concepts

### [Replication Server (RS)](https://docs.coherence.io/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/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/hosting/client-hosting) scenario (Client-hosting).

### [Simulation Server ("Simulator")](https://docs.coherence.io/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/getting-started/installation).

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

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

This is the process of [generating code](https://docs.coherence.io/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/manual/advanced-topics/schema-explained) for very advanced use cases.

### [coherence Cloud](https://docs.coherence.io/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/support/webgl)!

### [Online Dashboard](https://docs.coherence.io/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/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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.coherence.io/overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
