这是什么神奇操作!两个前端一周上线一款联机小游戏

​从1月底爆发至今的新冠肺炎病毒疫情牵动着每一个人的心。2月初,腾讯云的游戏云团队想到,可以通过一款小游戏来普及抗疫知识。想法获得认可后,开发团队快速行动起来。最终2个前端开发、1个美术和1个策划,仅用1周时间内,就完成了“一起来战疫”小游戏的开发、上线。

“一起来战疫”包括单机玩法、邀请好友对战、在线匹配对战、排行榜、背景音乐音效等功能,上线四小时即获得6万用户。疫情期间,时间紧张、人力短缺,开发团队如何做到快速上线?我们采访了腾讯云的开发团队,请他们分享开发经验。

以下腾讯云“一起来战疫”主创团队口述:

2月初,在疫情严峻的大环境下,作为游戏行业的从业者,我们一直在思考如何为疫情防护出一份力?与团队讨论后,我们决定利用自身的能力,做一款寓教于乐的小游戏,帮助大家更好地了解防疫知识。

难点在哪里?

这款小游戏需要同时兼具科普价值、易玩性和传播性,经过多次讨论,我们决定在游戏中策划“好友对战”+“个人测评考场”两种玩法。也就是说,这款游戏既要有联机玩法,又有单机玩法。这样的游戏形态固然丰富,互动传播效果固然好,但是在实际开发中, 联机玩法对于开发者的技术要求较高,且有很大的工作量。我们面临以下难点:

(1)以疫情防控为主题的项目,越早上线对防疫工作的帮助越大,时间不允许我们开发周期过长

(2)联机游戏对于后端能力要求很高,而一般小游戏开发团队,很难有足够的后端开发人力和后端开发经验

(3)游戏想要丰富的表现形式,音效和背景音乐是必不可少的,需要确保使用的音乐素材没有版权问题

以上这些也是小游戏开发团队经常面临的共性困难。我们利用腾讯云为游戏行业开发者提供小游戏解决方案解决了上述难点。

利用小游戏联机对战引擎(MGOBE)提供客户端SDK和服务端框架,通过接口级接入,使游戏快速拥有高性能联机能力。MGOBE是一款为各平台小游戏、h5小游戏提供房间管理、匹配、帧同步、状态同步等后端服务的产品,适用于MOBA、FPS、休闲对战、回合制等各类联机游戏。利用小游戏联机对战引擎,可以专注游戏逻辑,不用考虑服务端底层架构和网络通信等问题。

利用云开发(CloudBase)云端一体化的产品能力,采用 serverless 架构,免去了小游戏构建中繁琐的服务器搭建和运维。同时云开发提供的静态托管、命令行工具 (CLI) 、Flutter SDK等能力也降低了多端开发的门槛。

而在游戏背景音乐中则应用了正版曲库直通车(AME)。基于腾讯音乐娱乐集团的线上背景音乐专用曲库,结合腾讯云存储、内容加速分发等基础能力,正版曲库直通车帮助开发者快速获得正版音乐素材。

具体怎么做?

(1)房间管理

通过MGOBE的客户端SDK接口,实现了创建房间、加入房间、退出房间、解散房间、查询房间等操作,为“一起来战疫”增加了双人对战答题房间,实现对战功能。

(2)在线匹配

MGOBE提供了多样化匹配规则设计,在控制台上使用脚本语言配置匹配规则集,生成匹配code,通过客户端SDK的匹配接口传入必要的匹配信息,我们快速实现了针对玩家属性值的“区间分段匹配”和“误差匹配”。

考虑到对战游戏关键一点是能让玩家快速找到对手,在好友约战、在线匹配基础上,我们加入了机器人逻辑。游戏在非高峰时期时,很难为所有真人玩家建立匹配,所以我们加入了机器人匹配功能。利用MGOBE灵活的匹配规则集,设定匹配等待时间。如果超时,自动为玩家匹配机器人。

图片1.png

(规则集配置)

(3)对战实时通信

玩家在答题对战中,需要在客户端之间进行通信,以同步对方的答题和得分状态。对于玩家之间的通信,MGOBE提供了客户端消息发送、帧同步、通过服务端进行消息转发的通信方式。“一起来战疫”通过使用服务端消息转发,实现了对局中不同客户端之间的一个状态同步。

(4)对战的服务端逻辑

玩家在答题对战中,需要在服务端处理一些业务逻辑,比如判定输赢、更新玩家数据、回档对局结果等。“一起来战役”用到了MGOBE的实时服务器框架,在框架内编写机器人逻辑、调用云函数获取题库、通过云函数读写云数据库内的玩家表等数据,轻量化实现游戏的服务端能力。

图片2.png

(实时服务器框架交互时序)

5.数据读写和数据存储

在“一起来战疫”中,数据读写需求频繁,比如读写用户表更新用户答题得分、计算排行榜信息、获取对战的题目和答案等。这些需求都可以通过使用云开发(CloudBase)产品能力实现。在微信的平台下,云开发(CloudBase)提供了登录鉴权能力和接口使用方式,可以在客户端SDK内直接调用云开发的云调用功能进行数据库访问,也可以在服务端进行云开发的数据库读写。

(6)背景音乐

实现了基本的玩法之后,就是让游戏的表现形式变得更生动和丰满了。对于一款优秀的游戏而言,合适的背景音乐和音效是必不可少的。正版曲库直通车开通了针对游戏场景提供的背景音乐曲库,我们挑选了三首单曲,在正版曲库直通车控制台上配置之后,直接在客户端调用api实现了音乐播放,并且完全不需要担心版权问题。

传统的购买音乐版权方式,需要繁琐的版权配置、自行搭建或购买CDN分发服务,做好音乐资源的存储与防泄露等工作。而正版曲库直通车将整个技术实现链路上的诸多环节简化为一个域名,三个接口,极大的缩短了开发时间,也规避了版权风险。

图片3.png

对于小游戏而言,抓住市场的热点动向,快速研发上线,是小游戏成败的关键之一。借助腾讯云提供的小游戏解决方案,我们快速实现了游戏的研发上线。于此同时,“一起来战疫”借助新华社和腾讯健康提供的专业题库,让玩家可以系统了解防疫知识。在新华社推送“一起来战疫”的报道后,我们的游戏迎来了一个峰值。借助小游戏联机对战引擎的分布式实时匹配系统和基于云原生技术的高可用、可弹性伸缩、可扩展的状态同步对战服务,我们承受住了高并发的压力。