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.
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 also comes with a few helpful core components.
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 Play Mode, 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.
This Prefab includes all of the things that make coherence work.
- coherence Sample UI
- 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.
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 configure individual Prefabs' persistent, authoritative and network connect/disconnect settings. There's much more information on the CoherenceSync page.