在java中正确发送播放器数据的方式

时间:2017-01-29 22:12:58

标签: java multiplayer

我对使用硝基网开发游戏有一些了解。 截至目前,我正在发送播放器的数据:

  • 玩家攻击
  • 客户端向玩家发送攻击的服务器发送数据
  • 服务器将此数据发送给所有其他连接的客户端
  • 接收数据的客户端检查发送了哪些操作(“attack_left”)
  • if语句检查发送了什么操作,然后客户端让播放器执行此操作的代码

这是处理向服务器发送数据然后发送到多个客户端的最佳方式吗?我应该只发送一个完整的玩家对象吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

总的来说,是的。最好只发送您需要的数据。如果有很多其他玩家连接到服务器,发送整个角色的信息很快就会成为一个问题。

例如,如果您有10个玩家同时进行攻击,则服务器会从每个客户端收到10个攻击命令。然后,服务器必须将每个攻击命令发送到连接的每个其他客户端。因此,您最终会得到服务器发出的90 [10 x 9 = 90]个命令。如果这些命令中的每一个都发送了整个角色的信息,那么很容易失控。

如果一次只连接有限数量的玩家,你可以放弃发送整个角色的信息,但是你应该决定你想要为你的游戏支持多少玩家。