#networking #web-rtc #udp-server #udp #gamedev #udp-client #server-client

naia-client

提供跨平台的客户端,可以发送/接收服务器消息,并具有与服务器同步的作用域实体/组件池

29个版本 (18个破坏性更新)

0.22.0 2024年1月10日
0.21.1 2023年8月25日
0.21.0 2023年4月23日
0.20.1 2023年3月23日
0.1.1 2020年7月6日

#362 in 网络编程

Download history 89/week @ 2024-04-01 2/week @ 2024-05-20 1/week @ 2024-06-10

每月下载量284
2 crates 中使用

MIT/Apache

605KB
14K SLoC

Latest Version API Documentation Discord chat MIT/Apache

naia

a networking architecture for interactive applications

一个跨平台(包括Wasm!)网络引擎,旨在使Rust的多玩家游戏开发变得极其简单和快速。

naia帮助您轻松定义一个共同的、共享的协议,允许服务器和客户端交换信息。然后,naia便于在服务器和客户端之间发送/接收该协议的部分作为可靠/不可靠的消息,并且还维护一个与每个客户端同步的跟踪实体池,这些客户端的作用域内包含它们。

API深受Nengi.js & Colyseus JavaScript多玩家网络库的启发。内部结构遵循Tribes 2网络模型相当紧密。

非常感谢Kyren的支持 & webrtc-unreliable,以及Laminar的作者,他们的代码被采纳其中。

非常欢迎任何帮助,请与我联系!我愿意接受任何批评/反馈,以便改进这个项目。

目前保证在Web和Linux上工作,尽管已报道Windows和MacOS也能正常工作。如果您发现不一致的地方,请提交问题,我会尽力解决。

有关更详细的信息,请参阅常见问题解答

演示

更多全面的技术文档/教程正在制作中,但到目前为止,开始使用naia的最佳方式是查看基本演示,该演示展示了大多数功能。

服务器

在Linux上运行UDP服务器演示:(这将能够与Linux客户端通信)

1. cd /naia/demos/basic/server
2. cargo run

在Linux上运行WebRTC服务器演示:(这将能够与Web客户端通信)

1. // go to (https://docs.rs/openssl/latest/openssl/) to install openssl on your machine
2. cd /naia/demos/basic/server
3. cargo run

客户端

在Linux上运行UDP客户端演示:(这将能够与UDP服务器通信)

1. cd /naia/demos/basic/client/wasm_bindgen
2. cargo run

在Web上运行WebRTC客户端演示:(这将能够与WebRTC服务器通信)

1. cargo install cargo-web  // should only need to do this once if you haven't already
2. cargo install cargo-make // should only need to do this once if you haven't already
3. cd /naia/demos/basic/client/wasm_bindgen
4. make serve
5. Web page will be blank - check debug console to see communications from the server

已知问题

要运行miniquad客户端,您需要以下内容已安装

sudo apt-get install libxi-dev libgl1-mesa-dev

依赖项

~1–19MB
~322K SLoC