# Overview

### What is a simulator?

A **simulation server** or **simulator** is a version of the game client without the graphics ("headless client") optimized and configured to perform 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 we 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.5.2/authority/input-queues.md))

### How many simulators can we have per project?

We can have as many simulators as we like. They will connect to the replication server like any other game client.&#x20;

{% hint style="info" %}
Our cloud services only support uploading one simulator to the cloud during our alpha. This will be extended in the near future. Enterprise customers can still run multiple simulators in their own cloud environment.
{% endhint %}

### Enabling the Simulator

See [Enabling the simulator](/0.5.2/developer-portal/replicator-and-simulator-configuration.md#enable-and-size-the-simulator) to enable the simulator for your project.


---

# 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/0.5.2/simulators/simulators-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.
