伴随着以BAT为代表的中外互联网巨头先后入局小程序,也使得小程序领域掀起了一股创业热潮,而小游戏则无疑是其中最具潜力的方向之一。自从微信官方推出的《跳一跳》开启了这一大门之后,小游戏上线仅用100天就交出了这样的成绩单——发布游戏超过2000款,日流水达到千万级。
为了更好的为开发者服务,日前腾讯云发布游戏PaaS产品小游戏联机对战引擎(MGOBE)。根据官方介绍,这是基于腾讯游戏数十年的研发经验,这一联机对战引擎可为小游戏开发者提供后台网络能力,使其能顾快速及低成本的实现联机功能。
作为依托于微信及QQ等社交平台的产物,小游戏天然就具有一定的社交性,但其本身轻量级的特性则使得目前大部分以单机游戏为主,能顾支持联机对战功能的可谓是少之又少。当然这并不是开发者不想,而是想要在小游戏上实现联机,并非一件简单的事情,而此次小游戏联机对战引擎的诞生也就正是为了解决这一问题。根据腾讯方面公布的信息显示,开发者只需调用几个javascript接口,5分钟即可实现房间管理、在线匹配、联网对战等功能,并可支持多场景匹配、网络通信实时同步、实时服务器更新不停服等能力。要解释这些功能到底是怎么回事,首先还是让我们来看看开发者此前在小游戏上回避联机功能的原因。如果你对游戏行业比较关注就不难发现,目前无论是PC端还是移动端,小团队或者个人开发的独立游戏通常都不支持联机,究其原因则是因为完成一个游戏所需要的技术与实现网络连接的技术并不是同一条线,对于这类小微开发者团队来说,无论是能力、精力,还是财力都比较有限的情况下,自然只能抓大放小主要突出游戏性。
以网络游戏中最经典的C/S架构(Client/Server架构),即客户端/服务器架构为例,其中涉及了三个角色——客户端、服务端,及网络,这使得一款游戏想要实现联机功能通常需要完成三部分的工作,即网络传输策略、同步策略、负责数据交换的序列化工具。众所周知,Internet最基本协议是TCP/IP协议族,其包含了应用层、传输层、网络层和数据链路层。在目前主流的网游中,如果是类似《FGO》这样的弱交互卡牌游戏,通常使用的是应用层中的http协议,使用相对简洁的请求-响应模型;而如果是《王者荣耀》及《和平精英》这类需要实时交互的游戏,则会用上传输层的TCP(传输控制协议)/UDP(用户数据报协议)协议来确保实时的交互。但搞定网络数据接入仅仅只是万里长征的第一步,真正难倒小团队的可能是接下来的几步。在网络传输协议确定后,所需考虑的便是游戏对象的序列化,往往要使用来自谷歌的protobuf,或者基于C#的Serializable来实现数据储存与网络通信。路建与仓库完成之后,接下来就是要让数据交互,而这也是最为核心的步骤。要知道时间对于每个人都是公平的,这就要求开发者需要通过同步机制,来保证每个玩家手中客户端的一致性。现阶段主流网游的同步机制还是两种,其一是状态同步,简单来说就是客户端将玩家完成的“攻击”操作发送给服务器,然后服务器依据规则计算类似“攻击对怪物造成999点伤害”的结果,并广播到所有相关的客户端上,最终由客户端负责渲染结果;其二则是帧同步,指每个客户端只同步自己的操作,确保不同客户端在相同的时间接受输入,并在相同时间里得到相同的结果。尽管理论很简单,但实现起来却并不容易,毕竟玩家的行为是无法预测的,开发者需要做好接收大量并发请求的准备,高并发如果处理不好,轻则造成网络卡顿,重则服务器直接宕机。因此这时腾讯小游戏联机对战引擎的价值就凸显出来,在使用了这一引擎之后,就意味着开发者调取了腾讯的接口,并用其实现网络通信的实时同步,并且无论是帧同步还是状态同步都能轻松实现。完成了这三个部分,也就意味着一个联机游戏的地基就已经完成,不过这种简陋的模型显然是毫无使用体验的,因此开发者还需要添加各种功能,比如说在线匹配及房间管理等。再者,开发了网络联机功能之后,就不能像单机游戏一样当个甩手掌柜对游戏撒手不管,毕竟网络运维同样也是麻烦事。此次腾讯云推出的小游戏联机对战引擎,针对这些痛点也给出了相应的解决方案。所谓多场景匹配,指的是其能够提供房间管理的基本功能,支持邀请好友玩以及在线匹配玩家;并且还支持开发者按照地理位置等因素进行分别特定模式的匹配;甚至在针对新游戏上架玩家基数不足的情况,还能为开发者提供机器人匹配的选项。但必须要指出的是,尽管技术不会可以学,但真正制约小游戏开发者不做联机功能的小游戏,问题其实还是出在成本上。传统网游基本上都是采用一次投入的服务器托管,也就是物理服务器,但是这种模式“不成功便成仁”,如果项目不成功玩家不买账,花费高昂的服务器就只能闲置,因此并不适合小团队。对于小团队来说,云服务的优势胜在自由灵活的配置和较低的前期投入,随着游戏被越来越多的玩家认可,后期还可以便利的实现扩容。但是目前云服务本身同样也有一定的缺陷,其中“云服务超售”就是其中之一,由于目前各大云服务提供商普遍存在超售现象,因此高峰期的带宽受限情况也并不罕见,但带宽不足对于网游的影响极其明显,并且如果服务器超售太过严重,还可能造成整个集群崩溃,并出现服务器宕机。因此依托于腾讯云的弹性伸缩(Auto Scalin)攻略,小游戏联机对战引擎提供了实时服务器的功能,能够根据业务负载分钟级扩展。开发者只需将联机逻辑代码与策略部署在服务器端,当玩家数量激增时可实现自动扩容,而用户也会被自动匹配到新的服务器上,而玩家数量在波谷时服务端可自动缩容,能够更为灵活的满足开发者需求。
总的来说,腾讯云提供的是一套一揽子解决方案,旨在为开发者提供更加便捷实现网络联机的可能性。而腾讯云之所以会提供这样的服务,很明显不是为了赚钱,根据腾讯云互联网行业产品总监 、小游戏联机对战引擎负责人陈亮的说法,“一个用户几分钱”。按照2019年初微信公开课上公布的数据,微信小游戏月活已经达到4亿,而腾讯云能够依靠小游戏联机对战引擎获得的月收入在百万级,但仅仅一个《王者荣耀》就能提供上亿的月流水,因此几百万的月收入相比之下并不算太多。事实上,腾讯此举与全球其他的平台型公司推出方便开发者的工具一样,还有着项庄舞剑意在沛公的心思。外界认为其目的或是在用小游戏来提升整个小程序生态的活性,通过强化社交功能的小游戏将小程序的入口泛化。由于依托于小程序的小游戏注定只能以轻度游戏的模式展开,因此也更受到成长于互联网之下的千禧一代青睐,准确来说,小游戏更像是一个套着游戏皮的社交工具,通过更娱乐化的手段让玩家驻留在小程序的生态之中,而这也是为什么现阶段小游戏都是以轻操作与趣味向为主。因此在未来有了联机功能的加持后,无论是邀请链接还是好友开房间娱乐,显然也将能够极大的增强粘着度。那么在接下来的日子里,你准备好与朋友们愉快的在小游戏中对战了吗?
【本文图片来自网络】
对于现阶段的5G手机来说,应用或将是最大的问题。
尚品网倒下之后,奢侈品电商行业将何去何从。