中国的游戏公司在出海大潮中走得比较早,游戏成为了其出海业务重要的营收来源,加之游戏流量持续增长,技术的发展加速和出海区域的需求差异,企业会面临各种各样的技术挑战。
如何寻找到一套合适的解决方案?
全球CDN领域的鼻祖与巨头Akamai本身不直接发行游戏,但是其技术涉及游戏的方方面面,从原型设计到测试再到运维与迭代。
作为Akamai大中华区媒体事业部高级售前技术经理,刘烨对游戏出海有着自己深刻的理解。
下图为Akamai观察到的过去一段时间中互联网流量的增长情况(从2004年一直到现在在Akamai平台上出现的流量峰值)。
今年流量峰值的出现,是因为体育赛事和游戏发布的叠加,最终达到167 Tbps的数量级。今年其实连续突破了两次技术,年初时因为《使命召唤》的发布流量先是到了125 Tbps,紧接着因为期间有其它的游戏发布和体育赛事的直播,流量最终到了167 Tbps。
仔细研究整个Akamai平台上观测到的流量发展趋势,可以看到,在2016年之前,所有流量峰值全部都是由“直播事件”所带来的。但是从2016年以后,所有峰值可能都来自于游戏下载或者游戏下载和赛事直播事件的叠加。
雷锋网注意到,一个特别典型的趋势:互联网上大的事件、流量的高峰,会推动互联网带宽的不断增长,从原来视频驱动向现在的游戏驱动。
在过去一年的数据中,Steam游戏平台在4月份达到了前所未有的峰值。可以看到,Steam上的并发用户数从3月起就极剧增长,因为很多国家开始了封锁政策,所以更多的人需要在家办公。
原来的酒吧或外部娱乐的形式都被取消了,所以游戏变成大家主要的娱乐方式。从这种主流的游戏平台可以看到,流量在4月时已达到了前所未有的峰值,而这个变化从今年3月份开始就出现了。
Akamai面对这种流量增长的趋势,在游戏行业中通常会做什么呢?
刘烨对雷锋网等提及了Akamai被外人津津乐道的两个地方:
一是Akamai全球节点覆盖超过了130个国家,在几千个机房里都有节点。企业要“出海”,无论目标市场是北美、日韩这种主要的发达地区,还是中东、东南亚这些不那么发达的地区,用了Akamai的服务就无需担心节点的覆盖、可以保证全球数据同步传输的一致性;
二是游戏行业一直是特别易于被攻击的行业,Akamai提供了非常“健壮”的安全产品,可以依托Akamai智能边缘平台保证游戏发布的安全性。
上述两点是最多被游戏客户提到的跟Akamai合作的原因。
Akamai在游戏行业做哪些事?
如果按照整个游戏的生命周期,Akamai在游戏行业到底能做哪些事情?
刘烨表示,其实远远不止他前面所提到的两方面。
具体来看,游戏从开发到运维分为5个阶段,在这5个阶段,其实都有Akamai的解决方案和产品,特别是在全球化的过程中:
第一,概念设计。Akamai会去考虑:一个游戏要发布到哪些区域?游戏的内容是什么?受众是什么?竞品是什么?
第二,原型阶段。当知道了要做一个什么样的游戏,就要试着从一个关卡开始把整个原型都制作出来。游戏原型制作出来后,可以看到游戏是怎么样玩的、用户的体验是什么样子、通关的难易程度如何。
第三、测试阶段。该阶段包含“封测”、“内测”、“公测”3个步骤。这个阶段验证游戏玩起来的体验。后期会在网上招募更多的外部用户参与到测试中,确定游戏在发布的过程中是否会有太多Bug以及是否能够承受公众访问的压力。
第四、发布阶段。该阶段是最重要的阶段,游戏公司在这个阶段会提前买量确定发布的渠道、确定发行公司在目标区域的发行。
第五、迭代阶段。发行成功以后,游戏将吸引越来越多的付费用户,游戏随之进入到运维迭代阶段。游戏公司会按期发补丁、确保游戏不断改善、让玩家持续产生兴趣。
这是AT&T在两年前做的“全球互联网骨干示意图”,不同的颜色代表全球不同的骨干网运营商。因为骨干网运营商分布在不同的区域,基础设施的建设也不一样。相对来讲,互联互通、基础设施、ISP的数量非常复杂,那么,就造成了全球互联网的性能并不均匀。
当游戏厂商在一开始考虑游戏到底要发布到哪些区域、受众是哪些区域玩家的时候,其实他们要考虑骨干网上不同的连接速度。
以某一个月的网络连接速率为例,北美、加拿大可以达到每秒钟速率是68 Mbps,南美、欧亚的一些国家,基本上是20-30 Mbps这样的速率,不同地区差异仍然非常大。
所以当发布游戏在这些特定区域的时候,游戏厂商怎么考虑设定美工、设定包体的大小,然后发到这些区域,需要在一开始游戏设计阶段就要考虑到。
Akamai承载了互联网上非常大比例的流量,可以提供一些真实的数据,能看到各运营商、各国家、各地区的网络连接速度和可用性。这些数据不是一个采样数据,而是真实用户数据,是在一个运营商中所有的用户连接速度综合形成的数据。
当游戏客户表示“现在要出海到越南,能否知道越南某一个运营商可用性是什么样子”,Akamai在游戏的设计阶段、原型阶段,其实就可以告诉准备“出海”的客户在不同的国家网络真实的性能是什么样子。这与第三方测速工具有些不太一样,因为这些都是真实的数据,“测速工具”更多是用测试服务器采样得出的。
当设计游戏中的“对战”时,势必对延时要求比较高,游戏厂商应该考虑未来服务器和源站应该如何部署。
Akamai提供了一个全球网络优化技术,这个技术可以优化从玩家到服务器之间的这种延时。当拿到这个数据后,游戏客户就可以考虑如何建设自己的全球数据中心并确定是否要分服。Akamai的优化如果可以把延时降低到一个可以接受的范围,这样游戏厂商可以做到全球同服或者做到某一些就近区域在一起用相同的服务器。
在游戏原型设计完成后,在考虑其中的消息传递时,游戏厂商也要考虑用什么样的技术去做,因为,游戏的社交属性越来越强了。这主要在于,游戏除了本身是一个娱乐工具,其实也是家人、朋友之间的沟通渠道。
消息传递通常在现在的游戏设计中,全部都是私有协议。私有协议的好处是效率会比较高、完全按照自己本身的方式做。不利的地方在于私有协议没有第三方的产品可以看懂它,因为只有你自己能看懂。
所以,当两个玩家消息进行传递时,如果游戏的源站数据中心在离玩家500公里以外的一个地方,即便是跟玩家在同城有另外一个玩家想给他发消息,也要通过游戏服务器进行传递,这种情况下效率就会变低。那么如何解决?可以用一些介于HTTP跟完全的私有化协议之间的协议去做——比如MQTT。
刘烨介绍,MQTT协议最早是为了物联网场景而设计,比如主人离开家后可以远程控制智能家居设备。MQTT是为消息传递、广播、通告而设计的,所以它非常适合游戏中“新玩家上线/下线/系统广播/两个玩家之间的消息传递”的场景。
Akamai的一些客户在游戏设计原型阶段,就在考虑把这些新的协议融入进去。如果厂商用了这种标准化的协议,那么就可以在边缘上通过Akamai的服务器进行传递。
如果某玩家向北京的另外一个玩家发消息,消息就不需要到上海的数据中心去做交互然后再回来,而是Akamai作为代理帮忙进行消息传递,从而提高效率、降低源站负载。这个是在游戏设计里可以考虑或利用Akamai的另外一个方面。
设计完成、原型做好后,游戏厂商该准备测试了。测试有很多种,其实Akamai能够帮助游戏厂商更多地对游戏去做“压力测试”。
“压力测试”需要解决两个问题:第一,模拟用户从公网上不同的地方访问游戏服务器;第二,模拟出整个游戏在玩的过程中可能会出现、并发数上来后出现的瓶颈。以RPG游戏为例,玩家要通过一开始的注册、选服、创建角色、登录游戏、进入场景、开始任务,所有的阶段要综合去看“到底哪一块可能会成为游戏的性能瓶颈。
有些游戏公司通常都是自己写一些机器人程序帮忙运行这些场景,然后再决定压力出现的地方。Akamai其实有一个产品专门进行基于“云”的压力测试。该产品可以通过脚本提前的录制来模拟场景,也可以在公有云上按需启用这些资源,所以能较准确地模拟公网上大规模的访问,而且定位瓶颈出现的因素和地方。这可以帮助游戏厂商在上线前知道游戏服务器、游戏运行过程中是否还有瓶颈、是否可以面对大量的公网访问。
在发行游戏环节,Akamai也有专门产品。
当一个游戏或应用刚上线时会有特别大的并发访问,对于游戏厂商的源站、数据中心压力较大。所以Akamai专门设计了一个产品,叫Cloud Wrapper,在源站前作为一个存储或类似源站的产品,减少对于源站的请求数,帮助源站支撑更多的用户。然后再通过Akamai全球分布式、非常强壮的网络把游戏内容分发到各个地区。这个是当游戏厂商发布新游戏时,Akamai起到帮助的地方。
上线以后再进行日常的维护工作,包括:升级、发布补丁。作为一个售前咨询的部门,其实刘烨和他的团队在做的一个事情是即便游戏上线后进入了日常维护阶段,仍然去看游戏可以优化的地方。
比如在登陆的过程中,登陆的速度快与慢是不是可以优化?游戏中的促销信息图片是不是可以优化?它的弹出速度如何?它的用户体验如何?它是不是玩家看到的是一张白图慢慢才渲染出来?那这时间要有多久?这些其实都是可以优化的地方。
总体而言,在刘烨看来,在整个游戏从概念设计到后面运维迭代的过程中,Akamai在每个阶段都可以帮助游戏厂商去做全球化,跟厂商一起面对可能会遇到的挑战。(雷锋网)