【发布时间】:2014-04-17 08:07:34
【问题描述】:
我考虑使用 Libgdx 创建多人游戏。
现在我只想问哪种数据应该处理服务器,哪种数据应该处理客户端。
基本上,游戏应该是一种 2D 平台射击游戏,您可以在其中创建自己的关卡/地图。所以我认为地图文件应该放在服务器文件中,并在连接时发送到客户端。是这样吗?
后来我认为每个客户端都应该处理自己的运动(包括碰撞检测)并将当前位置(作为 Vector2)发送到服务器。又是一个问题:它应该如何工作?
还有一件事:
如果客户开枪,他应该:
- 只发送“我在射击”,服务器决定射击哪种子弹(取决于客户端当前的武器)
- 自行管理并再次将子弹的位置作为
Vector2(以及子弹的类型)发送到服务器
万一
服务器需要更新所有的位置 子弹并管理它们的碰撞检测,然后发送 位置(和效果,如果子弹击中某人/某物)。
客户端将处理与墙壁和自己的碰撞并将数据发送到服务器,服务器 会将其发送给其他客户端。然后另一个客户端需要检查与此子弹的碰撞。因此,两个客户端都需要检查与子弹的碰撞 + 一个客户端检查子弹与墙壁的碰撞。
哪种方式更好,或者有更清洁的解决方案?
【问题讨论】:
标签: java libgdx multiplayer