韩闯的奕吧

加盟joypac

七月末,正值开发到了慢速阶段,就去面试了几家公司。没想到就顺利入职了。一位昵称叫冲云的哥们觉得我还行,那我也就随他干干呗。

在做的事情

入职后,我看所在的部门是发行部,从业这么多年,一直跟着团队搞搞自研,心想这次挺好,可以多了解了解别的优秀游戏了。也的确如此,我们干商务同学(具体职位漠不关心TT)拿到了好多优秀的日本游戏回来,而我要完成的工作就是将部分游戏做成H5版本,上线。我们现在开发人员不够,所以好多游戏都做了外包。
先推荐下joypac的游戏,
1、神回避3
2、抱紧大根
期待上线的
1、指神

留给我来开发的就是神回避3了。最近一个多月都在忙这款游戏。

神回避3的开发

原版的游戏是Flash Air开发的,AS3代码,Flash中的资源。初步审阅了代码,觉得这款游戏也算是高质量开发了,玩法虽然简单,但是整个技术层面并不输与一款大型游戏(当然不包括网络方面,只是单机游戏)。游戏一共三十个关卡,每个关卡是解谜类型,只需要点击,看着非常容易的游戏,却需要大量的玩法设计。这个系列产品一共出了90关,历时花了几年,辛苦人家的策划小伙伴了。另外游戏的动画也是相当精良,我打开AnimateCC一看,每个关卡的图层不下20个,每个动画细节真的是~感慨日本人做事细心,是我见过的好多游戏的资源部分规范做的很好的作品了。不过吐槽下,他们喜欢在关键帧里写代码,这点的确很坑。
看了这么复杂的动画,我心里预估时间真的是相当长,但是初来乍到,项目组就定在八月末出产品了~我心说,这是多么不靠谱的评估啊,没办法赶鸭子上架,先做着再说。我选择了白鹭引擎,毕竟都是搞AS3的老人整的引擎,对这种动画支持还好点。顺便吐槽下我接触的cocos create,真的是太烂了。冲云看了cocos这引擎,说U3d也是这种设计~好吧 U3d在我心里更low了…最终我还是耐着心,给cocos create的JS搞了个微信小游戏与QQ玩一玩的公用接口,js的代码,超简单,没准以后就开源用了。
言归正传,用egret首先是对flash动画的支持,另外就是TS写起来更严格,毕竟第一个产品,选个自己比较熟的,公司也觉得你靠谱不是。另外就是在这个项目中不少的使用了以前写好的代码,比如场景调度,又模拟了个关卡调度,其他更多的心思就在于每个关卡的开发了。
说实话,每个关卡一点关系都没有,每关都得当作一个新游戏去开发。真的是没法开发的太快了。我看了两外几款游戏,尤其指神,卧槽,一个碰撞检测,一个多指触控,其他的就写关卡配置就完事了~整个技术难度,赶不上神回避一关。当初要是接手这个多好啊,几天就交成绩了,哈哈哈。

平台的接入

刚才也提到了,我们接入两个H5平台,微信小游戏跟QQPlay,说实话,两个平台都不怎么样,不是错字连篇,就是代码对不上描述,就不上插图了。虽然都是腾讯家的产品但是整个sdk完全不同,然而我却硬要把两家的sdk合起来。

手头上的时间

接手游戏之后,我的时间就都没了。连见朋友的时间都没有了,不过还好,有机场的朋友会主动点的来见我~最关键是自己想做的事情没有时间做了,之希望能把公司的事情都做好吧。最近加班都是7*12的这种,也就在地铁上能娱乐娱乐,睡前看看手机而已。2018.fun备案好了,也一直没有做,今天闲暇之时,抱怨下生活。冲云就很厉害,还有时间去健身,而且看着就是总能把时间安排的很好,不论是生活工作。而我,一直在写着,却还拉着进度~哈哈哈,真是怪了。
我得学着掌控手里的时间,就像他们说的。之前预估的一天做两关,现在看其实也可以,多加个人手嘛。然而是我想多了。以现在一天勉强一关的速度,大概要九月中旬才能搞定H5版本的神回避3,这样的开发也接了。想想自己没有压力的时候,的确没有这个开发效率。我应该多给自己留一些时间,这次神回避3开发之后,据说还有神回避1、2要开发。我觉得应该好好琢磨下,定下个靠谱的时间了。

简单的描述下

一直在吐槽最近的工作跟生活,最后具体说说内容吧。

先介绍下平台SDK

微信的分享,是内部分享,就是分享给微信的好友。QQ的分享是外部分享,不仅可以分享给QQ好友,还可以分享给微信、QQ好友、朋友圈。我打算在未来的JPSDK中H5版本增加更多的分享,比如微博啦~
微信的广告,比较灵活。而QQPlay的广告就不是了,其banner是固定在下端的,这点很烦。为此我把神回避屏幕Height无端拉长了。
排行榜功能:微信需要在一个新的公共域中,获取好友啊,群啊,也就是其他人的数据。因此,每个人要上传自己的数据到微信的数据中心。然后当实现排行榜的时候,从公共域中拉取,然后根据自己逻辑实现即可。而QQplay的排行榜,是死板的榜,你只要上传数据就好,他们会为你按你的需求排好,返回给你。这样以来,你自己想实现个榜单,就要动用其他的接口了。

再说下游戏的设计

微信的包体是,4M,然而我们这个游戏直接一个关卡的资源就超过了。所以没有办法,我们的资源都是动态的加载了。所以场景调度的时候都要加上loading。还好原版也是这个样子的,我感觉是因为原版使用了大量的动画,而重新初始化一次,许多动画都已经动过了,不如一个关卡的MC全部释放掉,重新加载进来来的稳妥。整体上使用了egret的资源加载方案,从远端服务器获取。在动画播放的控制流程上,侦听了舞台的enterframe,然后逐帧进行处理,但是说实话,因为进度要求紧,好多关卡都直接使用了play(),gotoAndPlay()这种,有的地方使用的Tween动画,其实都不是很好的处理。不知道,这个到后来会不会有太多的坑出现。
搞了好多天,也有想给微信小游戏写个小引擎的想法了,不需要太多功能,就在微信的demo上再丰富一些就好。又想一想,还是赶紧搞工作吧。

打赏