当前位置: 首页 > 知识库问答 >
问题:

修复多人游戏中的紧张运动?

邬宏扬
2023-03-14

在过去的几个月里,我一直在编程一个2D java赛车游戏,最近完成了一个非常简单的多人游戏实现。这只是使用一个服务器-客户机系统,其中所有的世界物理计算都在服务器上完成,然后中继到客户机。客户端不进行自己的计算,而只是从服务器呈现数据并向服务器发送用户输入数据。我只在服务器端的对象实际移动时才更新客户端持有的位置。当精灵以低速移动时,该系统工作得非常好--然而,在更高的速度下,它们看起来就会战战兢兢。关于这个主题的标准Valve文章规定了插值作为一种使运动看起来更平滑的方法,但是我想要小心,以免误诊问题,在解决根本问题之前使系统变得更加复杂。使我对此解决方案保持警惕的是,我每秒发送客户端更新消息60次,这应该足以使质量更高。有没有其他的bug也有类似的症状呢?谢谢你抽出时间。

编辑:如果这看起来很模糊,那是因为它应该是。我不是在一个特定的情况下寻求帮助,而是让你调试我的代码,找出为什么它不能工作。除非我犯了一些可怕的错误,否则我认为我的代码完全按照所描述的系统做了它应该做的事情。我要求一个理论经验基础上的回应,关于症状的原因和我应该实施什么来解决这个问题。

共有1个答案

楚煜
2023-03-14

我用一个简单的修复方法解决了这个问题--我只是以每秒20次的速度更新我的物理引擎,造成了所描述的滞后。将其提高到每秒50次就解决了这个问题。

 类似资料:
  • 每2个玩家,服务器将创建1个房间(我的游戏是PvP,一对一) 每个房间处理游戏逻辑 我将使用作为我的游戏循环 服务器FPS=5 每个房间都可以处理玩家的移动和一些物理操作 关于实际问题: 基于下面的点数,我应该使用什么样的游戏循环?下面每种类型的游戏循环的利弊是什么。 null

  • 我正在做一个多人游戏。每个客户端都有一个在共享环境中移动的字符。 我使用socket.io创建rooms,使用peer.js创建客户端之间的点对点连接。 我正在尝试做的是使每个客户端能够更新他的地图中其他玩家的角色的位置。 为此,每个客户端应该拥有其他玩家的键盘光标(箭头键)的状态,以便他能够用行走动画移动他们对应的角色。 p2p:我正在考虑在客户端之间创建双工流,这样每个客户端将拥有其他玩家的键

  • Iphone Gamekit对于创建多人游戏非常有用。 但我有个问题。互联网上有很多资源和教程,可以为通过血牙或WiFi加入的玩家创建多人游戏。但玩家应该通过同一网络连接。但是有没有一种方法可以连接世界上任何地方的用户。举个例子,假设在一个纸牌游戏中,我是一个玩家,游戏会搜索全世界的用户,随机连接3个玩家与我一起玩游戏。有没有办法用GameKit做到这一点。如果这是可能的,任何人可以请指示我一些关

  • 我正在开发一个基于Java(客户机和服务器)的多人策略游戏。我没有太多的经验在网络游戏,但我做过一些小事情,像一个多功能聊天和2个玩家的抽签tac脚趾与插座。我不是在找人为我编写代码,只是给我一些指导。 游戏经历了多个阶段:首先,用户连接并登录。在他被赋予主持/加入游戏的选择权之后。在他加入一个游戏或者某人加入他的游戏之后,客户端就会继续进入游戏阶段。游戏是1v1的,只需要每隔5秒来回发送数据(如

  • 我正在使用JavaScript中的套接字io创建一个多人游戏。除了客户端插值之外,游戏目前的工作非常完美。现在,当我从服务器获得一个数据包时,我只需将客户端的位置设置为服务器发送的位置。以下是我尝试做的: 所以我设定了球员的目标位置。然后在玩家更新方法中我简单地做了这样的操作: 这基本上使玩家以固定的速度向目标的方向移动。问题是玩家在下一个信息从服务器到达之前或之后到达目标。 编辑:我刚刚读了Ga

  • > 服务器端javascript在浏览器外部运行(从终端,使用node.js)是否支持画布类图形(例如,使用raphael或Processing.js)? 或者,运行在服务器机器上的处理草图如何与NodeJS连接? 欢迎其他解决方案-谢谢!乔纳森