QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

一款成功的全球服游戏该如何进行架构选型与设计

  • 2019-11-12
  • 本文字数:3243 字

    阅读完需:约 11 分钟

一款成功的全球服游戏该如何进行架构选型与设计

全球服游戏如今正在成为出海游戏的主要考虑模式,跨国对战、全球通服打破国界的限制,将不同地区不同语言的玩家放在一起合作/竞技,成功吸引了大量玩家的关注,并逐渐成为主流的游戏玩法。


游戏厂商们也在尝试采用一地部署多地覆盖、全球逐步宣发的模式进行第一款全球服游戏的发行试点及成本控制。文章主要针对全球服和出海游戏的特性优势、架构布局、网络规划、实用技术等几个方面进行探讨。


本文主要观点:


(1) 微服务是主流,模块化架构易于扩容以及维护,微服务+自动化的业务架构对于全球服游戏来说几乎是必然的选择;


(2) 架构高度自动化,自动注册/剔除保证可用性;


(3) 帧同步+UDP 特性,高性能传输和带宽成本控制(对战类游戏要求较为突出);


(4) 核心架构集中部署为主,全球网络优化覆盖玩家;


(5) 游戏代码的关键帧及预判设计关系到游戏对网络延迟的兼容性。

为什么要微服务和自动化?

原因一:全球服游戏多为逻辑服或无区服概念的通服、对战类游戏。为了保证游戏性和全球化的特点,保证匹配和游戏世界玩家的多元化,传统意义上的区服架构和跨服对战模式并不适配,以皇室战争、列王纷争等为例的一众匹配对战游戏便是其中的代表。


原因二:全球服游戏要求承载全球玩家的涌入,及时发现负载瓶颈并扩容是一个必然的要求,模块化拆分架构之后可以灵活的针对不同活动、玩家特性增加对应的业务服务器,并通过自动注册机制实现快速扩容。


整个架构采用注册管理+自动化之后,可以通过研发脚本或者通行的管理工具,甚至 Docker 的 K8S 来实现业务宕机的自动恢复和容灾、负载突发的自动扩容,这可以极大的降低运维成本,并对于业务健壮性进行极大的提升。


对于游戏服务的自动注册机制,在项目早期,受限于研发实力或者工期,开发者一般会选择 ZooKeeper 进行管理维护,但是在实际运行中由于 ZooKeeper 自身较重的功能实现、二次开发及 bug 处理的复杂度,很多用户会将其替换为自主研发实现的轻量级 RPC 自动注册服务。实际情况要具体视研发能力而定,此外 GRPC 也有不少的支持者。

帧同步技术和 UDP 传输协议的使用

关于帧同步主要针对对战类游戏,对于 RPG 世界或者卡牌类游戏也有一定参考意义,用户使用帧同步主要在于三点:1、全球同步效率;2、服务端压力缓解;3、全球化大流量的成本控制。


以往有过这样的情况,用户在全球服游戏逐步宣发、对应国家客户端上线的过程中,遇到跨国专线成本问题无法承担的问题,最终无奈选择降级服务采用特殊优化过的外网出口覆盖的案例。


而选择使用 UDP 传输而非 TCP 传输主要考虑到对战要求的实时性,TCP 自身的重传逻辑已经无法满足全球化(对战)游戏的网络保障要求,通过自主实现 UDP 重传,甚至是报文同时重复发送的逻辑,来保证游戏数据包最终的抵达成功率。


关于最核心的全球服模式上,我的总结是:先集中再分布。


以当前大部分游戏的框架,如卡牌对战、RPG 世界等完全可以通过集中部署+网络调优的方式实现,当前全球双向延迟一般在 300ms 以内,而一般人的反应时间一般在 300ms 左右,故网络延迟对于玩家的感知非常微小,大部分游戏都可以集中部署并且不牺牲玩家游戏体验。同时集中部署的另一个优势是对于架构复杂度的降低,维护便捷度的提升,对于成本控制及玩家数据统计也会方便很多。



图一:集中部署全球服架构


