我正在实施一个在线TCG游戏(想想Hearthstone / Magic)作为宠物项目,我决定将React / Redux用于客户端UI。这让我想到了在服务器上使用Redux以及维护每个客户端/游戏的全局状态的可能性。
它的工作方式是,游戏中的玩家会将事件(通过socket.io)发送到服务器,该服务器将根据游戏状态+规则进行验证,然后触发服务器状态的更改并传播它给各自的客户。
问题是,我觉得我必须跳过很多环节才能让所有游戏规则/逻辑符合Redux的更多功能/不可变方法,而不是将所有游戏实体建模为类。此外,由于每个玩家的对手信息有限(例如你无法看到其他玩家的手),我必须有一些自定义逻辑来过滤状态信息,具体取决于哪个玩家正在接收数据。
另一方面,我喜欢为每个域分配不同处理程序的集中状态,可预测的数据流以及回归到先前状态的可能性。此外,Redux中的操作完全符合命令模式,这对于这些类型的游戏非常有用。
我应该只是实现一个类似于状态管理器的自定义Redux,但是放弃了不变性部分吗?对于这些情况,是否有更“尝试和真实”的方法?