#bevy-networking #web-rtc #udp #bevy #networking #gamedev

bevy_networking_turbulence

运行在 naia-socket 和 turbulence 库上的 Bevy 引擎的 Networking 插件

8 个不稳定版本 (3 个重大更改)

0.4.1 2022年1月16日
0.4.0 2022年1月14日
0.3.3 2021年7月14日
0.3.2 2021年6月26日
0.1.0 2021年1月6日

#2041 in 游戏开发


crystalorb-bevy-networkin… 中使用

MIT 许可证

43KB
835

bevy_networking_turbulence

运行在 Bevy 引擎 上,基于 naia-socketturbulence 库的 Networking 插件。

naia-socketturbulence 的组合允许通过 UDP 或类似 UDP 的连接(通过 WebRTC)交换原始消息,或者在这些 UDP/UDP-like 消息上构建不可靠/可靠的有序消息通道。

此插件在本地(Linux、Windows、MacOS)通过 UDP 数据包以及在浏览器/WASM 中通过 WebRTC 通道的类似 UDP 消息中均能工作。

尚未完成,但主要功能已正常工作。有关详细信息,请参阅 里程碑

测试

本地

在一个终端运行

$ env RUST_LOG=debug cargo run --example simple -- --server

在另一个终端运行

$ env RUST_LOG=debug cargo run --example simple -- --client

观察服务器和客户端之间的 PING/PONG 交换。您可以在更多终端中运行更多客户端。

WASM

在一个终端运行

$ env RUST_LOG=debug cargo run --example simple --no-default-features --features use-webrtc -- --server

examples/simple.rs / startup() 函数中的 IP 地址更改为指向您的本地计算机,并运行

$ cargo build --example simple --target wasm32-unknown-unknown --no-default-features --features use-webrtc
$ wasm-bindgen --out-dir target --target web target/wasm32-unknown-unknown/debug/examples/simple.wasm

通过 HTTP 服务器提供项目目录。例如(cargo install basic-http-server)

$ basic-http-server .

打开 http://127.0.0.1:4000,并在开发者工具中查看浏览器的控制台。您将看到与本地模式中相同的 PING/PONG 交换。

通道

在一个终端运行

$ env RUST_LOG=debug cargo run --example channels --features use-udp,bevy/default -- --server

在第二个终端运行

$ env RUST_LOG=warn cargo run --example channels --features use-udp,bevy/default -- --client

在第三个(和第四个,以及更多...)终端运行

$ env RUST_LOG=warn cargo run --example channels --features use-udp,bevy/default -- --client

您可以选择任何客户端窗口,并使用 Arrow-Left/Arrow-Right 光标键来改变“球”轨迹。观察您控制的球被同步到所有其他客户端。

带有图形和通道网络的 WASM

由于需要额外的依赖,我们决定将基于浏览器的图形通道示例保存在单独的存储库中。请参阅 https://github.com/ostwilkens/arugio 项目。它从简单的方形球示例发展而来,可能成为您游戏的基础。

client screenshot

依赖项

~18-41MB
~633K SLoC