大家好!在线射击游戏如何运作,即他们的游戏玩法如何运作?例如绝地求生。
在我看来,它们是这样工作的:有一个服务器和一个客户端。每一帧都会向服务器发送一个 GET 和 POST 请求,在 get 中我们获取有关玩家的信息,在 post 中我们传递我们的信息(坐标等)。但是,就我而言,这种方法非常糟糕,因为即使有 + - 良好的互联网,这种操作也可能需要很多时间,尤其是在每毫秒都很重要的射击游戏中
UPD
谢谢大家的回答和评论,据我了解,网游的玩法使用了UDP协议,还有很有趣的机制:玩家向前移动,然后如果他的连接中断,游戏将无限期地向前移动玩家。乍一看,这样的机制似乎有些奇怪,但稍加思考,就会发现它是相当合乎逻辑的。顺便说一句,在 PUBG 中,显然使用了相同的机制,因为。好几次遇到类似现象:玩家被踢出游戏,但他驾驶的车继续行驶
每个客户端都有一些足够的信息来对当前情况进行近似的离线计算。绘制时,它会尝试猜测预期的情况,然后与服务器同步,如果结果不匹配,则发生跳转/滞后。
基本上,所有网络游戏都使用 UDP 协议工作。由于其架构特性,数据传输时间最短,而 TCP 的时间不可预测。