ChrisLiu

Results 16 issues of ChrisLiu

## Background Game servers, due to their strong stateful characteristics, have a high demand for graceful shutdown operations. A game server typically needs to wait until data is fully persisted...

## 背景需求 为了尽可能降低网络延迟并优化玩家体验,大型多人在线对战(PvP)游戏经常采取在全球范围内部署服务器的做法。这种布局确保了玩家可以连接到地理位置邻近的节点,以获得更流畅的游戏过程。然而,为了丰富游戏的趣味性,在网络延迟允许的前提下,来自世界各地的玩家也应有机会加入到同一场对战中。这就将游戏内的匹配逻辑带入了一个全新的复杂性层级。 以往,OKG的director系统各自独立运行于每个服务器集群之中,专注于处理本地集群的匹配要求,同时仅限于指派各自集群内的服务器资源。不难看出,这种单一集群的模式由于局限于特定区域,无法满足跨区域游戏匹配需求,阻碍了全球化玩家互动的潜能。 如今要想跨越这个障碍,就必须对现有的游戏匹配架构进行全方位的更新,创建一个能够在全球范围内高效匹配玩家的模型。这种全域匹配系统的引进,不仅能够提供更好的玩家游戏体验,还能促进不同文化背景的玩家之间的交流,为游戏带来更加广泛的国际影响力。 ## 架构设计 方案架构图如下图所示 - 每个地域存在一套Kubernetes集群环境 - 每个地域的Kubernetes集群都安装OKG,并部署相同名称的GameServerSet - 选择某地(此例中为Region A)Kubernetes集群作为Host集群,部署Open Match ![image](https://github.com/CloudNativeGame/kruise-game-open-match-director/assets/70144550/57bd54ed-d266-4418-8aa6-ab40ce44d6cf) 匹配过程如下: 1. 玩家客户端访问各地Ping Server,获取即时延迟数据。 2. 将各地延迟数据作为ticket属性,向Host集群的Open Match发起请求,进入匹配队列。 3. Host集群中Director将生成与地域有关的Profile,并解析生成的Match、寻找对应地域的可用房间服,获取其地址并返回。 ## Director改造设计 为满足上述架构,kruise-game-open-match-director(OKG Director)需要进行全地域化改造:...

https://github.com/openkruise/kruise-game/issues/170

## Concepts involved - Explicit reserve ID: user-specified reserveGameServerIds - Implicit reserve ID: non-user-specified reserveGameServerIds, due to the OKG shrinking feature rather than the last ID sequence number - Existing...