diff --git a/README.md b/README.md index b9a8dd3c..a0494b2e 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,19 @@ ECS-focused high-level networking crate for the [Bevy game engine](https://bevyengine.org) using the [Renet](https://github.com/lucaspoffo/renet) library. -The crate provides component-oriented world state replication and exposes an events-based messaging API. - -Prediction and interpolation are not implemented in this crate, but the crate API is designed to be extensible so if your game needs something, you can implement it on top. Also check out [related crates](#Related-crates). +## Features + +- Authentication and encryption, using [`renetcode`](https://github.com/lucaspoffo/renet/tree/master/renetcode). +- Packet fragmentation and reassembly. +- Support for client and server both in one `App` and in separate. +- Customizable transport layer. Right now only Netcode is supported, but Steam, WebTransport, and memory channels are on the way (new Renet release is needed). +- Component-oriented world state replication. +- Events-based messaging API with different guarantees (reliable, reliable unordered, and unreliable). +- Control over client visibility of entities and events. +- Replication into scene to save server state. +- API focused on writing logic once that automatically works for singleplayer, client, server, and listen server (when server is also a player). + +Prediction and interpolation are not implemented in this crate and are considered out of scope. But the idea of the crate is to provide an extensible core, so if your game needs something, you can implement it on top. Also check out [related crates](#Related-crates). ## Getting Started