我正在开发实时多人游戏,我想在客户端和服务器套接字之间创建快速和优化的接口。
客户端将通过套接字向服务器发送下一个信息:
- 登录、密码等授权信息;
-
简单命令,如:
- moveToPoint(坐标)
- shootInDirection(坐标)
- dropItem(项目,坐标)等…
这些命令(请求)必须由服务器处理并传输到其他客户端;
主要问题是:如何设计客户端将以高频率发送的命令结构?(json,字符串或数字)我认为,有两个因素会影响速度和性能:
- 命令长度(更短->更快)
-
解析复杂度
我应该如何解析这些命令?(一个Java库或简单的分割)?
它是如何在流行的多人游戏中执行的(如反恐精英)
你能给我一些关于这个话题的建议或文章吗?就客户端/服务器通信而言,我建议您看一下Netty,它似乎符合您的要求。
- 完整的SSL/TLS支持
- 为你处理线程池之类的东西
- 低资源消耗
- …还有更多
对于初学者,我建议查看示例,看看如何做诸如发送字符串之类的事情,尽管在您的情况下,发送pojo可能是一个更好的主意,正如本文所解释的,pojo是 p lain Old Java O对象,可能包含位置字段,等等。