Voxel Plugin
1.2 Legacy
1.2 Legacy
  • Getting Started
    • Quick Start
      • Examples
    • World Generation
      • C++ World Generators
      • Voxel Graph Quick Start
      • Floating Islands
  • Core Systems
    • VoxelWorlds
      • Import Content
      • Voxel Data Items
      • Collisions and Navmesh
      • World Size and Level Of Details
      • Save and Load
      • Multiplayer
      • Easy Systems RPG
    • Voxel Graphs
      • Voxel Graph General Concepts
      • Voxel Graphs Tips and Tricks
      • Voxel Graph Nodes Reference
      • Voxel Graph Outputs
      • Voxel Graph Parameters
      • Custom Graph Nodes
    • Voxel Spawners
    • Materials
      • Multi Index Materials
  • Technical Notes
    • Performance and Profiling
    • Console Commands
    • Blueprint API
    • Release Notes
      • Release Notes 1.1
      • Release Notes 1.2
    • UE5.1 - Material Crash
Powered by GitBook
On this page
  • Manual Multiplayer
  • Setup
  • TCP Multiplayer
  • Setup
  • Examples
  • Tool Determinism

Was this helpful?

  1. Core Systems
  2. VoxelWorlds

Multiplayer

There are 2 ways to do multiplayer in the plugin. Both are server authoritative: the edits happen on the server & are then synced to the clients.

Manual Multiplayer

Available in both free and pro.

Uses RPCs to synchronize a list of edit "actions" (eg, add sphere at X Y Z).

Does not currently support join-in-progress and save sync, but should be possible with a careful splitting of the binary data to fit into RPCs.

Will work on anything that supports Unreal networking (Steam...)

Setup

Check the example

TCP Multiplayer

Available only in pro.

Uses a custom TCP socket to replicate the edits made on the server to the client at the voxel level.

The client sends RPCs to the server to make the edits (eg, add sphere here), but the edit themselves do not need to be deterministic since they only happen on the server.

Supports join-in-progress and save synchronization.

Since the voxels are synchronized and not the edits, the bandwidth usage will be higher: this is however not a real issue as TCP sockets perform much better than Unreal RPCs at sending large amount of data.

Requires the server ports to be open, so won't work on Steam.

Setup

You will need to tick Enable Multiplayer and do the following setup in your voxel world BP:

Additionally, make sure to not edit the client voxel worlds but to send RPCs to the server instead.

See /Voxel/Examples/Multiplayer/Tcp/VoxelWorldExample_Multiplayer_Tcp for an examples.

Examples

Examples for both of these are located under Voxel/Examples/Maps/Multiplayer/

Tool Determinism

For manual multiplayer, tools need to be deterministic.

For Trim and Flatten, additional rays are emitted when editing, making them not deterministic.

Any other tool should be deterministic as long as you use Apply Tool to make the actual edit, like in the example.

PreviousSave and LoadNextEasy Systems RPG

Last updated 1 year ago

Was this helpful?