【问题标题】:What is the proper way to check game state and send sockets to connected clients?检查游戏状态并将套接字发送到连接的客户端的正确方法是什么?
【发布时间】:2016-02-16 15:03:36
【问题描述】:

我正在构建一个社交多人实时游戏,我正在考虑实施什么架构来跟踪状态游戏并将正确的套接字发送给连接的玩家。

我的游戏有 4 个状态 round startcheck playersmatching stateround result。这些状态有超时10 sec,并且在房间有玩家时重复循环。

我的状态如下所示:

var stateDoc = {
  type: 'round start',
  uid: uid,
  timeout: 10000
};

我的问题是我应该如何存储状态并更新这些状态?

【问题讨论】:

    标签: node.js sockets redis game-loop


    【解决方案1】:
    1. 你可以有一个名为 game 的 json 数据。您可以将其作为二进制或 json 存储在 redis 列表中。如果将其作为json传递,则可以在之前执行toJson,之后执行fromJson。

      //游戏数 LLEN 游戏

      //阅读游戏#0
      LINDEX 游戏 0

      //在列表末尾写游戏
      RPUSH 游戏“{...}” RPUSH games.roundstart 1

    2. 您最好使用 5 个列表:一个用于每个州,一个用于所有游戏 状态列表(例如games.roundstart)将仅存储此状态游戏的密钥。

    3. 更新逻辑应该存储在服务器端(而不是在redis中) 在更新过程中,您将查找每个列表并根据该列表执行操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-14
      • 1970-01-01
      相关资源
      最近更新 更多