Start Tutorial

The Network Playground project is a series of scenes with different features of coherence for you to pick through and learn.

They will teach you the fundamentals that should set you on your way to creating a multiplayer game.

Scenes

Each Scene in this Network Playground Project shows you something new:

  • Scene 1. Synchronizing Transforms

  • Scene 2. Physics

  • Scene 3. Persistence

  • Scene 4. Synchronizing Animations and Custom Variables

  • Scene 5. AI Navigation

  • Scene 6. Commands

  • Scene 7. Team based

  • Scene 8. Connected Entities

Each scene comes with a few helpful core components.

Core Scene setup

This Prefab stores all the generic things that make up these simple Scenes.

  • Main Camera

  • Global Volume

  • Directional Light

  • Environment (Ground, Walls etc)

  • Navigation Interface

    • To move between the Scenes without having to enter and exit playmode, useful when testing the standalone build.

  • Input Manager

    • Input Manager that uses Raycasting to send a message to the GameObject (with a collider) that it hit.

Coherence Setup

This Prefab includes all of the things that make coherence work.

  • Interface

    • Canvas UI that handles Connection/Disconnection dialog and what address to connect.

  • Event System

    • Event system to interact with any UI in the scene.

  • coherence Live Query

    • Game Object/Component with a query radius that coherence uses to ask the server "What is happening in the query radius?" so it does not query unnecessarily big areas of large worlds. You can find more information here.

  • coherence Mono Bridge

    • GameObject/Component to transform the Mono based CoherenceSync component to archetypes so all data can be processed as ECS code.

coherenceSync (on coherence Entity Prefab)

We use this component on anything that we require to be networked, whether this is a playable character, NPC (non playing character), an object (ball, weapon, banana, car, plant etc) or any Game/Input Managers that require to sync data between Clients/Simulators/Servers.

It scans the inspector for attached components and allows us to sync those component values (as long as they are public) and communicate them to other clients. It also allows us to set individual Prefabs persistent, authoritative and network connect/disconnect settings. There's much more information on the CoherenceSync page

Last updated