有游戏开发相关经验的朋友来回答下,
现在实时对战的游戏(比如足球、射击等),网络层面设计,应该都是 udp 包,在带宽和+cpu 资源之间的换算来看,如果想压缩这一部分流量,收益怎么样?实时对战应该是不是都是 udp 小包占大多数?
1
gesse 5 天前
应该都是 udp 小包。
|
2
KongLiu 5 天前
考虑 MTU 的限制,小包比较好
|
3
cosmain OP 是不是压缩小包性价比不高?
|
4
drymonfidelia 5 天前
memorypack 之类的游戏用序列化工具都在尽量努力尽可能减少 CPU 占用来避免帧率抖动,你倒好还来加个压缩
|
5
sunny352787 5 天前
不要压缩,用小包,也别自己写,用 kcp
|
6
LeegoYih 5 天前
|
7
cosmain OP @drymonfidelia 主要是为了压缩节省流量,跨国快速流量非常昂贵,相对增加一点延迟可以接受。但是不知道压缩游戏的小包,对流量的压缩比例多大。
|
8
JoeJoeJoe PRO 用 protobuf 再压缩也压缩不了多少吧.
用小包, 可以合并关键帧或者用减小采样率这样的方式来处理, 中间缺的地方用插值补上. |
9
pluswu1986 5 天前 @cosmain 你们没有监控指标么。。压缩试一下不久知道了么 从传输性能上来说小于 MTU 的包压缩没啥意义,足球和射击可能还不一样 足球可能是帧同步的,射击下行基于状态同步居多相对会比足球多多了
|
10
cosmain OP @pluswu1986
用 tcpdump 抓取,基本都是 udp 100 字节以内的小包 |
11
cosmain OP @sunny352787
kcp 转发,网络的情况下,因为 fec ,反而会增加流量吧? kcp 不支持压缩吧? |
12
lysShub 5 天前
压缩它干嘛,也要不到多大的带宽吧,一般低于 50KB/s
|
13
sunny352787 5 天前
@cosmain #11 kcp 是暴力发包,流量肯定会高,你们对流量要求那么高吗?实时对战要是被流量卡了体验就会下降很多,得不偿失啊
|
14
litchinn 5 天前
消息越小压缩收益肯定越低啊,应该从业务端优化,减少消息大小,设计合理的消息结构,使用高性能编解码方案
还有可以使用 kernel bypass ,不过这个是针对 cpu 来提高吞吐量的优化 |
16
pluswu1986 5 天前
@cosmain 这个量级亚以下估计也也剩余 70-80 压缩比太低了 不能接受合帧降频 建议别折腾了 按照 15-20 帧每秒 这个量级的游戏流量都觉得贵。。我觉得你们游戏也别做了。。。
|
17
pluswu1986 5 天前
@cosmain 类似延迟敏感的游戏 应该就近边缘节点接入 再怎么搞专线 anycast 体验都不会太好
|