开发小游戏简单还是开发一般软件简单_白鹭引擎王泽:如何不依赖服务器开发一个微信小游戏...

064a26073fec326f186ea76c01162928.png

10月19日,微信小程序和腾讯云团队联合举办的首次「小程序·云开发」技术峰会在北京成功举行。白鹭引擎首席架构师王泽受邀出席峰会并在峰会上发表《如何不依赖服务器开发一个微信小游戏》的演讲,以下是王泽演讲实录。

各位开发者大家好,我是白鹭引擎的王泽。今天演讲的主要内容,第一部分我先为大家介绍一下白鹭引擎以及白鹭引擎云能力解决方案、游戏组件化的内容;第二部分是小游戏+云能力的组合,向大家说明利用小程序的云开发开发小游戏的优势。

format,png

白鹭引擎是一套完整的开发工作流,涉及游戏的开发、美术、游戏研发完整的工作链,白鹭引擎将各种开发工具链把这些工具整合在一起,开发小游戏的话只需要下载白鹭引擎,可以很大地提高工作效率,并且支持跨平台,开发者可以通过白鹭引擎将游戏发布在Web平台还有iOS和安卓,当然也包括2018年以来最重要的平台——微信小游戏平台。

白鹭引擎从2014年开始发布,我们在2014年3月的时候发布了一个0.9版本,我们在2014年8月发布了1.0版本,发布了GUI框架,同时已经有很多开发者通过白鹭引擎开发了一些小游戏,通过朋友圈分享的方式运行在微信的外部应用里面。在2.0版本白鹭引擎新增开发工具链,在3.0开发了WebGL渲染器,使小游戏慢慢从轻度走向了重度,白鹭引擎的一些代表性的游戏,比如《传奇世界》是用白鹭引擎开发的史上第一款月流水超过一千万的H5游戏。后面的4.0、5.0的时候白鹭引擎更新了很多功能,比较重要的一点是在2017年12月白鹭引擎和微信配合,由微信开发了微信小游戏这套容器,白鹭引擎在微信小游戏上层做了封装,使用白鹭引擎开发的游戏一键可以发布到这个小游戏平台当中。

从2014年-2018年,经过白鹭科技商务部以及市场部不准确地统计,五年来,基于白鹭引擎开发的游戏累计运转的总流水作品加起来保守估计超过200亿。这个数据是我们商务同事统计出来的,未必准确,因为白鹭引擎也不会在支付接口里面加一些回传数据,所以我想向大家申明一下这是我们商务部同事的估算统计。

在这个过程当中,我从2014年-2018年在做白鹭引擎,相当于做前端开发的时候,我发现的游戏行业的H5游戏行业中的变化。在2014年的时候使用白鹭引擎开发的游戏都是非常简单的小游戏,这些游戏并没有什么商业模式,在朋友圈里面来回分享想做一点引流的工作,当时2014年的时候想做一个游戏试试,当时三天朋友圈的分享到了一个亿。接下来这件事情不能做了,微信认为分享的事情影响了朋友圈的生态,影响了用户体验,所以就加以限制,分享不能超过20万。从2015-2016年开始,我们发现游戏越发越走向重度化,轻度游戏真正为了乐趣的游戏是比较少的,因为这种轻度游戏很难带来商业模式,无法给开发者获利。这个情况在2018年的时候发生了很大的变化,因为微信小游戏平台诞生之后,在微信体系里面形成了一套比较完整的商业模式。从2018年开始,在做小游戏出现这种全新的一种小的产业,就是做休闲游戏,做休闲小游戏,在微信平台内,通过广告来去做变现,在2018年以及2019年这种模式做得非常好。

56108a53f542fa95fe2f66482ed510fb.png

白鹭引擎在2019年做出了重大改变,2019年白鹭引擎跟微信小程序团队和腾讯云团队一起开发了针对他们提供的云开发能力,白鹭引擎集成微信云开发能力,现在最新的引擎版本里面可以直接使用小程序的云开发能力。这个能力里面我总结它的比较大的几个好处:易操作、省周期、降成本。

b2890a8a07b4cb002e4fc7b206cfefbd.png

我跟大家分享几个小故事,我做白鹭引擎做了五年,我也经历过很多的面试,我在面试的时候问了很多前端工程师我说你未来的发展方向是什么?几乎一半的工程师,不一定是游戏开发者,做什么样的开发者都有,我问他们,他们都会说我希望在未来成为一个全栈工程师。这是一个做前端工程师天生的追求,你要不然往特别深了去做,完全不去碰后端的东西,最终你可能就会做成游戏引擎的工程师,如果你是一名做小程序的工程师,你可能会去开发一些框架,这可能是你的一个职业发展方向。但是如果你不愿意做得这么深的话,你更想在产品和业务上有一些追求的话,你必然会想成为一名全栈,你很好奇后端的东西是怎么做的,甚至我之前做游戏前端的时候我也很好奇,前端的东西都写完了,后端为什么老出BUG,为什么出问题呢?

