小游戏与H5游戏的差异
1、网络层面
H5游戏
协议:http、https、websocket
接口:XMLHttpRequest
图片资源:网络请求
声音:网络请求
登录态:cookie
小游戏
协议:https、websocket
接口:wx.request
图片资源:网络请求、本地文件、包文件
声音:网络请求
登录态:session_id
网络层面值得关注的是图片这一块,可以加载本地文件和包文件。什么是包文件?就是随小游戏初始包下发的文件,整体被压缩到代码包里,这块文件不同走网络,所以速度会非常快,降低用户的等待时间。
另外一个是本地文件,小游戏里的网络下载的文件可以保存到本地。
2、代码层面
H5游戏
可以按需加载
模块化
script引用
小游戏
入口:game.js
小游戏提供了CommonJS风格的模块API
无DOM,无BOM
canvas与浏览器的不一样
不支持动态脚本
这里和小程序差不多,无DOM,无BOM。如果不是使用引擎商提供的引擎,需要格外注意接口适配,以免半天找到北。
3、本地存储
H5游戏
基于浏览器的缓存,比如cache-control
localstorage、sessionStroage
有FileReader,但无完整的文件系统功能
websql
indexDB
小游戏
无网络缓存
有localstorage功能
无sessionstorage
有完整的文件系统
无内置的数据库系统
亮点是文件系统,存储用户相关的信息已经一些资源文件。
4、引擎
H5游戏
各大引擎完全基于H5
小游戏
需要针对无DOM、BOM适配
如果使用引擎商的那么就没问题,否则只能自己看源码做适配。自己适配的工作量可能要花费2-3天。
小游戏与小程序的差异
小游戏
game.js为程序的入口。
game.json为游戏窗口各种配置
项目大小限制4M,用户数据50M
小程序
pages小程序的页面
app.js入口
project.config.json:此项目的基本配置
项目大小限制2M
亮点是包大小更大,但游戏本来资源就多,加上庞大的引擎,所以4M有时候也很吃紧。引擎用不上的模块就不要打包进来,图片尽量都做一下压缩,雪碧图等。一是降低用户侧的流量;二是压缩使用空间;三是降低小游戏的运行内存,图片大很吃内存。
有幸成为首批小游戏开发者,后面陆续会分享一些实战的经验。具体可参看文档先学习教程·小游戏
说句题外话,个人开发者抱着学习的目的可以进行开发学习,想自己发布一个独立游戏比较难,要有相应的资质。软件著作权、游戏版号备案等等,不是单个人可以搞得来下。所以一旦等到开放,第一波吃肉的还是大厂商,从跳一跳这么火热的程度可以预想到未来竞争会很残酷。好事是可以让页游开发者在市场上会更加抢手。