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 / 游戏开发

Download history 108/week @ 2024-05-13 16/week @ 2024-05-20 4/week @ 2024-06-10 401/week @ 2024-07-08 79/week @ 2024-07-15 3/week @ 2024-07-22 88/week @ 2024-07-29 10/week @ 2024-08-05 137/week @ 2024-08-12

每月238次 下载

MIT/Apache

2MB
37K SLoC

示例

此文件夹包含各种示例,展示lightyear的各种功能。

简单

  • simple_setup:最小示例,展示如何创建lightyear客户端和服务器插件
  • simple_box:示例,展示如何从客户端向服务器发送输入,以及如何添加客户端预测和插值

中等

  • replication_groups:示例,展示如何复制引用其他实体(例如,它们包含一个包含Entity id的组件)的实体。您需要使用ReplicationGroup来确保这些实体在相同的消息中复制
  • interest_management:示例,展示如何使用兴趣管理只向每个玩家复制实体子集,通过VisibilityManagerRoomManager
  • 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应用程序,其中服务器也将作为客户端。功能上,它类似于“监听服务器”模式,但您只有一个bevy World,而不是单独的客户端和服务器 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