实时联网游戏后台服务技术选型和挑战(房间匹配与数据同步篇)

本文探讨实时联网游戏逻辑层的房间匹配和数据同步问题。房间匹配涉及控制流和数据流,使用倒排索引来优化匹配算法。游戏同步主要分为状态同步和帧同步,选择依赖于游戏类型和网络条件。状态同步适用于同步频次低且对逻辑安全要求高的游戏,而帧同步适合操作密集且流畅性要求高的游戏。
摘要由CSDN通过智能技术生成

在此前的《网络接入篇》中我们介绍了实时联网游戏网络接入相关内容,网络接入层开发考验的是开发者高性能网络编程的功底,即解决C10K甚至C10M的能力。本文开始介绍游戏逻辑层,由于不同游戏玩法千奇百怪,本文不涉及游戏具体的业务逻辑,只探讨在逻辑层实现中经常遇到的房间匹配和数据同步问题。

基于“房间”模式的联网对战游戏,游戏流程可分为匹配(matchmaking)和 对战(gameplay)两个阶段。匹配是指将在线”玩家中满足一定条件或要求的玩家“撮合”到一起进行游戏。对战是指匹配到同一房间的客户端(玩家)彼此建立通讯信道(一般是通过连接到指定房间服务器,并通过房间服务提供的接口)来同步玩家操作、游戏状态等数据以支持同一房间内玩家对战和互动。

房间匹配

一般来说房间匹配服务架构如下图所示,其中和房间匹配相关的通讯数据称之为“控制流”,房间内游戏对战通讯数据称之为“数据流”,显然两种不同类型的流对带宽、延时等指标容忍度不同,实际开发中应分别由不同服务器来承担。

不同游戏的匹配策略可能不太一致,例如常见的基于场次、基于等级、随机匹配等。如果在房间创建时给房间打上一定数量的标签,我们便可以借鉴搜索引擎的倒排索引的思路来实现房间匹配算法。例如待加入的房间有:R1: [T1,T2,T3],R2:[T3],R3:[T1,T3],Rn:[T1,T2],这些房间不仅会存在与全局匹配列表中&

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值