#networking #multiplayer-game #web-rtc #interactive-applications #server-client #udp #gamedev

naia-shared

naia-server 和 naia-client 软件包之间共享的常用功能

29 个版本 (17 个破坏性版本)

0.22.0 2024年1月10日
0.21.1 2023年8月25日
0.21.0 2023年4月23日
0.20.0 2023年3月20日
0.1.2 2020年7月7日

游戏开发 中排名 127

Download history 16/week @ 2024-04-20 21/week @ 2024-04-27 19/week @ 2024-05-04 16/week @ 2024-05-11 19/week @ 2024-05-18 15/week @ 2024-05-25 17/week @ 2024-06-01 14/week @ 2024-06-08 12/week @ 2024-06-15 8/week @ 2024-06-22 1/week @ 2024-06-29 7/week @ 2024-07-06 14/week @ 2024-07-13 3/week @ 2024-07-20 193/week @ 2024-07-27 8/week @ 2024-08-03

每月下载量 218
8 软件包中使用(直接使用 4 个)

MIT/Apache

495KB
12K SLoC

Latest Version API Documentation Discord chat MIT/Apache

naia

一个用于交互式应用的 networking architecture

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

naia 帮助您轻松定义一个通用的、共享的协议,允许服务器和客户端交换信息。然后,naia 促进在服务器和客户端之间发送/接收该协议的部分,作为可靠/不可靠的消息,并且还维护一个与每个客户端同步的跟踪实体池,对于它们而言“在作用域内”。实体被“作用域化”到与它们共享相同房间的客户端,并且足够可定制,例如,仅当实体在客户端视口中或根据某些其他标准时才保持实体持久化与同步。

API 受 Nengi.jsColyseus 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.3–5.5MB
~125K SLoC