#synchronization #bevy #sync #entity-component #netcode #bevy-plugin

bevy_sync

Plugin for synchronizing entities and components between server and its clients

30 releases

0.14.5 Oct 5, 2024
0.14.2 Sep 3, 2024
0.14.1 Jul 23, 2024
0.13.0 Feb 28, 2024
0.1.4 Jul 23, 2023

#291 in Game dev

Download history 145/week @ 2024-07-23 301/week @ 2024-07-30 3/week @ 2024-08-06 151/week @ 2024-09-03 1/week @ 2024-09-10 26/week @ 2024-09-17 106/week @ 2024-09-24 381/week @ 2024-10-01 64/week @ 2024-10-08 18/week @ 2024-10-15 9/week @ 2024-10-29 24/week @ 2024-11-05

60 downloads per month

MIT/Apache

120KB
3K SLoC

bevy_sync

crates.io build

Sync

Plugin for synchronizing entities and components between server and its clients. Uses bevy_renet.

Basic features

  • Entity synchronization
  • Entyty sync is based on UUIDs
  • Component synchronization
  • Parent/Child entity synchronization
  • Host switch / promotion
  • SimpleMaterial (through sync channel)
  • Serve assets through http
  • Asset: Mesh
    • programmatically created mesh
    • mesh from gltf: static
    • rigged
    • with morphs
  • Asset: Textures
  • Asset: Audio
  • Compressed Assets

Advanced features

  • UPnP
  • Steam sockets (steam sdk binding)
  • Throttleable sync (time window queuing)
  • Skippable channel for Unordered+Unreliable
    • Transform

Asset are synchronized only if they are added to bevy by uuid.

Examples

Run both examples so the they connect to each other:

  • cargo run --example host
  • cargo run --example client

Then open the editor and change a component value in one to see it reflected in the other.

Versions

Base version of bevy_sync is inherited from bevy version.

bevy bevy_sync
0.12 0.12.x
0.13 0.13.x
0.14 0.14.x
... ...

Dependencies

~29MB
~532K SLoC