写点什么

周桂华:我的小游戏开发之路(下)

2019 年 10 月 31 日

周桂华:我的小游戏开发之路(下)

8 月 17 日,“小程序·云开发”系列沙龙(小游戏专场)圆满落幕。本期沙龙云+社区携手微信 & 云开发官方团队为大家揭秘爆款微信小游戏背后的技术,全面讲解小程序·云开发、实时数据库库及小游戏联机对战引擎,助力小游戏开发。下面是周桂华老师从个人学习路径构建出发,阐述一个非游戏开发者是如何快速学习微信小游戏开发并同时驱动团队对接小游戏业务的。


于是我尝试学习 Coccos Creator,恰好当时对重力感应非常迷恋,恰好当时有个设计师朋友有个游戏玩法也切合重力感应的思路,于是边学变左,我利用 Coccos Creator+重力感应,做了一个叫《太空引力》的小游戏:



它的初衷是基于小时候玩的纸飞机游戏。其实主要的技术原理是基于微信小游戏的加速度 API。藉由这个游戏,我接触了 cocos creator,我发现这种框架很方便,很快就可以做出一个游戏。因为游戏逻辑不是很复杂,在视觉素材全部准备好后,基于 cocos creator,一到两周,游戏就能被开发出来。


为什么能这么快呢?我们看一下 Coccos Creator 的技术架构,它做的事情很简单:



总结来说,就三点:


  • 组件化:把游戏中可能用到的各类功能或者元素封装成一个个组件。

  • 可视化:组件在可视化开发工具里通过属性修改、拖拽及拼装形成游戏。

  • 事件化:组件带有自己的回调事件,通过定义各个回调事件的方法体逻辑实现整个游戏的逻辑。


关于这个游戏的技术细节不讲太多,因为我也有一篇文章,大家可以去找一下,里面会讲到游戏的故事。基于 cocos creator 这样的开发套件,开发质量和开发效率的问题能得到很好的解决。但是接下来又有另外一个问题:传统服务器后端方案太庞杂。上述提及的游戏,按照以前的逻辑,我们自己要去搞服务器资源,配置服务器。



此过程中涉及前后端开发,对于后端来说,要涉及到 https 部署/域名备案/服务器运维…等一系列工作,涉及的开发工具也不少。一个专注于前端的同学感觉是很难搞定图里的所有事情的。那么,一个半前端的开发工程师,怎么独立并快速开发游戏?


这时候我又做了一个游戏,这个游戏比较有意思,我有一只猫走丢了,最后不幸离世了,我就做了一个游戏纪念它。



这个游戏主要的玩法是猫猫拿着手电筒,手电筒可以照出一个影子,你可以把影子实体化,帮助你越过这些障碍物。这个游戏的前端也是基于 Coccos Creator,但后端方案跟之前的不太一样,是基于一个新的东西——小程序云。



小程序云提供的技术框架很简单,上面是小程序云的主体逻辑,下面是小游戏前端。整个过程只需要前端开发的相关知识,只需要用 JS 开发,所用开发工具也很少。这里解释一下小程序云解决的问题:



在游戏开发环节中,存在一个前端开发和后端开发并行的子过程,小程序云就是要把子过程直接让前端开发同学给做了,里面主要提供了三板斧和两个封装,三板斧指的是提供了数据库、存储、云函数等基础的后端功能:



两封装指的:把鉴权、云调用。



一方面,基于服务器开发的小游戏登陆鉴权是很麻烦的,需要结果图中左边的构造逻辑,对前后端开发能力要求都很高,基于小程序云的话,这套机制直接封装在云函数中,一个前端开发同学就能做到登陆鉴权。


另一方面,微信给小程序提供的某些 http 接口,按以往做法,我们需要根据 appid 和秘钥构造鉴权用的 accesstoken,这个过程有点麻烦(如图中右边部分所示),需要定义一个缓存机制去存 accesstoken,对于一个无后端开发经验的前端开发者来说,依然有点难。但是,小程序云把这些东西都封装到一个叫“云调用”的机制中,你稍微配置一下就能直接用了。



基于小程序云和 cocos creator,我连着做了 9 个游戏 Demo,其中 5 个是用云做的。上面从比较浅的层面来解释我做的游戏和遇到的问题,可能没有太深入地讲解,大家有问题可以线下找我,再讨论一些更细的技术点。


魔术揭秘

今天,我其实还会带来一个个人觉得比较有意思的课题,那就是我最近关于线下游戏的思考。首先,针对开场时的魔术,我们来揭秘,有没有同学想到了这是为什么?有些人觉得是声音,有些人觉得是 AI,其实都不是,其实我在刚才的演讲中已经透露过答案。



是的,原理跟《太空引力》这款游戏一样,就是基于重力加速度或陀螺仪的 API 来实现的,一个手机只有 4 个方向,这就是为什么我要让美女她猜 4 个数字中的一个。


