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 游戏开发
43KB
835 行
bevy_networking_turbulence
运行在 Bevy 引擎 上,基于 naia-socket 和 turbulence 库的 Networking 插件。
naia-socket 和 turbulence 的组合允许通过 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 项目。它从简单的方形球示例发展而来,可能成为您游戏的基础。
依赖项
~18-41MB
~633K SLoC