7个版本
新 0.17.0 | 2024年8月17日 |
---|---|
0.16.4 | 2024年8月2日 |
0.16.3 | 2024年7月14日 |
0.15.1 | 2024年5月16日 |
661 / 游戏开发
每月238次 下载
2MB
37K SLoC
示例
此文件夹包含各种示例,展示lightyear的各种功能。
简单
simple_setup
:最小示例,展示如何创建lightyear客户端和服务器插件simple_box
:示例,展示如何从客户端向服务器发送输入,以及如何添加客户端预测和插值
中等
replication_groups
:示例,展示如何复制引用其他实体(例如,它们包含一个包含Entity id的组件)的实体。您需要使用ReplicationGroup
来确保这些实体在相同的消息中复制interest_management
:示例,展示如何使用兴趣管理只向每个玩家复制实体子集,通过VisibilityManager
和RoomManager
client_replication
:示例,展示如何从客户端复制实体到服务器。(即客户端具有权威性)priority
:示例,展示如何通过启用优先级累积来管理带宽。消息将按照其优先级顺序发送。
高级
xpbd_physics
:示例,展示如何使用xpbd复制物理模拟。我们还使用了leafwing
特性来更好地管理输入。spaceships
:比xpbd_physics
更高级的版本,基于力的玩家移动,完全服务器权威,预测子弹生成。bullet_prespawn
:示例,展示如何在前瞻时间线上生成玩家对象。这对于避免在对象生成之前等待完整的往返时间非常有用。auth
:一个示例,展示客户端如何获取ConnectToken
以连接到服务器lobby
:一个示例,展示如何动态更改网络拓扑。每个客户端都可能成为游戏的宿主(而不是专用服务器)。
运行示例
每个示例都以类似的方式运行。
存在不同的“模式”
- 作为一个专用服务器,使用以下命令:
cargo run -- server
- 作为一个监听服务器,使用以下命令:
cargo run -- client-and-server
。这将启动2个独立的bevy应用程序(客户端和服务器)在单独的线程中。它们将通过通道进行通信(因此几乎无延迟) - 作为一个监听服务器,使用以下命令:
cargo run -- host-server
。这将启动一个单独的bevy应用程序,其中服务器也将作为客户端。功能上,它类似于“监听服务器”模式,但您只有一个bevyWorld
,而不是单独的客户端和服务器Worlds
。
然后您可以使用以下命令启动客户端
cargo run -- client -c 1
(-c 1
覆盖客户端ID,使用客户端ID 1)cargorun --client -c 2
您可以通过修改 assets/settings.ron
文件来修改一些网络设置。
使用WebTransport测试wasm
注意:我正在使用trunk来构建和提供wasm示例。
要测试wasm中的示例,您可以运行以下命令:trunk serve
您需要有效的SSL证书才能使用WebTransport测试wasm中的示例。您需要运行以下命令
sh examples/certificates/generate.sh
(生成临时SSL证书,它们仅有效2周)cargo run -- server
以启动服务器。服务器将打印证书摘要(例如:1fd28860bd2010067cee636a64bcbb492142295b297fd8c480e604b70ce4d644
)- 然后您必须将
assets/settings.ron
文件中的证书摘要替换为服务器打印出的一个。 - 然后使用
trunk serve
启动客户端wasm测试
依赖项
~53–95MB
~1.5M SLoC