> For the complete documentation index, see [llms.txt](https://docs.coherence.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coherence.io/0.9/simulators/simulators-overview.md).

# Overview

### What is a Simulator?

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

{% hint style="success" %}
Simulators can also be independent from the game code. A Simulator could be a standalone application written in any language, including **C#,** **Go** or **C++** , for instance. We will post more information about how to achieve this here in the future. For now, if you would like to create a Simulator outside of Unity, please [contact our developer relations team](mailto:devrel@coherence.io).
{% endhint %}

### Why do you need a Simulator?

A Simulator can have various uses, including:

* Server-side simulation of game logic that cannot be tampered with
* Offloading processing from Game Clients
* Splitting up a large Game World with many Entities between them

Here are some examples of things a Simulator could be taking care of:

* Running all the important game logic
* Running NPC AI
* Simulating the player character (by receiving only inputs from the Clients through [Input Queues](/0.9/authority/input-queues.md))

### Associating Simulators with Rooms and Worlds

Although it is possible to upload many Simulator binaries with different versions of the **coherence** SDK and your game logic, currently our cloud services support associating one running Simulator per World or Room. This will be extended in the near future.

See [Room Simulators](/0.9/simulators/room-simulators.md) and [World Simulators](/0.9/simulators/world-simulators.md).