什么情况下考虑“再分布”呢?首先,游戏是房间类的对战游戏,其次游戏对于网络延迟极敏感(FPS 类),最后重要的点是,游戏架构采取的是对战前缓存预热数据、对战结束后写入的异步模式。



图二:分布式部署全球服架构


下图为对战游戏的基础架构,通过该部署模式要点为:


(1)平台操作仍然集中化部署玩家统一访问,如日常操作、装备购买等延迟不敏感操作;(2)对战房间分布于全球各个数据中心,而当玩家需要对战、进行匹配分房时,通过算法调度到相对大多数用户最近的节点;


(3)节点提前预取相关用户数据,对战产生的全部数据统计由本地进行交互处理,并在对战结束后集中上传至中心数据节点。



图三:对战游戏基础架构


该方案在对战网络延迟和数据一致性上进行了保证,但是相对架构会更为复杂,实际落地过程中需要较好的配合和较深的维护经验。


那么,当前的分布式数据库解决方案是否能够解决全球服数据一致性的问题?实际上,为了保证数据一致性,这里以 TiDB 为例,暂不支持超过 30ms 的集群内部延迟。而且即使强行部署,集群内部的高延迟会严重影响 QPS 性能。在当前的技术环境下,全球分布式数据库最好的代表者应该是区块链技术,不过性能是可能无法满足大部分游戏使用的,即使是仅有 21 个核心节点的 EOS,其极限 QPS 也远逊于普通配置的集中数据库。

游戏设计和网络延迟的关系

游戏设计初期必然要对当前全球网络环境有一个初步了解,这点之前也有提到,基本上当前物理链路的双向延迟为 300ms 内,但是考虑到无线信号不稳定、传统 3G 网络性能等原因,极端情况可能达 500-1000ms 甚至更高的情况,游戏必须为此进行一定取舍,早期帧同步游戏会因为网络最差的玩家造成整个战局的卡顿,而随着技术的发展,乐观锁已经通过舍弃低网络质量玩家的部分数据包来保证全球的游戏体验。



图四:简单全球网络数据


这边先不说延迟本身,聊下限制网络延迟的客观因素和数据:地球周长是 40076 千米 (赤道),光速恒定 299792458 米/秒(真空),而网络当前主要是光纤传输,在物理速度和传输介质没有突破性进展的情况下绕地球一周需要近 150ms,而实际网络光缆不一定完全直线,中间设备转发也会造成延迟开销,按照实际网络质量评估的话,中国全国覆盖一般在 100ms(包括偏远地区)。


我们之前遇到一位用户,研发要求全球服在 60ms 的延迟以内。按照正常情况,60ms 一般可以勉强覆盖北上广三地热门地区。但是要全球服的情况下会比较捉襟见肘,这种情况下,建议做成跨国区域服的模式。


另外关于国际出口的情况,以中国为例,从我们的监控情况看,常规出口的可用率并不乐观,而我们亚太数据中心接入的电信 CN2 精品网可以做到不错的稳定性保证(也的确有全球服游戏通过此出口传输),但是并不能做到非常完美的 SLA,不定期也会发生拥塞和抖动。而且这个问题并不是中国特例,台湾地区、俄罗斯、印尼、印度部分邦都存在有一定的跨国出口问题,需要通过外网接入点选择或者产品解决方案如 UCloud PathX 解决方案进行网络优化。



图五:PathX 案例视图


所以在做一个全球服的项目之前,可以先做调研、和云厂商或者同行多聊聊,基于这些信息,在关键帧和乐观锁的时间制定、游戏内部预判及同步机制的设计上会更有把握。

杂谈拓展:区块链游戏

区块链游戏是一种新兴的游戏模式,但是本质上是依托于以太坊或者其他共识模式的链实现的玩法,当前市场上的游戏主要分两类:1、纯区块链游戏;2、装备或搜集元素上链。


前者主要以以太猫为代表,核心是收集、养成类游戏,随着部分市场关注赋予了部分商业属性。后者则是融合了区块链元素在其内部,附加了很多其他玩法,诸如集换式卡牌等等。


