48 个版本 (26 个破坏性更新)
0.27.0 | 2024 年 7 月 4 日 |
---|---|
0.26.3 | 2024 年 6 月 9 日 |
0.24.1 | 2024 年 3 月 7 日 |
0.18.2 | 2023 年 12 月 27 日 |
0.1.0 | 2023 年 3 月 28 日 |
#21 in 游戏开发
每月下载量 986 次
用于 8 crates
335KB
6K SLoC
Bevy Replicon
为 Bevy 游戏引擎 提供服务器授权网络功能的包。
功能
- 自动面向组件的世界状态复制。
- 基于事件的 messaging API,具有不同的保证(可靠的、可靠的无序的和不可靠的)。
- 控制实体和事件对客户端的可见性。
- 将复制到场景中以保存服务器状态。
- 支持在单个
App
中以及在单独的客户端和服务器中。 - 可自定义序列化和反序列化,即使是未实现
serde
特性的类型(如Box<dyn Reflect>
)。 - 没有内置的 I/O,可以与任何消息库一起使用。请参阅 消息后端 了解已提供的集成。
- API 专注于编写一次逻辑,自动适用于单人游戏、客户端、服务器和监听服务器(当服务器也是玩家时)。
如果您是网络的新手,请参阅 术语表。
目标
该包的目的是提供一个最小化和快速的内核,可以扩展所需的功能以确保流畅的游戏体验。考虑以下示例
- 一个节奏较慢的集中式托管游戏可能需要 ECS 级别的复制,并在其上添加一些插值。
- 节奏稍快的游戏可能更关注顺序,并需要一个锁步系统。
- 射击游戏需要玩家的客户端预测和其余部分的插值。
- 体育游戏或比大多数射击游戏更复杂的在线游戏需要整个世界级别的 ECS 复制,并具有完整回滚功能。
- 格斗游戏只需要复制一些输入事件,并在其上添加回滚功能。
所有这些示例都具有截然不同的优化要求。这就是模块化之所以至关重要的原因。它还允许更多开发者参与其中,并维护他们所使用的内容。
查看相关crates以扩展核心功能。
另请参阅X游戏应该使用什么类型的网络?。
入门指南
查看快速入门指南。
为了查看示例,请导航到消息后端仓库,因为运行它们需要I/O。
有任何问题?请随时在Bevy Discord服务器中的专用bevy_replicon
频道中提问。
相关Crates
[!WARNING] 确保您的
bevy_replicon
版本与所使用的crate兼容,根据语义版本控制。
消息后端
bevy_replicon_renet
- 对bevy_renet
的集成。由该crate的作者维护。bevy_replicon_renet2
- 对bevy_renet2
的集成。包括浏览器使用的WebTransport后端,并允许服务器同时管理多平台客户端。bevy_replicon_quinnet
- 对bevy_quinnet
的集成。
辅助Crates
bevy_bundlication
- 使用类似bundle的API添加复制组的注册。bevy_replicon_attributes
- 通过客户端属性和实体/事件可见性条件添加人体工程学可见性控制。此crate的原始客户端可见性API的扩展。
插值和/或回滚
bevy_replicon_snap
- 添加快照插值和客户端预测。bevy_timewarp
- 缓存组件状态的回滚库。请参阅此说明了解如何集成。
其他Crates
bevy_replicon_repair
- 保留复制客户端状态跨重连。
Bevy兼容性
bevy | bevy_replicon |
---|---|
0.14.0 | 0.27 |
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 |
依赖项
~40–77MB
~1.5M SLoC