【问题标题】:Design and logic for client/server networking games客户端/服务器网络游戏的设计和逻辑
【发布时间】:2012-04-06 18:32:05
【问题描述】:

我正在创建一个简单的 android 游戏,用于处理多人游戏并连接到服务器。这就是我想要为我的游戏实现的目标。

客户端将击键动作发送到服务器。

服务器接受输入,更新状态并计算新位置并将新位置返回给客户端

客户端获取新位置并更新屏幕。

我已经编写了一些代码,因此我的一个线程将击键发送到服务器,等待新位置,然后更新屏幕。问题是玩家的移动之间存在延迟。我认为这与延迟有关。我还尝试了两个线程,一个用于从服务器发送/接收数据,另一个用于更新屏幕。但它并没有解决我的延迟问题。

谁能推荐一个好的网络游戏设计?

我需要做早期预测吗?

我需要单独的线程来获取数据和渲染屏幕吗?

P.S.这是我第一次做网络游戏所以我不知道我在做什么。

【问题讨论】:

    标签: android networking multiplayer


    【解决方案1】:

    我更喜欢使用的结构是在客户端有一个线程更新图形和逻辑,然后一个线程接收和发送数据到服务器。如果您遇到延迟问题,如果您希望连续发送数据,那么有一个神奇的选项可以解决它。 (如果您使用的是 java,至少这是语法)

    mySocket.setTcpNoDelay(true);
    

    当我通过网络发送实时坐标时,此选项解决了我的延迟问题。

    编辑:我认为默认情况下 TCP 在发送数据之前会等待并将数据捆绑在一起,如果您想快速发送小更新,这可能是个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2015-07-12
      • 2015-03-24
      • 1970-01-01
      相关资源
      最近更新 更多