【最新】微信小游戏全解析和它的入门教程
【体验】
本来想安安静静跨个年,做个安静的美男子,没想到就剩几天了,微信搞了个大动作。
听说微信小程序支持小游戏了,作为一个时尚的程序员,我是坐不住的,于是赶紧体验了一把。
把微信升级到最新版本,在小程序里面搜索小游戏,发现已经有不少了。
找了一个大学时候经常玩的保卫萝卜,进去之后体验下来,和之前的游戏差不多。
又看了看其他小游戏,什么麻将,扑克应有尽有,也就是说,爸爸妈妈以后打麻将和扑克只需要把链接往群里一分享,就可以在手机上玩了。
【分析】
那么微信小游戏会带来什么变化呢?
首先,不用下载小游戏了,就一个微信,你就可以玩遍所有的小游戏,而且不想玩了也不需要卸载,它也不会占有太多手机内存空间,是真正的“触手可及,用完即走”,是不是很方便?
其次,省去了注册账号等繁琐操作,更加适合爸爸妈妈了,甚至家里的老人,只要用微信,都能玩小游戏啦。
最后,微信小游戏还可以和好友互动,找朋友一起来玩更方便啦!玩得好在好友排名第一,也是很有面子的。
当然,以上都是从用户角度进行分析,接下来,对于游戏开发者们,有什么变化呢?
首先,游戏运营成本大大降低,因为用户使用门槛低了,不需要下载很大的apk包,不需要复杂的注册流程,所以用户会更多。
其次,项目风险大大降低。如果像之前一样做大游戏,一旦不成功可能面临公司倒闭,毕竟王者荣耀只有一个,多少不为人知的游戏公司默默倒闭。而现在,小游戏,开发成本相对较低,一次融资可能有几次尝试的机会,成功率会更高。
最后,技术转换。以前如果做native游戏的话,现在可能要熟悉下H5游戏的开发流程和开发语言了。毕竟微信小游戏基于js,开发模式和H5游戏开发模式非常像。
那么说了这么多优点,微信小游戏有没有缺点呢?当然是有的,微信小游戏,不适合做功能复杂或渲染要求很高的重度游戏,其实名字中已经暴露了,它只适合小游戏。毕竟还是通过js实现,性能是瓶颈。
【教程】
我们来看一下,微信小游戏到底怎么开发?
下载最新的微信开发者工具,已经可以创建小游戏了,我们来看看界面。
新建一个项目之后,默认就是一个飞机大战的小游戏,代码基于es6的。我们先看一下项目结构:
├── README.md
├── audio
│ ├── bgm.mp3
│ ├── boom.mp3
│ └── bullet.mp3
├── game.js
├── game.json
├── images
│ ├── Common.png
│ ├── bg.jpg
│ ├── bullet.png
│ ├── enemy.png
│ ├── explosion1.png
│ ├── explosion10.png
│ ├── explosion11.png
│ ├── explosion12.png
│ ├── explosion13.png
│ ├── explosion14.png
│ ├── explosion15.png
│ ├── explosion16.png
│ ├── explosion17.png
│ ├── explosion18.png
│ ├── explosion19.png
│ ├── explosion2.png
│ ├── explosion3.png
│ ├── explosion4.png
│ ├── explosion5.png
│ ├── explosion6.png
│ ├── explosion7.png
│ ├── explosion8.png
│ ├── explosion9.png
│ └── hero.png
├── js
│ ├── base
│ │ ├── animation.js
│ │ ├── pool.js
│ │ └── sprite.js
│ ├── databus.js
│ ├── libs
│ │ ├── symbol.js
│ │ └── weapp-adapter.js
│ ├── main.js
│ ├── npc
│ │ └── enemy.js
│ ├── player
│ │ ├── bullet.js
│ │ └── index.js
│ └── runtime
│ ├── background.js
│ ├── gameinfo.js
│ └── music.js
└── project.config.json
8 directories, 44 files
有几个比较重要的文件:project.config.json,这是项目的配置文件,类似package.json;game.js,微信官网指定微信小游戏必须包含的文件,是小游戏的入口文件;game.json,微信官网指定微信小游戏必须包含的文件,是小游戏的配置文件。
整个游戏是通过weapp-adapter暴露出来的canvas进行制作的,基本基于原生canvas。
当然,由于有adapter的支持,市面上的H5游戏引擎大部分都能集成进来。
游戏具体实现可以自行看代码,这里不展开。有js基础的同学应该很快能上手。
最后,感觉这应该是一个风口,大家把握!