因为前端工作在很大程度上会低估后端的工作量,主要因为后端的程序开发我个人认为并不是很难的事儿,其实它真正的难点是在运维和部署上,很多的前端程序员自己用10分钟下载一份PHP,说这个东西没有什么难的,我也能够搞定,但是真的让他涉及到运维、部署的层面,发现所有的问题全出来了,因为我也经历过这些事情,我想还是去让我做前端吧。在这个过程里面发现,其实前端并不是想成为全栈,前端只是想成为一个可以做后台业务的,但他并不想成为运维和部署。

所以说,小程序·云开发这项能力非常好的就是完美解决了这个问题,他把前端程序员不想做的运维部署工作交给腾讯云团队来做,把前端想做的事情交给前端来做。这件事情可以某种程度上来说,由于是腾讯云来做,很容易向人解释,各种的企业都认为云开发是一个未来的发展趋势,自然在一个小型的创业团队里面,很容易向老板说服,连腾讯都这么做,为什么我们不这么做?毕竟在一个小公司里面一个大型公司样板模范效益是非常重要的。它提供了已经不能说易操作简直就是不用操作,完全就是符合你的思维直觉的一种方式解决了部署问题。

再就是节省开发周期,因为前端和后端工程师大家做开发都知道,最大的问题不是开发,最大的问题是双方接口,很多涉及到业务上的东西的时候,出现的问题如果接口、前端、后端面临规范不一样,或者最开始双方规范可能后续没有坚持规范,后面接口的调试都带来很多的问题。

第三就是降低成本,因为小游戏和小程序有一个点上存在很大的区别,小程序它是在描述一个真实存在的商业上的业务,所以小程序一般背后的业务很复杂,但是它的单一业务很简单。业务复杂我的理解是,它的比如说你看起来只是一个电商系统,很简单我就是下单买个东西,但是背后有订单、购物车以及背后有很多的子系统。虽然每一个系统看起来很简单,就是一两个页面,但是把所有东西连接起来,因为在连接过程当中最终你会发现后端的开发工作量是非常大的。所以小程序的很多团队的前后端的对比是一比一或者是二比一,前端同学相对比较少,后端同学也相对比较多这样一种形式。

但是小游戏跟这种情况区别非常大,在小游戏里面,就以创意型小游戏为例,不说非常大型的收费游戏,就说创意小游戏,重要的是创意、前端的内容,而后端的范围很简单,一般来说记录一下分数,设置一下排行榜,加了一些记录一下用户广告的使用频次,在线数据统计接口。你会发现一是工作量相对不大,二是这些工作量如果你做一个小游戏的话无所谓,如果你做很多小游戏,你发现后端是重合的,你每个小游戏都需要这些功能。我前些天面试了一个后端工程师,我说你上一家公司离职的原因是什么?他说我之前在一个团队,之后团队扩张,扩张到了100多人,有10个项目,基本上每个项目配一个前端两个后端,做到最后我面试的这个后端工程师,其实他的发现后端的工作量几乎是完全相同的,所以他最后为公司写了一个框架,相当于是小游戏的后端通用解决方案,相对于所有小游戏后端东西都可以通过这里来调,后来发生的事情比较悲伤,他们公司由于扩张得过于快,有些业务管理出了一些问题,这个公司进行了裁员,是先裁了后端的同时,不需要他们了,只需要一个后端框架,就可以把所有后端做好了。在下一轮公司经济情况还不是很好,公司就找了一个前端,把后端的东西了解了大概之后发现也很简单,就把后端工程师也裁掉了。

这是一个非常悲伤的事情,相当于你做了一个东西,把自己替代掉了。我觉得他应该来白鹭引擎这样的公司,来小程序这样的团队也是好的,帮很多开发者解决共通性的完成。我没有做过商业的小程序,我自己的小程序都是作为一个个人小程序,我自己做一两个玩一玩,我们没有做过商业级的小程序,但是我们可以确保在小游戏行业里面,由于小游戏前端后端比例,就是因为前端需要很多,后端需要很少,但是又必须有,如果你公司要做很多小游戏无所谓,但是做一两个后端是没有事情的,但是好的后端会自己给自己找事情做,我见过很多的后端都在学习白鹭引擎。如果采用云开发的方式可以大幅解决这个问题。

