Client vs Simulator logic
When scripting Simulators, we need mechanisms to tell them apart.
Am I a Simulator ?
Ask Coherence.SimulatorUtility.IsSimulator
.
There are two ways you can tell coherence if the game build should behave as a Simulator:
COHERENCE_SIMULATOR
preprocessor define.--coherence-simulation-server
command-line argument.
Connect
and ConnectionType
Connect
and ConnectionType
The Connect
method on Coherence.Network
accepts a ConnectionType
parameter.
COHERENCE_SIMULATOR
Whenever the project compiles with the COHERENCE_SIMULATOR
preprocessor define, coherence understands that the game will act as a Simulator.
Command-line argument
Launching the game with --coherence-simulation-server
will let coherence know that the loaded instance must act as a Simulator.
You can supply additional parameters to a Simulator that define its area of responsibility, e.g. a sector/quadrant to simulate Entities in and take authority over Entities wandering into it.
You can also build a special Simulator for AI, physics, etc.
Server-side simulation
You can define who simulates the object in the CoherenceSync inspector.
Auto-reconnect
The sample UI provided includes auto-reconnect behaviour out of the box for Room- and World-based simulators. The root GameObject has AutoReconnect components attached to it.
Multi-Room Simulators have their own per-scene reconnect logic. The AutoReconnect components should not be enabled when working with Multi-Room Simulators.
If the Simulator is invoked with the --coherence-play-region
parameter, AutoReconnect will try to reconnect to the Server located in that region.
Last updated