【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月前
|
供应链 监控 物联网
新兴技术的未来趋势与应用展望###
【10月更文挑战第21天】 随着科技的飞速发展,新兴技术如区块链、物联网和虚拟现实等正在逐渐改变我们的生活。本文旨在探讨这些技术的发展趋势和应用场景,并分析其对各行各业的影响。通过详细分析区块链技术在金融领域的创新应用,物联网在智慧城市建设中的角色,以及虚拟现实技术在医疗康复中的潜力,我们可以更好地理解这些技术如何塑造未来社会。此外,我们还将探讨这些技术面临的挑战和未来的发展前景。 ###
53 4
|
8月前
|
人工智能 前端开发 搜索推荐
前端技术发展趋势分析与展望
【2月更文挑战第9天】 随着移动互联网的快速发展,前端技术在不断演进,从最初的HTML、CSS到如今的React、Vue等前端框架,技术发展日新月异。本文将从移动端、跨平台、人工智能等多个角度分析前端技术的发展趋势,并展望未来的发展方向。
|
5月前
|
供应链 物联网 区块链
探索未来:新兴技术的趋势与应用展望
【8月更文挑战第7天】随着科技的不断进步,新兴技术如区块链、物联网和虚拟现实正在逐渐改变我们的生活方式。本文将探讨这些技术的发展趋势和应用场景,以及它们如何影响我们的生活和工作。我们将深入了解区块链技术在金融领域的应用,物联网技术在智能家居和工业自动化中的应用,以及虚拟现实技术在娱乐和教育领域的应用。同时,我们还将讨论这些技术面临的挑战和未来的发展方向。
|
7月前
|
机器学习/深度学习 搜索推荐 vr&ar
移动应用开发与系统:现状与未来展望
移动应用开发与系统涵盖了移动技术领域中的关键方面,从应用程序设计到操作系统开发,这些技术不仅改变了我们的日常生活,还在未来的技术进步中扮演着重要角色。本文将探讨当前移动应用开发的趋势和挑战,以及未来移动操作系统的发展方向。
64 3
|
7月前
|
机器学习/深度学习 人工智能 搜索推荐
语音识别技术的现状与未来展望
【6月更文挑战第15天】**语音识别技术现状与未来:** 随AI发展,语音识别精度与速度大幅提升,应用广泛,从手机助手到智能家居。深度学习驱动技术进步,跨语言及多模态交互成为新趋势。未来,精度、鲁棒性将增强,深度学习将进一步融合,个性化和情感化交互将提升用户体验。跨领域融合与生态共建将推动技术普及,为各行业带来更多智能解决方案。但同时也需关注技术伦理和社会影响。
|
7月前
|
机器学习/深度学习 人工智能 算法
量子计算技术的现状与未来展望
量子计算技术的现状与未来展望
120 0
|
8月前
|
人工智能 安全 vr&ar
移动操作系统的发展趋势与未来展望
【2月更文挑战第7天】 随着移动互联网的快速发展,安卓和iOS作为两大主流移动操作系统,在不断演进和优化中迎来了新的发展机遇。本文将从技术性角度分析移动操作系统的发展趋势,探讨其未来展望,并对相关技术进行深入解读。
100 2
|
前端开发
2022年度总结,以及2023的全新展望
2022年度总结,以及2023的全新展望
203 1
2022年度总结,以及2023的全新展望
|
存储 人工智能 Serverless
总结与展望|学习笔记
快速学习总结与展望
总结与展望|学习笔记
|
传感器 弹性计算 Linux
个人介绍与展望
本文着重讲述了自己的情况以及对阿里云ECS服务器的描述与建议,对于飞天加速计划的评价。最后描述了使用过程中的体验,说一说自身的变化与发展,对日后产生了什么样的想法等等。
个人介绍与展望

热门文章

最新文章