【Agones系列】Agones总结与展望

简介: 在过往的文章,我们介绍了Agones的网络、生命周期以及弹性扩缩的特性。在本篇文章,我们将介绍Agones的一些其他特性,并对Agones的定位和使用进行一定程度的总结。最后,谈一谈游戏云原生的展望。

在过往的文章,我们介绍了Agones的网络、生命周期以及弹性扩缩的特性。在本篇文章,我们将介绍Agones的一些其他特性,并对Agones的定位和使用进行一定程度的总结。最后,谈一谈游戏云原生的展望。

3e162d39-b69c-40d9-9089-23fac946509c.svg

其他特性

  • 玩家追踪。在之前介绍SDK时,有提到与Player相关的方法,其实在GameServer的Spec中可以定义player的相关字段,比如initialCapacity,将gs的初始容量设置为10,随着游戏的运行,游戏服也可以通过SDK.Alpha().SetPlayerCapacity(count)调用实现容量的改变。之前提到过可以使用SDK调用SDK.Alpha().GetPlayerCount()实现当前玩家数目的获取,游戏本身可以通过容量和当前数目的对比实现玩家管理,而Agones仅提供追踪作用,不会影响玩家连接行为。
  • 本地模式。在开发测试的场景下,需要通过Agones GameServer暴露服务,可以指定agones.dev/dev-address 开发机IP,使用Static portPolicy,创建一个gs但不创建pod。快速的进行调试。
  • 多集群分配。为了允许从多个集群进行分配,Agones 提供了一种机制来为分配请求设置重定向规则到正确的集群。GameServerAllocationPolicy 是 Agones 定义的用于设置多集群分配规则的 CRD。除了集群优先级,它还描述了目标集群的连接信息,包括游戏服务器命名空间、agones-allocator 端点和用于重定向分配请求的客户端 K8s secrets名称。游戏服务器将从priority数量最少的集群中分配。如果编号最小的集群中没有可用的游戏服务器priority,它们将从priority编号次之的集群中分配。对于具有相同优先级的集群,选择集群的概率相对于其权重。
  • 延迟测试。在全球部署服务时,客户端会需要根据延迟决定要连接到哪个集群。Agones默认安装并暴露了这样的测试服务,支持http/udp两种协议。

总结

首先,我们要清楚看到Agones是针对Delicated Game Server而设计的云原生负载,比较适合MOBA/FPS/TCG等有对局概念、需要匹配的游戏类型。这类游戏的特点就是生命周期短,更偏向无状态,可以快速地构建、删除Pod,实现资源的最大程度利用。所以,Agones的核心是提供了动态伸缩的能力,然而想要最大程度利用Agones伸缩性,需要配合OpenMatch使用。

OpenMatch是Google开源的另一项目,它提供了一种匹配机制,用户可自定义匹配方法在这套框架下实现对局的匹配。从实现逻辑上来看,Agones这部分是比较轻量的,重头部分在于OpenMatch提供的匹配能力,OpenMatch相对与Agones显得非常厚重,用户要想接入需要进行相对复杂的工作,也有不少公司在这部分做文章提供Saas服务,简化客户端接入。

如上文所述,Agones最佳实践的方式是通过每个Fleet配置一个FleetAutoscaler,定义buffer量,压缩高峰期的游戏服启动时间对用户的延迟体感,allocator会发现ready状态的gs服务,将其置为allocated,等待玩家匹配连接,而MatchMaker会做一系列匹配工作,找到这样的allocated gs,让其与玩家建立连接,等到对局结束,gs销毁或复用,旧pod(或新pod)又进入到ready状态。这里buffer定义的是allocated和ready的差值,如果现在的匹配需求并没有那么多,也就是allocated数量没有那么多,总体要创建的pod数量也会下降,这样一来弹性功能得以实现,资源的利用率将会得到提升。

展望

虽然Agones作为云原生游戏负载简化了游戏上云的复杂度、并提供了弹性扩缩的能力,但它依然有一些不可忽视的问题

  • 它并不适合生命周期长的游戏服,类似pve大世界类型游戏。这种游戏每个副本的状态差异是非常大的,提供水平伸缩的Fleet不适合管理这类游戏。
  • 它通过SDK实现状态感知,增加了改造成本,提高了游戏开发者接入的难度。
  • 它的网络模式是固定的,hostPort的方式并不能适用于所有场景。比如,对于一些IP端口固定的场景就无法满足。

其实,在实际的游戏市场中,MMO/MMORPG这类游戏的比重是非常大的,对于这类游戏的云原生化是不可忽视的需求。这类游戏重状态、弱弹性,目前在K8s中运维管理是非常复杂的,如何对这类游戏进行云原生改造是业界需要关注的问题。那么你觉得如何游戏云原生的痛点在哪?要如何做呢?

相关文章
|
2月前
|
人工智能 前端开发 搜索推荐
前端技术发展趋势分析与展望
【2月更文挑战第9天】 随着移动互联网的快速发展,前端技术在不断演进,从最初的HTML、CSS到如今的React、Vue等前端框架,技术发展日新月异。本文将从移动端、跨平台、人工智能等多个角度分析前端技术的发展趋势,并展望未来的发展方向。
|
6月前
|
人工智能 自然语言处理 算法
开源与人工智能:现状与展望
开源与人工智能:现状与展望
106 0
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
ChatGPT发展历程、原理、技术架构详解和产业未来(下)
ChatGPT发展历程、原理、技术架构详解和产业未来(下)
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
ChatGPT发展历程、原理、技术架构详解和产业未来(上)
ChatGPT发展历程、原理、技术架构详解和产业未来(上)
|
11月前
|
机器学习/深度学习 人工智能 算法
AIGC背后的演进趋势
AIGC背后的演进趋势
99 2
|
前端开发
2022年度总结,以及2023的全新展望
2022年度总结,以及2023的全新展望
168 1
2022年度总结,以及2023的全新展望
|
存储 人工智能 Serverless
总结与展望|学习笔记
快速学习总结与展望
110 0
总结与展望|学习笔记
|
传感器 弹性计算 Linux
个人介绍与展望
本文着重讲述了自己的情况以及对阿里云ECS服务器的描述与建议,对于飞天加速计划的评价。最后描述了使用过程中的体验,说一说自身的变化与发展,对日后产生了什么样的想法等等。
个人介绍与展望
|
人工智能 分布式计算 运维
数据中台技术及业务发展史与未来趋势展望
企业需要进行数智化转型,才能更有效地管理数据,更便捷地使用数据。阿里巴巴数据技术及产品部也认识到了数据处理方式必须有所改变,才能满足企业对数据开发效率,数据赋能业务产生价值和数据指导企业运营管理的需求,至此数据中台理念孕育而生。
11080 0
数据中台技术及业务发展史与未来趋势展望
|
大数据 存储 调度
阿里巴巴大数据技术关键进展及展望
2019杭州云栖大会大数据技术专场,由阿里云通用计算平台负责人关涛带来以 “阿里巴巴大数据技术关键进展及展望” 为主题的演讲。本文首先讲解了从阿里巴巴的角度看待大数据领域的客户价值迁移,概览了核心技术的发展点,最后针对如何构建智能化大数据平台的相关工作进行了介绍,从引擎优化到 “自动驾驶”,并列举了几个典型案例。
11890 0
阿里巴巴大数据技术关键进展及展望

热门文章

最新文章