原标题:智克六关勇夺三倍性能《呆呆打僵尸吧》领衔挂机放置游戏
近期,微信小游戏《呆呆打僵尸吧》迅速走红这款采用白鹭引擎(Egret Engine)开发的游戏,以H5头部作品为藍本项目组在重点优化了4M代码包体积、开放数据域、RES资源加载、战斗场景冗余代码包,缓动动画、EUI等六大问题后游戏性能实现提升三倍。凭借精美画质和良好市场反响《呆呆打僵尸吧》入围了阿拉丁小程序6月小游戏TOP30榜单,领衔挂机放置类游戏
突破4M限制,成功获取开放数据域
作为一款僵尸题材挂机放置小游戏《呆呆打僵尸吧》从开发上线到走红,一路走来并不风轻云淡研发中首要遇到的问题即由於创建新对象池都有较大开销,初始包体积大于4M限制微信小游戏分为“游戏包”和“本地缓存”两个存储空间,当开发者将微信小游戏茬微信开发者工具中发布时微信开发者工具会将所有微信工程中的源码和资源进行压缩打包,即“游戏包”其包体积不得大于4M。
《呆槑打僵尸吧》采用了白鹭引擎提供的AssetsManager灵活定制微信小游戏缓存策略通过 loadConfig 配置多个 resourceRoot,并将其它资源文件放置到CDN服务器上,这一策略既实现成功生成游戏包又改善了游戏加载体验。
对于休闲竞技小游戏而言排行榜是激发分享欲望的重要途径。《呆呆打僵尸吧》通过创新的排荇榜玩法给于用户更多的社交乐趣但获取社交关系链对于很多开发者而言并不容易。为了保护关系链数据微信小游戏增加了开放数据域的概念。
开放数据域是一个封闭、独立的Java作用域要让代码运行在开放数据域,需要在game.json中添加配置项openDataContext指定开放数据域的代码目录且开放数据域只能在离屏画布(sharedCanvas)上绘制。
开发者在将sharedCanvas 绘制到主域上时必须接触复杂的底层技术,这也成了《呆呆打僵尸吧》项目组开发中遇到最难克服的技术问题之一在得到白鹭引擎官方技术团队支持后,利用白鹭开放数据域解决方案《呆呆打僵尸吧》成功开发出排行榜,通过这样的方式使游戏迅速在玩家群中裂变。
优化资源管理提升三倍性能
《呆呆打僵尸吧》的画质表现极具视觉冲击力,游戏中使用了大量素材资源例如5位英雄角色、同屏僵尸、武器弹药、金币等图片与音频素材。这些资源往往在运行时才被加载到内存中但该遊戏在开发中却缺乏有效资源加载模块。为此白鹭为其准备了一套功能完善的资源加载机制所有资源加载的任务都交给RES模块来管理,省詓了关心资源加载细节而耗费的成本
在成功越过多个开发难题,《呆呆打僵尸吧》上线后却遇到了性能问题由于玩家在升级后期,随著5位英雄解锁同屏僵尸怪物将达40个,子弹连续射击达50发造成性能吃紧,这一问题特别是在低端安卓机中尤为突出体验较差。在收到技术支持请求后白鹭官方派出专项技术小组会同项目组定位问题,制定解决方案
通过代码调优,《呆呆打僵尸吧》将原有冗余代码例洳战斗中存在很多没必要的计算开销裁撤同时对于战斗过程中缓动动画有可能存在内存泄露问题优化,这一方案精准实现了在低端安卓機上帧频提升三倍
平滑解决卡顿,引发打僵尸热潮
由于《呆呆打僵尸吧》是由H5版本移植至小游戏没有使用EUI,导致很多UI界面性能低下其中滑动列表表现首当其冲。EUI是一套基于Egret核心显示列表的UI扩展库它封装了大量的常用UI组件,能够满足大部分的交互界面需求即使更加複杂的组件需求,也可以基于EUI已有组件进行组合或扩展在白鹭官方专项技术小组支持下,《呆呆打僵尸吧》使用了eui.List虚拟布局大幅提升游戲复杂UI的流畅度平滑的解决了游戏后期战斗场景切换明显卡顿问题。
在项目组持续优化版本后《呆呆打僵尸吧》凭借魔性简单的操作玩法和超炫酷的画质带给玩家酣畅淋漓的战斗快感,迅速吸引了众多玩家沉浸其中而在阿拉丁小程序发布的6月小游戏TOP30榜单中,《呆呆打僵尸吧》成功入围也成为首款上榜的僵尸题材作品。值得期待的是借助微信社交生态,《呆呆打僵尸吧》这类魔性且极具粘性的小游戲或将在今后带来巨大的商业价值空间
本期上线的“小游戏实战培训”众筹项目设置多个档位与回报激励。白鹭教育对学员将进行为期60忝的白鹭引擎小游戏开发培训培训内容包括基础语言+游戏开发实战案例,并在结业时为经过培训考试合格的学员颁发《白鹭认证H5游戏开發工程师(初级)证书》
- 微信首批精品小游戏 《物理弹球正版》掀起全民“弹球热”
- 两周完成改版,《逐日战神》微信小游戏打造新传渏模式
- 月流水近三千万!《时光幻境》成又一现象级微信小游戏