A replication crate for the Bevy game engine.
If you are new to networking, see glossary and What kind of networking should X game use?.
- Automatic world replication.
- Remote events and triggers.
- Control over client visibility of entities and events.
- Replication into scene to save server state.
- Customizable serialization and deserialization even for types that don't implement
serde
traits (likeBox<dyn Reflect>
). - Abstracts game logic to support singleplayer, client, dedicated server, and listen server configurations simultaneously.
- No builtin I/O, can be used with any messaging library. See messaging backends for already available integrations.
- Heavily optimized.
- Hackable. See ecosystem.
Check out the quick start guide.
For examples navigate to the bevy_replicon_example_backend
(because you need I/O in order to run them).
You can also:
- Watch my talk at Bevy Meetup #9
- Read this great article (not mine)
Have any questions? Feel free to ask in the dedicated bevy_replicon
channel in Bevy's Discord server.
Depending on your game, you may need additional features. We provide an API that allows external crates to integrate with Replicon or to be built on top of it.
Warning
Ensure that your bevy_replicon
version is compatible with the used crate according to semantic versioning.
bevy_replicon_renet
- integration forbevy_renet
. Maintained by the authors of this crate.bevy_replicon_renet2
- integration forbevy_renet2
. Includes a WebTransport backend for browsers, and enables servers that can manage multi-platform clients simultaneously.bevy_replicon_quinnet
- integration forbevy_quinnet
.aeronet_replicon
- integration foraeronet
. Works on any IO layer supported byaeronet_io
, but requiresaeronet_transport
.
bevy_replicon_snap
- adds snapshot interpolation and client-side prediction.
bevy_replicon_attributes
- adds ergonomic visibility control through client attributes and entity/event visibility conditions. An extension of this crate's raw client visibility API.
bevy_replicon_repair
- preserves replicated client state across reconnects.bevy_bundlication
- adds registration of replication groups using a bundle-like api.
bevy_timewarp
- a rollback library that buffers component state. See this instruction about how to integrate.
bevy | bevy_replicon |
---|---|
0.15.0 | 0.29-0.32 |
0.14.0 | 0.27-0.28 |
0.13.0 | 0.23-0.26 |
0.12.1 | 0.18-0.22 |
0.11.0 | 0.6-0.17 |
0.10.1 | 0.2-0.6 |
0.10.0 | 0.1 |
Licensed under either of Apache License, Version 2.0 or MIT License at your option.