近期,微信小游戏《呆呆打僵尸》迅速走红。这款采用白鹭引擎(EgretEngine)开发的游戏,以H5头部作品为蓝本,项目组在重点优化了4M代码包体积、开放数据域、RES资源加载、战斗场景冗余代码包,缓动动画、EUI等六大问题后,游戏性能实现提升三倍。凭借精美画质和良好市场反响,《呆呆打僵尸》入围了阿拉丁小程序6月小游戏TOP30榜单,领衔挂机放置类游戏。
突破4M限制,成功获取开放数据域
作为一款僵尸题材挂机放置小游戏,《呆呆打僵尸》从开发上线到迅速走红,一路走来并不风轻云淡。研发中首要遇到的问题即由于创建新对象池都有较大开销,初始包体积大于4M限制。微信小游戏分为“游戏包”和“本地缓存”两个存储空间,当开发者将微信小游戏在微信开发者工具中发布时,微信开发者工具会将所有微信工程中的源码和资源进行压缩打包,即“游戏包”,其包体积不得大于4M。
《呆呆打僵尸》采用了白鹭引擎提供的AssetsManager灵活定制微信小游戏缓存策略,通过loadConfig配置多个resourceRoot,并将其它资源文件放置到CDN服务器上,这一策略既实现成功生成游戏包,又改善了游戏加载体验。
对于休闲竞技小游戏而言,排行榜是激发分享欲望的重要途径。《呆呆打僵尸》通过创新的排行榜玩法给于用户更多的社交乐趣。但获取社交关系链对于很多开发者而言并不容易。为了保护关系链数据,微信小游戏增加了开放数据域的概念。开放数据域是一个封闭、独立的JavaScript作用域。要让代码运行在开放数据域,需要在game.json中添加配置项openDataContext指定开放数据域的代码目录,且开放数据域只能在离屏画布(sharedCanvas)上绘制。