LogoLogo
⚠️ Outdated documentationGo to LatestHomeAPI
SDK 1.2
SDK 1.2
  • Welcome
  • Overview
    • How does coherence work?
    • Rooms, Worlds and Lobbies
    • Features and Roadmap
  • Learn
    • Beginner's guide to networking
    • Package samples
    • First Steps tutorial
      • 1. Basic syncing
        • 1.2. Animation parameters
        • 1.3. Sending commands
      • 2. Physics / Authority transfer
      • 3. Areas of interest
      • 4. Parenting entities
      • 5. Complex hierarchies
      • 6. Persistence
    • Campfire project
      • Game mechanics
      • Leveraging object pooling
      • Remote interactions: Chairs
      • Remote interactions: Trees
      • A unique object with complex state
      • Custom instantiation and destruction
      • Running a server-side NPC
      • Playing audio and particles
      • A simple text chat
    • How to network [genre]…
      • Racing
      • Turn-based
      • First-Person Shooter
      • MMO
      • Fighting
    • Video tutorials
  • Get started
    • Install coherence
    • Scene Setup
      • Sample UIs
    • Prefab setup: CoherenceSync
    • Local Development
      • Local Testing via Player Builds
      • Local Testing via Unity's Multiplayer Play Mode (MPPM)
      • Local Testing via ParrelSync
    • coherence Cloud
      • Create a free account
      • Deploy a Replication Server
      • Share builds
  • coherence SDK for Unity
    • Upgrade Guide
      • Upgrade 1.1 -> 1.2
      • Upgrade 1.0 -> 1.1
      • Upgrade 0.10 -> 1.0
      • Upgrade 0.9 -> 0.10
    • Components
      • CoherenceSync
      • CoherenceBridge
      • CoherenceLiveQuery
      • CoherenceTagQuery
      • Order of execution
    • Asset Management
      • Using CoherenceSyncConfig to instantiate GameObjects locally
    • Networking State Changes
      • Supported types
      • Messaging with Commands
      • Syncing child GameObjects
      • Parenting network entities
        • Direct child CoherenceSyncs
        • Deeply-nested CoherenceSyncs
        • Nesting Prefabs at Edit time
      • Animation
      • CoherenceSync references
      • [Sync] and [Command] Attributes
      • [OnValueSynced] Attribute
      • Creating your own syncable member
      • Custom Component Actions
    • Baking (code generation)
    • Scene Management
    • Authority
      • Authority transfer
      • Server-authoritative setup
    • Lifetime
      • Persistence
      • Uniqueness
      • Example – a global counter
    • Optimization
      • Simulation Frequency
      • Areas of Interest
      • Level of Detail (LOD)
    • Profiling
    • Interpolation
    • Rigid Bodies
    • Settings
    • Simulation Frame
    • Replication Server
    • Simulators
      • Scripting: Client vs Simulator
      • Local Development
      • World Simulators
      • Room Simulators
      • Simulator Slugs
      • Multi-Room Simulators
      • Build and Publish
      • Command-line arguments
      • Load Balancing
    • Client-Hosting
    • Client Connections
    • Rollback Networking Support
    • World Origin Shifting
    • Offline gameplay
    • CLI
    • Code Stripping
    • Version Control Integration
  • Hosting & Cloud
  • coherence Cloud
    • Developer Portal
    • Dashboard
    • Worlds
    • Rooms
    • Lobbies
    • Game Services
      • Account
      • Key-Value Store
    • Using coherence Cloud in Unity
      • Worlds
      • Rooms
      • Lobbies
      • Game Services
        • Authentication Service (Player Accounts)
        • Key-value store
  • Schema explained
    • Overview
    • Specification
    • Field settings
    • Archetypes
  • coherence API reference
  • Additional resources
    • Community
    • Continuous Integration
    • Unreal Engine Support
    • WebGL Support
    • Peer-to-Peer Support (P2P)
    • Glossary
  • Credit cost & pricing
  • Known Issues and Troubleshooting
  • Release Notes
Powered by GitBook
On this page
  • What is coherence made of?
  • State Replication

Was this helpful?

Export as PDF
  1. Overview

How does coherence work?

Was this helpful?

coherence works by sharing game world data via a in the cloud and passing it to the connected Clients.

The Clients and can define (LiveQueries), , varying simulation and replication and other optimization techniques to control how much bandwidth and CPU power is used in different situations.

The game world can be run using multiple Simulators that split up simulation functions or areas of the world accordingly.

The platform handles scaling, synchronization, persistence and load balancing automatically.

What is coherence made of?

Replication Server (RS)

Game Client

Simulation Server ("Simulator")

Schema

Code generation ("Baking")

State replication

State Replication

The game world can be run using multiple Simulators that split up simulation functions or areas of the world accordingly.

The platform handles scaling, synchronization, persistence and load balancing automatically.

Fast authority transfer and remote commands allow different , including Client authority, Server authority, distributed authority and combinations like Client prediction with .

A lean and performant server that keeps the state of the world and replicates it efficiently between various Simulators and Game Clients. The usually runs in the , but developers can start it locally from the command line or the Unity Editor.

A build of the game. To connect to coherence, it will use the .

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

A text file defining the structure of the world from the network's point of view. The is shared between the Replication Servers, Simulators and Game Clients. The world is generally divided in components and archetypes.

This is the process of specific to the game engine that takes care of network synchronization and other network-specific code. This is also known as Baking and is done using a CLI tool called Protocol Code Generator that takes the schema file and generates code for various engines (e.g. C# for Unity).

The process of making sure the state of the world is eventually the same on the Replication Servers, Simulators and Game Clients, depending on their .

coherence works by sharing game world data via a in the and passing it to the connected Clients.

The Clients and can define (LiveQueries), levels of detail, varying simulation and replication frequencies and other to control how much bandwidth and CPU power is used in different situations.

Fast authority transfer and remote commands allow different authority models, including Client authority, Server authority, distributed authority and combinations like Client prediction with .

support (without a Replication Server) is available starting from coherence version 1.0.

authority models
input queues
Replication Server
coherence Cloud
coherence SDK
Simulator
schema
generating code
areas of interest
Replication Server
cloud
Simulators
areas of interest
optimization techniques
input queues
Peer-to-peer
Replication Server
Simulators
areas of interest
levels of detail
frequencies