这是个人关于微信小游戏系列文章的第一篇,在这系列文章里会描述 ——
- 如何把一些 Canvas/WebGL Demo 移植到小游戏环境并支持双端运行;
- 对小游戏在 Android 平台的运行时架构进行分析;
- 通过对移植的 Canvas/WebGL Demo 在小游戏和 Chrome for Android 浏览器上做 Benchmarking,对 H5 游戏 vs 小游戏的渲染性能进行对比和分析;
Canvas/WebGL Demo
为了做性能对比,一共移植了四个 Demo,这些 Demo 常用于浏览器自身的 Canvas/WebGL 性能测试,包括 GUIMark3 和 WebGL Aquarium。
移植的代码已经上传到 GitHub,读者可以自行下载运行测试。
上图从左至右分别是:
- Canvas Bitmap,修改自 GUIMark3 Bitmap,类似雷电的小游戏,多个小位图的重复绘制,主要测试 Canvas.drawImage 的性能,跟微信开发工具自带的样例游戏类似;
- Canvas Compute,修改自 GUIMark3 Compute,模拟鸟群的运动,包含大量的物理运动计算,实际上是测试 JavaScript 的计算性能;
- WebGL Compute,Canvas Compute 的 WebGL 版本,用 WebGL 绘制点取代 Canvas 绘制短线段;
- WebGL Aqua,修改自 WebGL Aquarium,绘制的场景有一定的复杂度,包含了约 30 个模型;