区块链行业还在摸索阶段,共识算法、共同监督、不可否认性是其核心特质,但性能较低、需要支付 GAS 等也是其短板,现在作相关评论还比较早,如果有兴趣的话,可以钻研下相关共识技术,对于各种链、共识技术有一个认知后,再根据自己的游戏模式选择一个适合的场景。


一般来说区块链游戏和链本身是相互依存的,如果链自身出现问题也会影响到游戏,可以说链是基础支撑,这个在选择的时候建议慎重考虑。我们也在探索相关的技术方向实践,并同公有云进行结合。7 月 21 号 UCan 下午茶成都站——“游戏出海,那些弯和那些坑”主题沙龙上,沈皓也会在现场深入分享出海游戏全球服架构及解决方案,感兴趣的读者可以关注沙龙后续技术内容。


作者介绍:


沈皓,UCloud PathX 产品早期方案设计者之一,深耕全球服游戏领域,曾全面负责多个知名游戏出海项目的全球/跨国业务对接、部署及落地。对于 MOBA、RTS、FPS 等各类游戏的出海全球化的需求、难点、架构实现等深入分析并有独到见解。


本文转载自公众号 UCloud 技术(ID:ucloud_tech)。


原文链接:


https://mp.weixin.qq.com/s/YO5SAYoqkX3MTZCkcQXlhg


2019-11-12 10:262460

评论

发布
暂无评论
发现更多内容

青椒云桌面玩转AIGC应用部署

青椒云云电脑

云桌面 AIGC

大模型分布式训练并行技术

百度开发者中心

人工智能 深度学习 大模型

获取体育视频源数据与搭建自主体育直播平台源码的作用

软件开发-梦幻运营部

聚焦工业边缘需求,英特尔与阿普奇携手发布创新解决方案

E科讯

Meta Earth:模块化公链的技术革新与市场潜力解析

股市老人

直观易用的大模型开发框架LangChain,你会了没?

京东科技开发者

从零开始搭建云呼叫中心之FreeSwitch实战

京东科技开发者

新质生产力与数字化转型:驱动经济转型升级的双引擎

天津汇柏科技有限公司

数字化转型 新质生产力

软件测试学习笔记丨Python的自动解包 自动组包

测试人

Python 软件测试 测试开发

华为天气“赏春计划”来袭,浪漫解锁影音会员、出行礼包多重福利

最新动态

智能制造与AI大模型

百度开发者中心

人工智能 深度学习 大模型 智能制造

电脑配置差卡顿?试试云电脑

青椒云云电脑

云桌面 云电脑平台

如何在云电脑串流中实现多屏操作

青椒云云电脑

云电脑 云电脑平台

SQL事前巡检插件

京东科技开发者

【精选】发布应用到应用商店的基本介绍

企业架构设计原则之品质均衡性(二)

凌晞

企业架构 架构设计 架构设计原则

Meta Earth:模块化公链的技术革新与市场潜力解析

股市老人

云桌面厂商哪一个更好?

青椒云云电脑

云桌面 云桌面厂家

几个编程、创新和AI领域的网站

算AI

人工智能 编程 创新

基于istio实现多集群流量治理

华为云开发者联盟

istio 华为云 华为云开发者联盟 多集群 企业号2024年4月PK榜

一键生成视频!用 PAI-EAS 部署 AI 视频生成模型 SVD 工作流

阿里云大数据AI技术

人工智能

从商品图到海报生成 京东广告AIGC创意技术应用

京东零售技术

广告 AIGC 企业号 4 月 PK 榜

国内低代码哪家强?深入探讨低代码选型关键指标和评估模型

牛刀专业低代码

低代码开发平台 国内低代码 低代码选择 低代码平台比较 低代码排名

大模型工程化落地,足够细分的优质数据是关键

澳鹏Appen

AI工程化 数据标注 训练数据 大模型 LLM

企业架构设计原则之品质均衡性(三)

凌晞

企业架构 架构设计

户外LED电子广告屏市场

Dylan

技术 广告 应用 LED LED显示屏

一款成功的全球服游戏该如何进行架构选型与设计_架构_沈皓_InfoQ精选文章