libquicknet
简单、小型、可靠的游戏 UDP 网络库
❗ libquicknet 正在开发中,不适合生产代码❗
该库的主要目标是需要即插即用、快速网络子系统的游戏原型或即兴游戏。
非常容易启动和运行!
特征:
- 面向连接的 UDP 协议,具有 3 步握手
- 客户端<->服务器和点对点支持
- 带宽使用率低
- 排序/非排序可靠/不可靠支持
- 用于可靠消息的快速冗余确认系统
- 服务器发现(仅限 LAN)
- 完整的校验和系统以避免消息损坏
- 发送时可选的消息合并
- 固定可选发送速率
- 重复消息检测
- 假延迟和丢包支持
- Ping 和往返时间估计
- 跨平台(Windows/Linux)
未来的特点:
- 时间同步
- 确定性系统的 RNG 同步
- 位打包和压缩
- 握手时进行密钥交换的对称加密
- NAT穿越和穿透
- 字节序意识
- 完善确认制度
安装
删除项目中的所有源文件并编译!
用法
- 包括quicknet_peer.h
- 创建quicknet::Peer 的后代
- 重写 OnConnection、OnDisconnection 和 OnGameMessage 方法
- 按照 Quicknet_messagetypes.h 中的说明定义自定义游戏消息
- 在 Quicknet_messagelookup.h 中包含您的消息 ID
- 准备好!
对于一个简单的例子,请检查 test.cpp
背景
这个库是在一周内编写完成的,即使它功能齐全,仍然需要大量工作才能使其变得更好!
仍然有很多硬编码的东西需要注意,但我会尝试将其变成一个易于定制的库。