小游戏是什么?
小游戏特指微信小游戏,是小程序的一个子类目,可以在微信内被便捷地获取和传播,即点即玩,具备出色的用户体验。在开发的视角来看,小游戏是一个基于Canvas/WebGL + 微信社交开放能力的新平台。在框架上看分为三层,是一个典型的分层架构。微信中有一个小游戏的Runtime去运行小游戏,而OS本身可能会涉及到不同类的设备。
小游戏没有WXSS、WXML、多页面等内容,但加了一些渲染、文件系统以及后台多线程的功能。微信小游戏只支持 JavaScript,当然可以编译为 JS 的 TypeScript 以及 CoffeeScript 都可以作为开发语言使用。其次是小游戏所支持的游戏库 API,主要包含 HTML5 的 Canvas 2D API 和 WebGL 1.0 API,使用任何一种 API 都可以完成游戏最重要的渲染功能,不过不能够混用,除此之外,只有 WebGL 渲染模式可以支持 3D 渲染。
如何开发一款小游戏?
1.选择小游戏引擎
开发小游戏的引擎一定要是适配的,比如在底层,一开始引擎可能只支持原生的游戏,在微信小游戏上就要做一些适配,依赖浏览器特有的能力。Cocos Creator、Egret Engine、LayaAir Engine这三个引擎已经支持了小游戏的开发,网上也有相应的文章介绍如何发布到微信小游戏的平台。
2.设备/环境适配
有关设备管理的适配,小游戏会有API提供获取屏幕的宽高、设备像素比等能力。在小游戏开发完成后,在开发者工具也可以发起真机测试的请求,微信提供了不同设备的测试集群,帮助开发者提前去发现问题。基础库提供的wx API本身是一个不断迭代更新的过程,对于使用了新能力的小游戏,需要做低版本兼容。比如在检测到不支持新 API的低版本允许有损服务用户。同时,如果某个低版本的用户占比较少,可以考虑在管理后台直接配置小游戏要求的基础库最低版本,当然也意味着这一部分用户在接触到这个小游戏时,微信客户端会弹出一个要求用户更新到微信新版本才可使用该小游戏的提示,如果不更新可能就会失去这个用户。
上手开发小游戏
1.注册一个小游戏账号
需要到微信开放平台完成小游戏账号的注册。
2.安装并启动开发者工具
包括最上方的工具栏,包含最重要的编译、预览和配置详情。左边是模拟器窗口用来展示游戏运行效果,右上方是代码编辑器,可以查看项目中的文件列表,编辑文本文件;下方是调试器窗口。
3.微信小游戏配置和入口文件
在微信小游戏项目中,project.config.json 和 game.json 配置文件是大家首先需要添加的,其中 project.config.json 可以定义你的小游戏 appid、游戏名、配置等。而 game.json 主要用于指定游戏朝向和网络超时时间。
4.编译和预览
微信开发者工具会自动监听脚本和配置的变动,发生变动时会自动更新,你也可以通过顶部的编译按钮触发重新编译。当你需要在手机上预览小游戏的效果时,需要点击预览按钮来生成二维码,扫码即可进入小游戏。
小游戏开发和 H5 版游戏开发区别并不大,但是小游戏支持的库较少,并且大部分 H5 版开发所使用的到的库是不支持的。另外就是 H5 版游戏的实现方式选择性更多,比如跳一跳原版是使用 createjs 开发,而小游戏版并不能支持所有的引擎,只能通过上面的几个引擎改造适配。此外整个开发过程中比较典型的困难环节还包括 SDK 能力挖掘、调试、资源管理、第三方库的移植。