助力中小游戏团队,腾讯为何把这两款神器开放给全行业?
【ashkeling专稿,转载请注明出处】
ashkeling报道/9月9日至11日,2020腾讯全球数字生态大会正式在“云”端召开。而在9月10日的游戏专场,腾讯重点向游戏业同行推荐了两款产品:ob电竞APP下载服务器引擎GSE、游戏数据库TcaplusDB。
ob电竞APP下载服务器引擎(Game Server Engine,缩写 GSE)提供专用游戏的服务器托管服务,具备实时伸缩;支持有状态的缩容;健康检查,保障服务稳定;多地部署,容灾;不停服更新;就近接入;跨平台;无忧定价,按量计费等特性。能够帮助开发者快速构建稳定、低延时的多人游戏的部署环境,并节约大量的运维成本。支持 Unreal、Unity 引擎,C#、C++ 以及 gRPC 支持的任何语言的 server 框架部署和运行;应用于 FPS、MOBA、回合制、MMORPG、棋牌游戏中战斗服、消息 PUSH 等需要保持状态的场景。
借鉴非关系型数据库的设计理念和技术,结合游戏特点、平衡性能和成本,腾讯云游戏数据库 TcaplusDB 专为游戏数据存储打造,目前已为《ob电竞》、《ob电竞》、《ob电竞》等千万级 DAU 大作提供了稳定的数据存储服务。具备低成本;高性能;高可用;针对游戏的个性化需求;动态拓展;学习门槛低;服务化运营;优化资源利用率、提升运营效率的优势,能够应用于手游、端游、页游、社交等场景。同时,依托腾讯云遍布全球五大洲的基础设备服务节点,游戏开发商只需接入一次,便可在全球使用。
囿于研发实力的限制,怎样做出媲美大公司水准的产品,一直都是困扰中小企业的一大难题。于是,腾讯提供了两款经过大项目验证、且低门槛使用的产品为中小开发者解忧。尽管两款产品的出现会带来了不少便利,但产品的具体学习成本、能否适用于轻度的小DAU产品、是否值得中小团队接入等等实际情况,才是目前所有开发商最关心的问题。
针对同行最关心的几大问题,ashkeling在大会期间采访了腾讯云泛互联网产品总监陈亮、以及腾讯云游戏行业架构总监宋永周。以下是ashkeling采访实录:
ashkeling:目前国内和海外市场对隐私保护的问题的关注度非常高的,能否介绍一下腾讯云在这一块是怎么适应国内的合规要求、以及海外的市场风险问题?对隐私保护这一块,能否简单谈一下?
宋永周:关于隐私保护和合规的问题,腾讯云一直是非常重视的。隐私保护和合规的问题不单是游戏行业,而是全行业的能力,是云厂商在全球提供云服务的一个基础能力。在腾讯云内部有一个专业团队负责对接各个国家、地区的法律法规的要求,目前在合规方面,腾讯云做得也是比较出色。据我了解,我们在各个云厂商之间做得还是在前列的,尤其是一些头部合规认证,我们甚至是各个云厂商中首次拿到或者是独家拿到的。
ashkeling:追问一下,你刚才说到的拿到的一些认证,对于游戏企业来说,从业务端拿合规认证和云拿合规认证给业务的帮助有什么区别呢?腾讯云会有什么独特的服务给到游戏厂商和出海的游戏企业?
宋永周:合规认证的能力相当于云厂商在某一个指定的国家或区域具备提供公有云的合规能力,这对于游戏厂商做出海或者在这个区域发行的一个基础保障。
陈亮:云提供基础架构包括IaaS、PaaS等服务,在我们提供服务的过程中,同时会拿这部分的相关合规认证,就像如果我们在国内拿到等保三级、等保四级等认证。客户如果使用腾讯云,就只需要关注业务合规认证,云的部分腾讯云可以为客户提供合规保障。
ashkeling:游戏服务引擎的GSE现在已经支持很多的前端引擎了,包括Unity和虚幻,而且很多游戏类型也支持,这块确实看上去特别像一个引擎。我们是否已经有一些比较标准的服务器端的模板可以直接给到游戏厂商直接使用?这个GSE怎样推广?游戏厂商该怎样学习这样一个产品?
陈亮:目前GSE已经全面支持主要的游戏引擎,并且都有着很好的合作。在服务端这块,我们会为开发者提供标准的模板和场景,后续会提供demo,包括demo的代码都可以开源出来,让开发者能够快速使用。目前在房间类,比如MOBA,棋牌类等等,我们都有模板,也会把示例代码开放出来,后面我们还会提供MMO大世界等场景的DEMO给开发者参考,这是回答第一个问题。
第二个问题,游戏公司如何学习GSE。这其实跟上一个问题有一些交集,我们首先提供了标准的腾讯云的文档,然后也在和Unity共同建设技术论坛,在游戏技术社区里面会有很多包括技术文章在内的讨论,供客户和开发者学习。跟上一个问题重叠的部分就是,我们会做更多官方的demo,也会将这些demo所涉及的代码开源出来,客户可以基于这个快速学习和搭建业务。
ashkeling:您说的GSE大概要求后端的程序员需要掌握哪些能力?比如编程能力需要有哪些才可以使用GSE,有没有一个标准?
陈亮:GSE的目的是帮助游戏后端减少开发压力、或者降低开发要求。游戏开发者只要理解游戏服务端在扩缩容、或者就近接入的实际应用场景,然后就能利用GSE快速实现这些功能逻辑,不需要像以前那样一个一个功能开发。
举一个例子,在游戏战斗服扩缩容的场景里,以前的开发者是要自己写程序判断每一个进程里是否还有游戏会话,而这些GSE都可以帮它监测到,同时还可以调用服务器的资源进行实时扩缩容。所以这一块是降低开发压力的,不会让服务器开发人员有更多的学习成本,其实是减少开发和运维成本。
ashkeling:下一个问题是关于腾讯的Tcaplus DB的,数据库是腾讯云很有特色的一个产品,我看到上面有很多的案例,比如mobile的《ob电竞》、《ob电竞》都在用到这个数据库,能不能谈一谈非腾讯的游戏企业是不是也在用这个产品?目前有哪些实际情况?
宋永周:目前Tcaplus DB是腾讯一款全新自研的NoSQL的分布式的数据库,它最大的特点是帮助游戏提升高并发场景下的水平无限扩展能力,包括高并发读写能力。目前主打游戏行业,主要也是因为TcaplusDB在兼容游戏行业运营场景的一些需求上做的比较出色。因为我们内部研发团队做了长达八年的能力积累,尤其在单用户的数据回档、不停服更新、丰富的二级索引支持查询分析、与游戏开发框架的原生结合场景里面,做得都是非常不错的。
关于除腾讯内部的游戏外,在外部有没有游戏客户使用,目前是有的。这次在全球数字生态大会上有一个客户案例,也是外部客户盛趣游戏的制作人分享了他们在使用Tcaplus DB上的经验、以及Tcaplus DB帮他们解决了业务的哪些问题。
ashkeling:MYSQL可以下载到本地电脑上安装,而这个数据库则是腾讯云上的在线数据库。腾讯如果推广这样一个数据库产品,外部只能靠在线文档或者用腾讯云才能接触吗?
宋永周:我们做的云上全托管的目的是为了利用云的资源能力帮助客户实现线上运营过程中的稳定性,而您提的是使用的便捷性。若是在封闭开发环境、或开发环境不方便连外网的情况下使用TcaplusDB,我们则会提供一个类似沙箱环境的方案,客户需要在本地的开发环境上拉起一个沙箱环境,然后就可以在封闭环境里使用。但这个仅限于测试,因为大规模的数据量来了之后,数据库服务是支撑不住的,并不能体现Tcaplus DB较强的性能指标。
ashkeling:TcaplusDB能像一个软件一样,在其他托管的服务器上也能使用吗?还是它限定范围只能在腾讯云?
陈亮:我们的产品设计是充分考虑开放性的,客户可以通过开放的接口将腾讯游戏云的服务和其他环境进行联动,在混合云的场景这种也是支持的,因为软件具备这样的移植能力的。
ashkeling:在介绍资料里面有提到,TcaplusDB是一个针对高并发的、异步的数据库产品,优势非常明显。但是对一些轻度游戏,或是没有那么大DAU的游戏,比如它是一个弱联网的产品,是不是会有功能冗余的情况?这个数据库对比其他类型的产品的优势是怎样的?又是怎样降低使用成本?它是不是为在线、用户规模比较大的游戏做的?
宋永周:这是一个很好的问题,因为最近在客户拜访里面也遇到了类似的情况。对于Tcaplus DB来讲,高并发和平行扩展是它的主打能力,但并不是TcaplusDB的全部能力。针对于轻度游戏、或者用户规模体量不是特别大的场景,它在业务的稳定性和研发效率上也能帮助客户去做一些事情,我举两个例子。
第一个场景,在业务研发阶段,在Tcaplus DB和业务代码逻辑是原生结合的,开发者只要在程序代码里面初始化对应的对象,然后赋值提交就OK了,省去了开发过程中的一些数据库操作转化的环节,提升了开发效率。
第二个场景,对于游戏运营过程中的一些场景的支持,像游戏运营中有版本更新,Tcaplus DB可以通过数据存储协议多版本的兼容,去实现业务的不停机更新。业务在更新程序版本时服务并不终止,用户体验就能得到更好的保障。
所以小产品用这个数据库也是没有问题的,在腾讯内部除了大的产品用之外,小的产品也用。自研的业务也有小产品,基本上大家都在用Tcaplus DB数据库。
ashkeling:现在市面上大家用开源的MYSQL比较多一些,为什么还是推荐用他们的,不推荐用你们的?而且为什么腾讯云也没强求一定要用这个数据库?
宋永周:其实开发团队使用什么样的数据库的技术结构,取决于团队的技术积累和它的业务实际情况。我们也并不是推荐所有的客户都来用Tcaplus DB,只是针对于适合的或者在具体场景底下有问题、且Tcaplus DB能解决的情况下,才会推荐客户用Tcaplus DB。如果开发团队确实对MYSQL的源代码非常熟悉,能解决好业务规模增加之后的扩展性问题,或者对某一个开源数据库非常熟悉的情况下,自主选择擅长的数据库,也没有问题。
而且除了Tcaplus DB之外,腾讯云在其他的常见开源数据库上也有对应的产品能够支持到客户。
ashkeling:由于GSE和TcaplusDB都是腾讯云的闭源产品,对于游戏企业来说会感到一种风险,有一个黑盒子在这里,都是由腾讯云提供的,但是我们却不了解这个代码的情况,因为它并不是开源的。如果一旦涉及到问题,涉及到本身的引擎或者自己的一些功能,会有很多不支持的地方。腾讯云提供了很好的产品,但是这个地方会提出很高的要求,要有一些技术上的支持,怎么保障这些独特的产品能够让开发者放心呢?
宋永周:作为一个闭源产品,确实会存在客户顾虑的问题。但是实际上这个产品本身除了帮助客户解决上云的效率问题之外,同时会给客户提供完整的数据监控的一些指标,实时告诉客户现在全托管服务运行的一些状态。
比如在GSE里面支持了30多个监控指标,会把托管在云上的服务运行的状态,比如房间资源的使用情况,都会有实时的展示,并通过云监控推送给用户。用户也可以通过腾讯云的控制台登录查看托管服务的一些状态。实际上对于这个服务,用户是可以很清楚地看到它的运行状态,并不存在完全是一个黑盒子的状况。
私有协议数据库,在行业里面腾讯并不是首创,其他的云厂商都有自己头牌的数据库。Tcaplus DB的协议上支持用Protobuf这种行业通用的协议,大家都很熟悉的协议。在数据存取上,我们也是提供完整的迁入和迁出的流程,客户如果使用,从其他的DB如何迁进来。如果不使用,如何从Tcaplus DB里面迁出去,这些都是有非常灵活完整的方案。
ashkeling:对于这种产品开发者很害怕升级,升级产品会导致更多的bug出现,根本不知道怎么解决。你们的GSE和TcaplusDB产品是强制升级吗?这个数据库的产品是一个怎样版本的维护方式?
宋永周:版本的升级策略,尤其是公有云上的版本升级策略是非常谨慎的,肯定不会一个客户提了一个功能需求就去升级。正常会有一个版本规划的路线,所有规划的新功能也都是为了适配当前客户在使用过程中遇到的一些问题、或者提出的一些新的功能点。我们内部也有严格完整的研发和运营上线流程,所有的功能点的开发,包括从单元的测试、压力测试到上线环境测试、灰度测试,都有完整的上线流程保证对线上的业务不会造成影响。
ashkeling:也就是说平台不会强制升级是吗?是由开发者自己选择是否升级你们的这个产品?
宋永周:这个要针对版本的情况,比如它是一个安全漏洞,就一定要做升级。但是我们也不会在不告诉用户的情况下强制升级。可能会跟用户协商,更多的服务升级也会选择对用户无感知的方式。即便我告诉你我在升级,但是你的业务是没有感知的,不会影响线上的业务。
陈亮:我补充一下。回到您最开始的问题,PaaS层的服务是不是绑定度更高。所有的云服务,虽然没有明显的边界,但是目前大家可以理解分成IaaS、PaaS、SaaS这几层,越往上,更偏向业务,用户使用起来更方便。但是越往上,由于它更偏向于业务,所以它的封装程度就更高,客户会觉得它的绑定程度会更高,回到IaaS层面,用服务器,肯定是绑定度最少的。
在这个部分有两种考虑。一个是帮用户提供更多业务方面的服务,同时这个方面所有的云服务,不管是IaaS、PaaS、SaaS,都提供标准的SLA,这是标准,每一个产品都会对应一个service level agreement,给客户有一个承诺,这块在稳定性上是有官方承诺的。
另外,我们对于不同的客户也会提供不同层面的服务,比如在小游戏的场景,客户对开发团队的能力相对来讲会偏弱一些,开发团队的组织也相对偏小一些,像这种我们会封装得更高层一些,即简单调用即可以实现业务需求。
针对大的游戏,我们会拆解成相对松耦合的产品。比如GSE,后面做的GPM,这些产品会保证核心业务的SLA的同时,会更加开放不同的接口、不同的功能,让开发商基于它的能力去做二次开发,这是我们会不断开放更多能力的。核心能力通过SLA保障,二次开发上面我们会不断开放能力。
另外在产品设计理念上,考虑到国情和国内用户需求,和您的考虑很类似,我们在产品设计的时候也是考虑到松耦合的。比如对标海外国际的一些游戏产品,在功能组件,比如匹配或者排行榜这些功能组件和服务器组件之间是一个强绑定的关系,通过我的服务去做了匹配关系就只能用我的服务器部署你的游戏。本身我们在GSE匹配功能,后面会发布的GPM来讲,我们也是做一个松耦合,你可以分开用这两个产品,当然最好是这两个产品组合会有更好产品的融合,同时我们也更开放地把这两个产品做了松耦合的设计,你可以和自己需要的服务器去做结合。因此,在这方面我们也是有考虑国情和用户的诉求,做了一些专门的设计。
ashkeling:你的意思是,像国内的各种云都是跟渠道强制绑定的,开发者没办法,只能用他们的云。而腾讯这些产品都可以延伸到其他的云服务上去,腾讯也支持,是吧?
陈亮:我们是相对比较开放的。但是有一定要重复最前面那个问题,就是越上升到PaaS层或者越上升到SaaS层的服务,它的封装程度必然就更高。比如要用一个serverless的服务,现在是云业界很流行的无服务器,名字就叫无服务器,当然看不到服务器本身的开启和关闭,你更加上层更灵活使用一个服务的时候,它的封装程度必然会更高,而我们会尽可能开放。
结语
在其他采访中,宋永周还谈到:“目前在国内市场上,有超过70%的游戏公司都在和腾讯云合作。”同时,由于大部分合作厂商在国内习惯了使用腾讯云,所以在出海的时候也会优先选择腾讯云的产品方案。“我们除了能够给客户提供基础的IaaS和网络覆盖能力之外,也有像游戏的加速、游戏的语音、游戏数据库、战斗服的托管等等,为客户提供差异化的产品能力,帮助客户全方位地提升它上云的稳定性和运营的效率。”
宋永周表示,腾讯本身做了十几年的游戏,腾讯云也积累了十年的能力,所以在整个行业里面是具备足够优势的。“第一块,我们熟悉游戏用户的分布。因为腾讯本身也在全球发行游戏,所以我们给用户推荐的选点方案一定是最专业的;第二块,通过这么多年的积累,我们熟悉各个区域的打法,给游戏出海经营的经验都是有差异的;第三块,基于腾讯多年研发运营游戏的经验积累,我们有若干个不同的细分领域的一些产品解决方案。”
如若转载,请注明出处:http://www.ashkeling.com/2020/09/396929