白鹭引擎在2019年的时候做了一个组件化解决方案,提供了一些在游戏开发里面经常用的组件,聊天室的组件,排行榜的组件以及公会的组件,提出组件化的解决方案。之前白鹭引擎向开发者提供各种各样控件的时候,除了最基础的渲染能力,UI等等能力,希望向开发者提供更多业务级的解决方案,这个事情在以前来说是比较困难的,这种业务界的解决方案会涉及到跟开发者的业务产生结合,这种业务是前后端结合起来的业务。白鹭引擎提供什么样的解决方案呢?从2017年起我就做这件事情,我向一部分开发者提供这些东西之后就会面临PHP还是最好的编程语言,为什么不提供PHP的解决方案。

d60b9e1c53d68e9e2e8f713d264962a7.png

现在这个问题不是问题了,因为白鹭引擎采用的是小程序·云开发的解决方案,通过这样的方式,组件化方案里面就可以非常心安理得地提供前端的皮肤组件逻辑,中间对云函数的调用以及服务端云函数都可以提供给开发者,通过一种实例代码的方式提供,你想做直接修改就可以了。

组件部分比较简单,包括了资源图片,白鹭引擎自己的UI模式,EXML模式,数据通讯部分等等。

数据通讯部分,一个单独的通讯组件,这个通讯组件本身就是对小程序·云开发的云能力的调用。

最后是后台服务端,对应实现了不同的云函数的能力。在这种方式里面,用白鹭引擎截面,通过Actons调用小程序·云开发的云函数,通过数据变化,自动更新视图,一个单向的处理能力。通过这种方式可以做很多,如果是一个单机游戏,想做联网的话有很多的东西可以搞定了,比如以前常出现的假抽奖、真抽奖问题。很多的个人开发者做的小程序,其实所有抽奖都是假的,因为要做部署服务器,你在抽奖一瞬间你就决定了能拿奖还是不能拿奖,现在通过小程序·云开发的能力就可以把这些东西都解决掉,里面可以增加很多互动性和实时性玩法。

ed833263a809fa5a3246d45bb393bbc2.png

使用心得,下面一些心得是我和一些真实使用小程序·云开发开发者反馈的,提出的第一大类问题就是再也不需要用一个服务器了,是不需要运维管理人员,不需要做运维备案。对于一些大型开发者来说,他不用担心DDoS攻击。小游戏和小游戏里面有一个特点,这个游戏能不能火真的没有人能知道,有时候你做一些推广活动,你自己大概能估算一下量级,但是对于小游戏量级可能是零到一千万,因为它有可能是一个零。这个小游戏出来之后可能就死了,也有可能爆火,你服务器永远准备不好。云开发做得非常好,我们云开发的开发商就像前几位嘉宾说的,没有出现过服务器不行的问题。

第二你不需要前后端联调,对前端开发来说,有很多的后端数据在开发期的时候,只需要继续沿用原来的代码,只需要在云函数里面调一些数据,写一些假数据。这块我觉得,小程序·云开发还在不断地完善,今天上午也有演讲嘉宾说了他们正在完善灰度测试,但是有一些简单的方法能够解决掉,其实这些东西对于一些创业团队来说,如果没有更高要求只要解决了APPID就可以了,这其实没有太多的问题,其实整个开发过程中我们自己开发的时候也觉得还好,所有的一些小问题也都是可以稍微绕过去可以解决的问题。

7ab4c7f2851e4ec10cf94703b751ada8.png

接下来我向大家介绍一下白鹭引擎的下一步分享,Egret Pro通过这个对战引擎会实现什么能力?通过这个代码我们可以看到,代码内容很简单,刚才说了注册了两个系统,一个是做了一个小火车的游戏,一个是物理系统,下面的客户端我们注册了四个系统,分别是资源管理系统、特效系统、小火车游戏系统。这里面发现做代码特点是这两个是写在一个文件里的,并不是写在两个项目里面,通过白鹭引擎的编译器,会在编译的时候根据装饰器里面,上面是HeadLess模式,上面的代码会运行在服务器端,下面会运行在客户端,通过白鹭引擎编译器编译在一起。之后达到了什么效果,像传统的你想做一个对战型游戏的开发模式是什么样,你由客户端开发人员写客户代码,服务器端写服务器端代码,这是传统的开发模式。现在想用白鹭引擎开发一个对战游戏需要怎么做呢?现在不分客户端和服务器端开发人员了,你开发人员先写一款单机游戏,把动画、渲染、交互、特效、物理系统、判定都写在一起,你要按照白鹭引擎的开发规范,通过一些机制和装置器先把他们写在一起,标记出来这些代码用什么样的引擎,引擎底层在编译过程当中自动将代码进行分离,分离之后引擎会自动把数据做一些同步,当然同步的机制背后的原理就是用了小程序·云开发的解决方案。

以上就是我向开发者介绍的白鹭引擎和小程序·云开发的合作,谢谢大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值