Open chrisliu1995 opened 6 months ago
@chrisliu1995
@chrisliu1995
- ping server是否是和openkruise game一起部署,还是可选组件?
- ping server是采用什么网络协议?
- 为了获取各地的延迟数据,客户端需要支持哪些工作?
ping server可单独部署,支持upd / http。客户端访问ping server获取延迟数据后,筛选出符合备选条件的地域集群名称,在创建ticket时作为参数传入。
本设计中主要关注director的设计逻辑,ping server的需求我们接下来可一并讨论。
背景需求
为了尽可能降低网络延迟并优化玩家体验,大型多人在线对战(PvP)游戏经常采取在全球范围内部署服务器的做法。这种布局确保了玩家可以连接到地理位置邻近的节点,以获得更流畅的游戏过程。然而,为了丰富游戏的趣味性,在网络延迟允许的前提下,来自世界各地的玩家也应有机会加入到同一场对战中。这就将游戏内的匹配逻辑带入了一个全新的复杂性层级。 以往,OKG的director系统各自独立运行于每个服务器集群之中,专注于处理本地集群的匹配要求,同时仅限于指派各自集群内的服务器资源。不难看出,这种单一集群的模式由于局限于特定区域,无法满足跨区域游戏匹配需求,阻碍了全球化玩家互动的潜能。 如今要想跨越这个障碍,就必须对现有的游戏匹配架构进行全方位的更新,创建一个能够在全球范围内高效匹配玩家的模型。这种全域匹配系统的引进,不仅能够提供更好的玩家游戏体验,还能促进不同文化背景的玩家之间的交流,为游戏带来更加广泛的国际影响力。
架构设计
方案架构图如下图所示
匹配过程如下:
Director改造设计
为满足上述架构,kruise-game-open-match-director(OKG Director)需要进行全地域化改造:
新增启动参数
-- slave-clusters
profile命名规范
master集群访问slave集群资源
从集群(图中的region B、C所在集群)的kubeconfig以主集群open match同命名空间下的secret形式部署,主集群拿到从集群的访问权限。