想请教一下做游戏的朋友,数据传输用的是字节还是 json

2018-03-29 20:02:23 +08:00
 johnsneakers

现在接手了一个项目(80%完成度),服务器客户端协议是长链接+字节方式传输数据,游戏属于休闲挂机游戏。

之前一直习惯 json 直来直去,调错方便。 现在这个项目我查 bug 可以说 50%的时间花在算字节.. 在纠结要不要改成 json,改得化不怕工作量(前后端都是我在写),就是担心日后出现超出我想象不好处理又得改回来的问题

想在这里问下经验比较丰富的朋友该如何处理。

2677 次点击
所在节点    问与答
11 条回复
choury
2018-03-29 20:06:42 +08:00
写个解析工具不就行了,protobuf 也是二进制的啊,二进制肯定效率高些
ryV60s
2018-03-29 20:10:15 +08:00
讲道理,前后端数据格式前期定好了,后面用不着去调试的。
说明前后端数据同步这块没写好啊,跟用啥没关系。
建议 Protobuf。
misaka19000
2018-03-29 20:16:53 +08:00
json 有点浪费带宽
MeteorCat
2018-03-29 20:17:29 +08:00
protobuf
sudoz
2018-03-29 20:17:43 +08:00
看场景
如果是走 HTTP,和浏览器 APP 做数据交互,必然是 JSON
如果是内网服务化系统间的数据交互,走 TCP,建议 protobuf
mozutaba
2018-03-29 20:20:46 +08:00
protobuf,不用这个真的是天天算字节。
json 浪费带宽,不是实时类的游戏到也没啥问题。
changnet
2018-03-29 20:22:13 +08:00
休闲游戏你用 json 可以,arpg 你用 json 看看,怕你的 cpu 解析协议都解析不过来。成熟的框架基本用字节流或者 protobuf。不明白查 bug 为什么算字节流,一般通信模块是最先稳定下来的,以后调功能就不需要算。数据不对查下发送接收就行。
MeteorCat
2018-03-29 20:28:03 +08:00
啊哈,你们公司是武侠页游吧?我记得不少公司都是那套源码,基本上都是靠 C/C++结构体加密序列化传输,常常数据需要对下 sizeof 对不对
johnsneakers
2018-03-29 20:35:43 +08:00
@changnet 因为这边做还是草台班子,刚开始。 经常遇到一个接口服务器传长了客户端解析错位,然后就要一个一个 debug 或者肉眼去算长度。看到大家说的,看来是我经验不足的问题了。。

@MeteorCat 答错了,我 golang 写的
0987363
2018-03-29 21:52:59 +08:00
@johnsneakers golang 还用自定义二进制那不是蛋疼。。
yunchen2
2018-03-30 09:37:19 +08:00
我们在用 protobuf

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/442618

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX