诚然这是一款模仿消灭病毒的打飞机,我依然花费20多天去制作。打飞机系列是代表是小游戏优化基础的一个入门挑战,里面包含很多技术细节,也为以后制作更多另类有趣的游戏需求打下基础。当然,每个男人都有一个打飞机的偏好
先说一下技术栈, 后端 nodejs+mongodb+express 前端cocos creator
之所以采用后端,不仅是为各种联网游戏做好基础,用户数据建档,货币产出保存在后端,使得微信小游戏不在“单机化”,特别这次的货币产入产出由后端计算,杜绝原版消灭病毒那样的刷金币行为。因为尚未涉及互动,全程采用http短链接,在网络承载方面和服务器上就不会有什么太棘手的问题。
这次主要的工作量都在都在前端开放上,主要技术点为性能优化,以苹果5s同时代作为下限机型参考优化,毕竟实际运营中发现低配机数量依旧不少,就项目最后,产品流畅度和手感依然感觉不如消灭病毒,估计是laya引擎在性能上小胜一筹吧,差别并不算很大。
归纳如下:
1 对象池使用 + 分帧处理:满屏的弹幕和害虫群,肯定要使用对象池的,目前锁定60帧/秒,特别是子弹和害虫分裂行为,采用逐帧/分帧创建,减少掉帧现象。
2 碰撞检测:计算量较大的一块,采用四叉树遍历 + 圆圆碰撞圆矩碰撞算法
四叉树网上资料很多,把节点适配成cocos适应的节点,锚点默认在中心,也比较好算圆心
3 单场景模式:原版病毒场景切换动画过度很自然,cocos下如果采用多场景的机制场景之间动画过度会异常难处理,所以采用单场景模式,所有“场景”相关图层元素采用预制件,按需加载。
4 帧动画+资源分包:因为没有使用龙骨等手段,全程使用序列帧,图片数量极多,故借助图集打包工具
texturepacker打包并压缩,最后使用分包机制加载,控制整包大小在6M左右(含原音音效,这里不做压缩处理,损音较大),也推荐远程资源包,默认加载过程体验较差,依赖网络资源。这样完整加载体验非常良好,加载时间控制在4s左右。这是以前塞班机时代极致的控包习惯养成的。
小游戏发展至今,也会进入一个淘汰期,普通产品生存空间越来越有限,作为开发者打好基础,为加下去的创意游戏做好技术储备才是关键,毕竟想的出,做不出或做不好才是最伤的
欢迎 各路小游戏独立开发爱好者 交流共同进步 我的qq/wx: 8510214