如果把游戏比作一辆赛车,那么游戏开发就扮演着至关重要的引擎角色,掌控着玩家感知到的剧情、关卡、实时社交、版本更新、兼容性、性能问题等;而运维则充当着决定赛车生死的安全刹车。无论是端游、页游、手游,能否抵御卡顿、宕机、DDoS攻击,都离不开运维的支持。然而,在突破核心玩法、保证运维质量、抵御恶意攻击等方面,开发者往往会遇到不少挑战。
腾讯云立足自身业务和海量用户,在如何打造爆款游戏上探索出了一系列完整的解决方案。1 月 12 日,腾讯云与 InfoQ 联合举办了一场游戏主题沙龙,来自腾讯云、腾讯游戏、三七互娱的专家就游戏的云端开发和运营进行了深入探讨。本文总结了其中的一些亮点,感兴趣的读者可以点击文末的【阅读原文】下载讲师完整 PDF。
提供云技术支持腾讯云游戏解决方案概述
腾讯云游戏云解决方案架构副总监王章从游戏业务上云的最佳实践和案例入手,深入分析了游戏开发面临的技术挑战,以及腾讯云在游戏行业提供的各类解决方案,并与多位与会嘉宾探讨了如何寻找适合自身业务的游戏云解决方案。
游戏开发面临哪些技术挑战?
王章首先介绍,在过去的一年里,游戏开发者最关注的问题主要包括加速+专线、攻击、游戏语音、IOPS+PPS、Hadoop+AI大数据分析等,这些也是目前让游戏开发者比较头疼的方面,针对这些问题,腾讯云提供了一系列通用的解决方案。
腾讯云游戏行业技术解决方案
网络加速
从玩家到服务器的加速,特别是跨境加速,大多是通过玩家购买迅游、网易等提供的加速器产品来实现的。为了降低玩家体验游戏的门槛,提高玩家体验度,腾讯云提供了两种解决方案让服务器解决跨域远距离传输网络质量问题。
下图为腾讯云的“游戏加速器架构(一)”,具体实现方式是在玩家所在区域与游戏服务器之间搭建专线通道,构建对等网络,通过专线链路为玩家提供上行和下行稳定可靠的访问体验。当然,这种方案需要游戏开发商在玩家和服务器所在区域搭建两套代理集群,分别转发上行和下行流量,有一定的成本开销。同时,对于已经上线运营的业务,还涉及到玩家请求更换 IP 地址。
另一种方案对业务改造成本更低,即保持原有 RS(Realy Server)IP 地址不变,增加其他地域的 LBS IP 地址映射到 RS,公网 IP 所在网关集群与 RS 之间采用专线,这样一台 RS 就可以通过多个公网 IP 辐射到不同地域。例如 RS 在香港,国内玩家可以从腾讯云华北、华东、华南地域的 LBS IP 上去,走专线到 RS。韩国、日本、新加坡的玩家也可以通过当地的 LBS IP 访问 RS 服务。
安全
除了加速方案,腾讯云还提供了多种网络攻击安全防护方案,以对抗不同特点的攻击,包括超大流量攻击应对、精细化攻击应对、棋牌类攻击应对等。以超大流量攻击应对为例,业务被攻击的时长其实占业务在线时长并不多,因此可以通过体验更好的BGP网络来保证业务的正常服务,而BGP可以提供100G规模的攻击流量清洗。超过100G的攻击BGP的清洗成本就会急剧上升,因此会通过腾讯云提供的中间域名自动调度到三网出口,对超大攻击流量进行清洗。
其他场景应用探索
除了以上解决方案,腾讯云还在探索其他解决游戏业务痛点的解决方案,比如全球支付、游戏智能客服、游戏营销安全等。以游戏智能客服为例,玩家在游戏中遇到的问题大多是相似的,通过知识库数据分析,可以实现在线自动响应,依托腾讯海量的用户标签数据和优秀的算法,可以训练出真正的智能客服,游戏可以通过智能客服来回答玩家的问题,提升处理玩家问题的效率,提升游戏体验本身。
腾讯游戏的海量服务架构构建之路
网络游戏与其他互联网业务一样,需要面对承载海量业务的压力,同时需要满足游戏所需的低时延、高业务逻辑复杂度等要求。腾讯游戏研发部高级架构师韩伟结合腾讯游戏海量架构建设经验,分享了游戏海量业务的架构特点、核心模块、弹性能力的实现方法,为游戏开发者在面对海量用户时提供了一些参考思路。
分布式流程框架构建
目前腾讯游戏包括业界很多其他游戏比如魔兽世界等大多都是采用跨服务器的方式,所以目前游戏服务器的趋势是全面分布式。相比于老的游戏架构,分布式有部署到不同机器上方便、负载均衡单元更精细、监控和问题定位更容易等优势,更能满足杂乱用户对于游戏系统的体验要求。
下图是腾讯云分布式集群架构图,主要包括接入进程和逻辑进程。左边是客户端,腾讯有一些接入进程,主要处理网络连接,这些网络连接的数据初步处理完之后就放到逻辑进程里去解析。有可能这个逻辑进程并不是自己的进程,所以可能会转发给其他逻辑请求,最后响应给客户端。还有一种情况是游戏需要多个响应,也就是一对多的请求,这时候整个流程就需要多个进程同时满足,而不同的客户端可能连接不同的进程。
不管是接入进程还是逻辑进程,都需要由统一的集群中心进行管理。集群中心是所有集群管理的核心节点,用于管理多进程模型。可以看出,如果把整个集群看成一个单位游戏开发,那么每个进程其实可以很方便的部署到不同的机器上。通过集群中心,进程之间也可以互相知道对方的信息,收发数据,然后合理地将进程分配到不同的机器上,提高整个集群的容量。
那么,腾讯云是如何构建这样的分布式集群系统的呢?韩伟提到了两个重点:分布式通信和缓存系统。
分布式通信:目前分布式通信基本都采用消息队列技术。腾讯的消息队列有一个特点就是每条消息的发送方和接收方都是一个消息队列服务,这个消息队列服务的发送方和接收方只接收与自己相关的数据,这样可以显著减少消息队列在中转过程中的传输时间。另外腾讯云还会采用自定义路由的方式,让客户端根据需求选择合适的路由方式,灵活配置集群中心地址。
分布式存储:分布式存储最核心的点是持久化和缓存。接入代理在接收到请求后,会带上包含数据来源等相关信息的数据切片,用于数据追踪和留存;缓存方面,逻辑进程负责承载玩家要读写的数据缓存。根据腾讯游戏运营标准,玩家不能丢失数据超过十分钟。因此腾讯云会做定时自动回写代码,每十分钟自动回写一次,防止数据丢失。
这个系统中各个进程之间的联系看似复杂,其实这种复杂性被一个通用的分布式通信消息队列所承担,开发者只需要了解这个集群里有哪些服务,不需要自己去管理这个复杂的进程,因此整个系统的开发和维护难度并不大。
海量服务器运维实践
那么,这个分布式系统是怎么做运维的呢?首先腾讯云从部署的角度会搭建一个云服务平台,来做整个集群的流程部署、流程监管。这个平台软件会把所有的功能划分到集群中,集群中会有大量节点。所以腾讯云还搭建了一个计算能力伸缩平台,可以根据需求自动扩容、缩容。对于服务接口的定义,系统必须要有服务绑定、服务发现才能做服务对接,所以除了分布式开发框架之外,还会配置一个服务管理系统。最后就是基础的运维服务平台,包括一些非功能性的能力,比如能够输出标准的日志、输入标准的监控指标等。这个平台主要支撑一些运维操作。
韩伟最后向观众透露,腾讯研发部门把一些跟游戏逻辑不是特别紧密相关的服务都做成了云平台。比如存储方面,《王者荣耀》用这个云平台做存储的同时,《全民突击》也会用这个存储系统,这样会大大提高运营效率和运维效率。
吃鸡游戏架构解析
从今年3月份开始,“吃鸡”游戏就一直高居游戏话题排行榜首位。随后,国内厂商也开始着手开发此类游戏。据统计,“吃鸡”游戏全球销量已突破3000万份,同时在线人数超过240万,连续43周蝉联Steam周销量榜冠军。那么,如此火爆的游戏背后,到底是怎样的游戏架构?而针对“吃鸡”游戏在防作弊、加速、安全等方面的需求,又有哪些解决方案呢?来自腾讯游戏云的资深架构师何光平对“吃鸡”游戏架构及相关解决方案做了详细解析。
吃鸡游戏架构解析
下图是一个“吃鸡”游戏的完整架构图,这里采用大厅和DS服务架构,进行全局部署;安全方面有DDOS防护、TP防作弊方案,其中TSS(腾讯安全系统)是腾讯的防作弊系统;XMMP是负责信息传递的即时通讯系统;TC是腾讯的充值系统-IDIP。
整个系统看起来很复杂,但开发人员实际上只需要关注两部分:左边的游戏登录模块和右边的游戏服务器相关模块。
相关性能解决方案介绍
总体来说,《吃鸡》游戏是全球同服的多人游戏,整个架构有高并发、低延迟、防作弊、游戏语音四大需求和特点,腾讯云在这四个方面也提供了相应的解决方案。
高并发解决方案:“吃鸡大师”类游戏的特点是百人以上玩家同地图对战,要求服务器具备高并发数据包处理能力和大流量吞吐能力。腾讯云采用的解决方案是高主频+SSD云盘+多队列+智能网卡,提供高IO云服务器和高可用云数据库,应对突增、高并发、海量访问需求。
低延迟解决方案:实时多人竞技需要保证每个玩家的网络时延和稳定性要求。腾讯云在全球共享大厅空间,对全球不同地域的服务器进行统一管理和调度。如下图所示,当网络拥堵时,A地域的玩家可以通过加速代理直接访问C地域的大厅服务。
反作弊解决方案:作弊严重影响了游戏的平衡性,尤其在“吃鸡”类游戏中,强大的反作弊系统是游戏稳定运行的保障。TP反作弊系统是腾讯自主研发的安全系统,通过加入客户端代码加密、作弊特征扫描、动态代码验证等措施,实时保护游戏免受作弊、木马的侵害。系统框架如下图所示:
游戏语音解决方案:竞技类游戏需要语音来指挥团内其他队友的战斗,陌生人之间可以通过语音直接互动,通过声音判断其他玩家的位置。下图是腾讯云TMG游戏语音框架图,其3D声音技术利用“头相关传递函数”(HRTF算法)对双耳的时间差和频谱差异进行建模,形成具有声源方向感的声音。同时通过采样混响的方式,填补HRIR缺失的环境反射声,从而构建完整的声场模型。比如在狭小的房间内,不仅可以听到两个人的对话,还能听到声音从墙面反射过来的效果,增加了沉浸感。
目前基于游戏开发引擎(如Unreal、Unity)的3D音效已经在游戏中得到广泛应用,通过游戏引擎模拟并重现声源在空间中的方位,如CS中的枪声、被击中的音效、附近敌人的轻微脚步声等,可以显著提升游戏的沉浸感,营造身临其境的游戏体验。
三七互娱云游戏的现状与未来
三七互娱曾开发并运营过多款成功游戏,从《永恒纪元》到《大天使之剑》,在游戏研发和运维领域有着丰富的经验和见解。三七互娱运维总监龚宏基结合三七互娱的实际业务情况,分享了他对游戏现状和未来的看法和思考。
龚鸿基认为,未来互联网公司只有两种存在方式:大数据和安全,而云是大数据和安全的完美结合,也可能是现在乃至未来很长一段时间内唯一存在的形式。传统游戏公司在做开发和运维时,经常面临区域或跨区域的网络建设与管理、综合系统和业务监控报警、安全事件识别与处理、大规模日志收集分析处理等问题,而云可以帮助解决这些问题。
云计算包括网络物理IaSS基础设施即服务和系统容器应用服务PaSS平台即服务,在产品的自动扩展、虚拟化、数据高度集成等方面提供了一整套解决方案。在运维方面,传统互联网公司的运维可以分为标准化、自动化、服务化三个阶段,国内大部分公司基本处于标准化、自动化前两个阶段,而国内部分云服务商如腾讯云、阿里云等已经到达服务化阶段,这些公司也结合自身业务,开发出了一套相对成熟的产品即服务。
在现场,龚鸿基也表示,现阶段企业上云还不够完善,包括三七互娱在内的大部分游戏公司在公有云成本管理、用户数据安全等方面都遇到了比较大的挑战。这也是云厂商一直在寻求解决方案的方向,也将是云领域未来技术趋势之一。
演讲最后,龚鸿基对云技术的发展给出了自己的思考:无论是大数据还是安全,从商业角度来讲,未来技术和产品的发展趋势必然是一个以用户为中心的世界、一个数据驱动产品的世界、一个生态协作的世界,这是毋庸置疑的。
直播+游戏 腾讯云在线知识竞赛解决方案详解
近期,“直播竞猜”风靡网络。王思聪推广《巅峰大会》、周鸿祎的花椒直播推出《百万大战》、今日头条&西瓜视频推出《百万英雄》、映客推出在线竞猜《奶酪超人》、一直播推出《黄金十秒》……似乎一夜之间,互联网直播版的《开心词典》应运而生。在游戏行业竞争如此激烈的背景下,知识竞赛为何能异军突起,成为直播行业又一风口?腾讯云P2P直播解决方案负责人崔立鹏分享了《巅峰大会》背后的商业逻辑和技术实现。
峰会背后的商业逻辑
崇鼎大会的规则很简单,用户参与直播问答,最后剩下的用户可以争夺当期奖金。这些直播问答的范围很广,每场活动总共有 12 道题目。规则规定,10 秒内答不出来一道题或者答错一道题的玩家将被淘汰。
那么,这样的直播竞技类游戏为何能如此迅速地火爆起来呢?崔力鹏从三个角度进行了解答:吸引新用户促进活用、广告收益分成、互联网直播内容的升级。游戏开发者可以以极低的成本获取大量的用户数据和用户画像;其次,提问的题目非常广泛,涵盖天文地理、历史科学、娱乐影视、音乐、诗词歌赋、礼仪等,游戏开发者可以很容易地以提问的形式为广告主“悄悄”植入广告;最后,就是互联网直播的升级。以往的直播大多以主播为主,用户通过消息进行互动,而这种知识竞技类直播更加以用户为中心,大大提高了用户参与度。
崔力鹏表示,此次峰会只是直播+游戏的一个小小的开始,接下来会有更多类似的游戏以直播的形式进行转型升级,带来新一轮的玩法浪潮。
体育直播的技术痛点及解决方案
之前提到过,峰会是多人在线游戏,同时要求用户在问题展示后的10秒内必须给出答案,因为这类竞技类节目最大的痛点就是高并发和直播延迟。试想一下,在网络卡顿的情况下,主播抛出一个问题,但是其他地区的终端用户没有及时同步信息,那么他很有可能因为网络问题被刷屏,这对用户来说是致命的体验打击。
基于以上问题,腾讯云提供了业界首个完整的线上比赛解决方案,如下图所示,演播室里的主持人通过IM系统把信息推送到腾讯云平台,然后用腾讯云自带的播放器播放。在直播方面已经形成了一个链条。同时在导演台有一个简单的答题后台,后台已经提前把题目和表格录好了,还放了一块屏幕展示题目。主持人说请听题目,导演在SDK通知时间到后把题目展示出来,然后通过腾讯云消息通道发送到全网。
虽然题目已经发出游戏开发,但我们不能排除题目和视频准确同步的可能性。对此,腾讯云实现了相对精准的时间同步,即在流处理时添加时间戳,在现场发题时添加标准时间,将这两个时间设置为同步状态,然后在播放时解析视频的音视频时间,这样就能做到较好的同步。