这是一个重制版的项目。为啥叫重制版呢,因为早在2014年的时候已经在AppStore上架了早期的版本,早期的版本使用的是cocos2d-x 2.3版本开发的。2017年初的时候我看到了cocos reator的介绍,十分心动,决定重新使用cocos creator重新制作一个版本。
至于为什么重新制作一个版本,这里还是多说一下。因为我的团队在2014年的时候解散了(没赚到钱),游戏停止维护2年多了。项目是个很小的塔防游戏项目,但这是我们当年真正认真做的一个项目(团队组成:全部都是新手),虽然如今团队成员各奔东西,但我本人对于这个项目还是有感情的。时隔两年多,兜兜转转,当我初步了解了cocos creator后(当时有官方的每周二直播视频,很可惜后来停播了),发现养团队不行,但我可以自己把这个项目重新维护起来。对于个人来说,最大的成本就是时间和家庭负担了。于是不是程序员的我就着手开始了项目的制作(不知当时哪来的勇气,呵呵呵)。
一路摸爬滚打。断断续续地边学边做。花了半年多的时间。将项目按照旧版本的样子使用creator重新做了一遍。终于在2017年12月重新上线了。
虽然未参与旧版本的编码,但是对于整个游戏的制作,从策划、数值、骨骼动画制作、测试、配置都是深度参与其中的。所以新版本开始制作时,除了美术原画和写代码,其他的基础知识还是有一点储备。
分享一下制作过程中的一些感受吧。
一、cocos creator相较于cocos2d-x,入门门槛已经降地非常低。
降低门槛主要体现在:
1、JavaScript语言
对于我这样的非科班出身的学习者来说,脚本语言是十分友好的。少了各种限制,可以拿起键盘就干。虽然以后要补很多课,但毕竟迈出第一步容易很多了。
2、可视化编辑器
这个不多说了,想起当年使用cocos2d-x时靠脑补来配置UI的场景,现在还脑仁疼。而且cocos creator做到了免编译,我不知道引擎组实现这个有多困难,但对开发者来说是极大的便利。
3、组件化的设计模式
对于菜鸟程序员想要做游戏的,个人觉得这个模式很容易理解和使用。不需要在游戏架构上设计的很完善(想要像我这样的入门菜鸟理解编程的一些精髓是需要很多时间的,但不需要理解那么多的情况下也能做出稍微复杂的游戏,我觉得暂时就够了),像U盘一样,即插即用,修改替换也十分方便。
二、入门简单,但如果要做稍微复杂的点游戏仍然需要学习很多技能。
1、使用引擎集成的第三方功能
(1) Dragonbones、Spine 制作骨骼动画
必须吐槽下,我使用的是Dragonbones。一路用来各种bug不断。creator各个版本出的bug还不同。特别是动态加载骨骼的时候,有的是事件监听失效,有的是莫名其妙地奔溃。
基于creator1.9.3版本,目前项目中只有简单的、且不需要事件监听和实例化的地方(图鉴)才使用Dragonbones,其他复杂和频繁替换的应用场景(战斗场景的敌人、塔、特效)都做成了帧动画。但因为骨骼动画也自己做,骨骼动画手动导出做成帧动画,工作量增大巨多。所以还是很希望能够happy地直接使用骨骼动画。
2、拓展功能
除了AnySDK外好像还有个SDKBox,集成了很多这方面的功能平台。使用过了后,还是有些坑,而且自己的项目只发ios平台,最后还是选择自己集成(因为项目目前只发ios平台,于是又学了objective-c的语法),花点时间学习,集成到项目中不会很困难,都是基础的语法和概念的使用。
(1)内购(钱)
如果没有广告,那这是必须有的。
(2)广告(钱)
如果没有内购,那这个应该也算必须有的。
因为没了解国内的广告平台,就使用了旧项目使用过的admob。但填充率感人。
三、不可避免的,引擎还存在一些不足的地方。
主要针对1.X版本。2.X版本使用不多,没有发言权。
经历了creator版本升级、改bug、升级、改bug、升级、bug改不了且性能堪忧、降级等一些列眼花缭乱的操作之后,将版本creator稳定在1.9.3。
暂时还没有勇气在这个项目上尝试升级到2.X版本。但最新的2.0.7 alpha6版本似乎已经做了很多优化,下个native新项目打算使用2.0(看到jare大大目前不建议2D游戏使用2.1,墙裂希望官方把2.1的纹理压缩也集成到2.0 版本,虽然貌似可以通过定制构建流程,再使用TextruePacke命令行来自动化,但不懂啊,有没有大神能提供这方面比较详细的资料,万分感激)。
1、Native性能问题
与cocos2d-x相比性能下降了几个量级。有玩家问我为啥当年旧版本的游戏使用iphone4s都跑地很溜,如今新版本使用iphone7还会卡。
可能因为Mac与iphone相比,性能好很多。Mac上使用Chrome调试游戏时,如丝顺滑,丝毫没有注意到性能问题。结果开发后期连接真机测试就悲剧了。为啥在开发期间不做一些真机测试,因为懒呗。还有是因为当时还不了解Xcode连接真机测试的流程,连IOS开发者账号都没(后来才知道可以无证书调试)。有些在专业开发者面前可能是可笑愚蠢和极度业余的做法,但对于新人独立开发来说却往往是真真实实会撞上的墙。
我想因为开发语言的问题导致的性能下降,应该暂时无解(不知在下理解是否不对)。于是只能从其他方面进行有限的优化。对象池、压缩纹理、内存及时手动回收、游戏逻辑优化、等引擎组升级引擎优化…
自己项目的瓶颈
连接XCode测试,发现我的项目卡顿主要还是在CPU运算达到100%了。最早以为是骨骼动画的大量计算造成,后来把骨骼动画全部换成了帧动画,并在保证动画流畅性的情况下严格限制了帧的数量,但问题并没有很好的改善。
这部分应该是需要去学习Xcode的调试技巧或Chrome的调试技巧,来分析CPU的瓶颈,暂时我还没有系统地学习,所以还没解决这个问题。不能让引擎背锅,但还是希望引擎在native上的性能能有所提高。这对于开发大中型native游戏来说,应该算迫切需求了。
2、内存管理
对于专业的程序员来说,可能可以很好地管理内存使用,但对于我这种半路出家(基本功不扎实),内存管理不够友好。虽然panda大大写了很详细的文档来解释,但因为我的项目的内存在使用了压缩纹理后已经不会因为内存不够而崩掉,暂时没有深入研究(感谢colin大大提供的压缩纹理教程)。但目前项目在自动回收垃圾的时候,时不时还是会造成游戏的卡顿。
总结:
2018年即将过去。Cocos Creator在不断迭代新版本。
我的游戏上架后也更新了1年,游戏项目基本稳定。
从cocos creator 1.4一直使用到1.9.3。跨过一些坑,还有很多坑待解决。
马上到来的2019,祝愿不论在路上或即将上路,还是准备走其他路的开发者小伙伴们和cocos引擎都有所突破。
最后的最后,厚脸皮地将自己的游戏发出来。欢迎提建议和反馈bug。
https://itunes.apple.com/cn/app/塔防江湖2重制版/id1318274235?mt=8