其实这个魔术游戏,或者说这种线下互动,要结合到真实的业务场景中其实是很有局限性的。它可能只适用于现在这种分享场合,有或者在追美女的时候用一下,那么如果要结合业务场景去思考,怎样的游戏(互动)才算是合格的呢?好的线下游戏(互动)=合适的技术+合适的场景。


要做一个好的线下游戏或互动,有两点要配合:


  • 合适的技术 。

  • 合适的场景,只要亮点恰好合适,才能做出一些比较创新的案例。


相关案例

基于以上想法我们做了一些案例:


1. 案例一:触摸屏技术

2017 年我们对接了腾讯互娱一个很大的展会项目——TGC,这个展会每一次都会为玩家做一些技术驱动创意的体验,当时在早期策划他的技术创意时,我们就发现有一种技术也许能玩点事情,那就是触摸屏技术。


其实大家的手机都是多点触碰的,你可以单指、两指或三指指触碰进行交互,手机最多可以接触到五六个触碰点,甚至更多。我们发现了这件事情后,发散一下,其实觉得是可以在手机上面盖章的。




同时,我们又发现一部动漫——《全职猎人》,里面有一个贪婪之岛篇,剧情是让玩家在封闭的岛上玩集卡的游戏,这种场景能不能复用于我们的展会活动呢?于是我们就开始策划,最后后面我们做出来了。



2. 案例二:IBEACON+小程序

这次也是 TGC,发生在 2019 年,成都环球中心,场地变成开放式的,现场相当多人。我们发现有个技术叫 IBEACON,这是一种室内定位技术,小程序对其也支持。



基于 IBEACON+小程序,我们可以给玩家提供一个定点拍照的玩法,在不同的地点拍完照就可以拿到一个奖励。而这种方案下,硬件部署成本很低(因为每个 ibeacon 设备都是百元以下的成本,所需 ibeacon 设备数量也不用太多),用户对活动的参与度也高,同时主办方还能实时看到景点的人流数据,这是第二个案例,其实类似的项目我们还做了很多。


经历过上述一些案例后,我们论证了,其实基于现有的技术支撑能力,我们是可以做到大型沉浸式的互动游戏的。



从前端来看,硬件层面的东西,很多东西都是支持的了,比如说 IBEACON、开源/第三方硬件,都是有接口的,都可以用;再比如说微信赋予的硬件能力,陀螺仪、加速度以及最近比较火 AR 基础能力(小程序里面 Camera 组件可以获取实时数据,能为 AR 提供基础支持)。这些想象的空间都很大,就不展开细讲了。


从后端来看,云也给我们提供了很多能力,比如基本的存储,再比如说远端的一些如 crt、图形识别等 AI 接口,再再比如说 socket 能力的个封装。基于这些,线下游戏能玩出更多花样。


3. 案例三:大屏幕互动


这个案例也是我们做的,是我个人认为线下小游戏中的最好案例。这是我们大团队给龙之谷做的一个线下游戏,玩家通过小程序扫码激活共享单车,利用共享单车与大屏幕互动,实现一起打怪的游戏。


自身感悟

谈一下感悟,我来的时候看到门口的易拉宝上面写着云+ xx,后面两个字是什么?社区吗?我没看错的话,云+后面应该是“创业”两字,这跟我今天最后的主题有点像,我不是想表达自己要去创业。而是要表达这么多年来的一个感悟。


不管在哪,我们做任何一件事情都要以创业的态度去做。我做一款游戏,我就要把它弄出来,以创造和发明的态度去做。所以从以往到现在,我带的团队都是先挖掘技术,预想场景,产出 demo,最后拿着技术+场景 demo 去推动需求方产生新的产品形态,我们一直当自己在创造产品,而不是流水作业。我们一直在做这件事情。


Q:老师您好,以后会不会帮开发者减少流程?


A:问题这么长,我帮你总结一下:


第一, 个人开发者,据我所知个人开发者应该是做不了内购的,个人开发者不能做内购那刚才你说的问题(其他资质难申请的问题)就不存在了。


第二, 软著没有你们想象的这么难。个人开发一个软件,我不只是说这是小游戏的事情,别的软件也一样,都需要软著,但软著的申请也不是很困难,没有你们想象的这么麻烦,其实版权保护中心官方都有教程,就是提交代码,填一些表,做一些使用说明书就行。


至于你说微信审核的事情,在腾讯各个部门有各个部门的分工的,我是游戏做市场工作的同学,关于审核策略的问题我也是难以回答的。


本文转载自公众号云加社区(ID:QcloudCommunity)。


原文链接:


https://mp.weixin.qq.com/s/6Nyz8gg9h61_pGCfssf_RQ


2019 年 10 月 31 日 14:39855

评论

发布
暂无评论
发现更多内容

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

周桂华:我的小游戏开发之路(下)-InfoQ