全面讲解如何快速开发腾讯云小游戏

内容来源:2018 年 08 月 25 日,腾讯游戏云产品总监王永和在“腾讯云GAME-TECH游戏开发者技术沙龙 小游戏”进行《腾讯云小游戏解决方案》演讲分享。IT 大咖说(微信id:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。

阅读字数:3179 | 8分钟阅读

摘要

小游戏的出现吸引了无数的开发者加入,短短时间内成为了游戏行业的又一新的风口。本次分享我们将从小游戏的特点讲起,向开发者全面讲解腾讯云小游戏解决方案。内容包括如何利用腾讯云工具快速开发小游戏、如何提高小游戏的下载效率、如何从容应对因社交传播导致小游戏瞬间爆发所带来的运维困境、以及腾讯云为小游戏开发者推出的扶持方案等内容。

获取嘉宾演讲视频及PPT,扫一扫下方二维码即可。

小游戏,大世界

大家先看一组数据,这是在腾讯上的一款小游戏的一些数据,可能大家关注的是每月流水,但是对云厂商来说我们关注的更多是后面的量。因为高收入后面其实是有着很多辛勤的工作的,比如上线初期流量爆发之后,我们团队直接跟客户交流整改架构。

小游戏本身还是有一定门槛的,一般的游戏开发者要做后端或者往重度的小游戏发展的时候依然存在一些不足,或者说资源投入上不具备。我们之前一直说棋牌是一个高风险、高投入的行业,其实小游戏同样如此。

小游戏同品类的游戏特别多,一旦某款游戏火了,立马就有一堆相似类型的游戏出现,竞争非常激烈。而从云厂商的角度来讲,如果能帮助这个行业降低入门门槛,对我们来说就是双赢。

腾讯云应用服务平台

上面是将在8月底推出的腾讯云应用服务平台,目前在内测中。该平台做了很多简单的整改,我们发现很多开发者其实对购买服务器搭建数据库、初始化、扩缩容等,并不熟悉,包括CDN他们也不太明白。

所以我们把这些东西抽象成一个面板放置在客户端和云资源中间,前端开发的人员通过调用API的方式就可以直接使用它们,相当于云后面的资源对开发者是透明的。

这是腾讯云和微信小游戏部门共同打造的一个平台。它的优势在于,开发者不需要去集成第三方的SDK,直接用微信的wx.cloud就可以调用各种方法。

通常前端和后端通信的时候,会通过密钥或者其他加密技术来做鉴权,最终由服务端对前端请求进行验证。

而采用微信的官方健全后,开发者在腾讯云后端的资源不再需要考虑二次定制化健全,只要使用微信API来调数据库或者是访问存储,基本上就不用关心鉴权的各方面问题。

安全方面我们是在物理的网络层做的隔绝,即使别人知道你的访问地址和文件路径,也无法通过公网连接到腾讯云的资源的。

我们还提供了一些便利的工具,比如免费的运营、证书,原生的HTTPS协议的支持。并且还提供了很多PaaS服务,包括数据库、文件存储、CDN服务和云函数。

数据库存取

下面我们通过三个例子来看下这些服务是如何实现的。首先是数据库存取的场景,图中左边是josn格式的数据库记录,要想在微信的客户端获取到这样的数据,通常要服务器上实现服务端动态查询数据库,然后往前push数据。

但现在我们可以直接调用微信的SDK,使用wx.cloud.database来创建数据库的引用,后面直接调它的方法,就能完成查询数据库等一系列操作,目前支持所有的数据库的连接方法和组合。

这样就避免了前端开发人员还要进行后端编程的麻烦,让前端也可以开发可联网的轻量级游戏。当然我们也提供在数据控制台上做数据管理的面板。

图片上传

第二个场景是上传图片,有时我们需要将图片会上传到云端的存储,比如保存用户完整的自定义的头像,就需要把他的头像图片传到数据库上。通常这要在服务端开发一个上传图片的后端应用,最终返回图片保存的路径。

而如果用的是TCB(腾讯云应用平台),可以直接调用微信SDK的uploadFile方法指定要上传的图片和图片。个人认为,如果你的游戏非常简单,没有太复杂的后台逻辑,建议采用这种方式。

云函数

目前来看以上两个功能基本上满足之前开发单机游戏的需求。但是对于一些轻量级的功能不适用,比如地理位置的匹配,就需要在前端做大量的计算,从而对客户端的性能产生影响。

这种需求其实放在服务端计算可能会更快一些,不过我们仍坚持不引入后台服务器,而是使用云函数的方式来应对。

开发者可以定义部署到云端的函数,然后传递参数调用该函数,计算结果就会返回到客户端。云端函数的调用同样是通过调用API来完成。

由于我们和微信是深度集成的,所以可以直接获取到用户的信息,也就是上图代码中的userInfo参数,这对于拥有复杂逻辑运算的单机游戏很有帮助。

文件存储

文件存储涉及的不仅是存储还有加速。虽然图片存储到服务器上之后,可以简单的通过网络地址访问到,但是当有大量请求出现的时候,数据读写会对后端服务器造成很大压力。

一般这种情况会应用分布式CDN解决,将上传到存储空间的图片同步到全国各个CDN节点上,用户访问的时候,会优先选择离他最近的节点传输数据。我们同样也提供自动同步CDN的能力,只需开发者在TCB平台开通相关CDN功能即可。

稍微有点遗憾的地方是,目前平台中游戏方面的内容其实是比较少的,基本上可以说是一片空白。我们现在的计划是,在12月份之前推出基于TCB平台的游戏生态内容的对接,让开发者除了用到前面讲到功能外,还可以用到一些游戏方面的东西。

重度小游戏架构面临的挑战

最近几年的游戏基本上都开始往重度方向发展,对于微信小游戏来说最大的特点是社交化,不过目前的微信单机游戏社交性过弱,而真正的社交互动的游戏一定会向重度游戏发展。

前面的轻量级游戏解决方案无法适用于重度游戏,所以我们总结了些重度小游戏在架构方面面临的一些挑战。

首先是弹性扩缩容,这也是目前最令运维最头痛的问题,因为我们无法预测到小程序何时会爆。有时候某个大V不经意的在朋友圈或者群里发了这个游戏,可能就会引发几何式的增长。

而此时游戏又没有办法做弹性扩容,因为可能架构上就不满足弹性扩缩容的要求。所以我们经常会看到,要么游戏一直不火,要么火了一段时间后停机维护,之后淡出视线。

第二个是高并发承载,这也是实现弹性扩缩容的先决条件,即如何应对突发的大流量涌入,在高压情况下保证游戏的流畅性。

重度小游戏架构思路

对此我们的架构思路是利用腾讯云的负载均衡和Auto Scaling去做高并发和自动扩容的服务。

需要提到的是数据库方面可能受到的注意并不多,不过个人建议数据库选型的时候应该考虑多个组合,而不升单用一个mysql来应对,要在缓存和高频数据的切片上做一些预留设计。

弹性扩容主要是通过腾讯云的云监控获取服务器、CPU、内存、读写的承载情况,然后判断这些数据是否达到阈值,一旦超过阈值就自动进行扩缩容。

对于高承载大多数人只关注链接数和并发量,但其实包括访问量、缓存、数据库、持久都是在一条链上的,不能将他们分割开。目前腾讯云方面是使用CLB做水平扩容和状态同步,采用腾讯自研的MongoDB分布式集群——CMongoDB,将数据通过片键存储在多台物理机上,实现存储容量无上限的能力。

CDN是小游戏加速的主要途径,它本质上是一种分布式下载和分发的技术,广泛应用于网站和游戏领域。腾讯目前在全国有1100多个OC加速节点,基本上覆盖了国内大多数中小城市。另外为了提升回源的效率,我们还设立了南北两大超级中间源。整个OC节点使用腾讯云的WAF为动态请求提供安全防护。

以上为今天的分享内容,谢谢大家!

原文发布于微信公众号 - IT大咖说(itdakashuo)

原文发表时间:2018-09-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人称T客

从四个技术角度看SaaS定制化部署痛点

企业进化到更加复杂的阶段,浏览器和 Web 应用程序解决了大部分苦差事,合法地取代了企业应用程序,SaaS 技术因此诞生。 SaaS 应该算是应用程序里最方...

4288
来自专栏云计算爱好者

为什么网站需要用CDN来加速?

CDN的工作原理就是将您源站的资源缓存到位于全国各地的CDN节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免网络拥...

3819
来自专栏Spark学习技巧

入门大数据必读

1666
来自专栏java一日一条

从“小白”到“白帽子黑客”的实用指南

早先,我也是半个黑客,经常在学校的教务系统看妹子。通过 URL 注入的方式,可以轻松进入别人的个人信息页。后来,又通过某种方式发现了管理员的账号,管理员又没有修...

1263
来自专栏安恒信息

策略升级 | 快速发现OWASP TOP 10 2017漏洞

OWASP(开源Web应用安全项目)于2017年11月22正式发布OWASP Top 10 2017最终版本,作为全球网络安全500强, 云安全、...

2978
来自专栏云加头条

电商月将至,腾讯云DCDB助力电商企业应对支付洪峰

第34届中国数据库学术会议(NDBC 2017)已于2017年10月20日至22日在浙江大学举办。本次会议,腾讯云带着其分布式数据库 DCDB(内部代号TDSQ...

2230
来自专栏IT笔记

给大家推荐8个SpringBoot精选项目

2017年,曾在自己的博客中写下这样一段话:有一种力量无人能抵挡,它永不言败生来倔强。有一种理想照亮了迷茫,在那写满荣耀的地方。

1041
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(69)-微信公众平台开发-功能概述

为什么要先发这个文章? 因为接下来的文章是关于微信开发的系列,心中一定要有一个概念,知道自己接下来要做什么功能。 而且微信到处都是坑,我首先要把微信与本地跑...

3458
来自专栏魏艾斯博客www.vpsss.net

腾讯云年中大促-热销云产品年付 3 折起

2003
来自专栏云计算D1net

如何管理好企业的数据

灾难恢复没有银弹。一旦发生停机,企业高管们会条件反射地以最快地速度采取各种灾难恢复手段。 虽然大多数IT主管和数据管理专家承认没有万全的安全解决方案来保...

3394

扫码关注云+社区

领取腾讯云代金券