
微信小游戏
T1平台微信小游戏是小程序的一个类目,基于微信平台开发的不需下载安装的轻量游戏应用。支持Canvas/WebGL渲染,具备微信社交属性(好友排行、转发分享、组队对战)。支持广告变现、内购、游戏圈等商业化能力。
📊 月活 5.71亿(2025-08)
小游戏小程序子分类
特性
- Canvas/WebGL渲染
- 好友排行/社交分享
- 广告变现(Banner/激励视频)
- 内购支付
- 游戏圈
- 微信登录
- 分包加载
- PC端适配
详细文档
微信小游戏#
平台概述#
微信小游戏于 2017 年底上线,是小程序生态中的轻量游戏类目,月活 5.71 亿+。与小程序最大的差异:没有 WXML/WXSS 与 DOM/BOM,全部基于 Canvas/WebGL 渲染,入口是 game.js 而非 app.js。依托微信社交关系链,天然支持好友排行、转发分享、组队对战。
核心优势:
- 社交裂变:好友排行、分享续命、组队对战,获客成本低
- 即点即玩:无需下载安装,体验门槛极低
- 变现完善:内购 + 多种广告形式 + 游戏圈
- 开放数据域:可安全访问好友数据构建排行榜
典型品类:
- 休闲益智:消除、跑酷、答题(广告变现为主)
- 中重度:RPG、卡牌、策略(内购变现为主)
- 社交互动:桌游、派对、对战
设计规范#
技术模型(关键差异)#
- 无 WXML/WXSS:没有页面/模板/样式文件,全部用 Canvas/WebGL 绘制
- 无 DOM/BOM:不能用
document/window,需用wx.createCanvas()创建画布 - 单场景:没有
navigateTo路由体系,游戏场景由引擎内部管理 - 入口:
game.js(而非小程序的app.js)
配置文件#
game.json:核心配置deviceOrientation:屏幕方向(portrait/landscape)showStatusBar:是否显示状态栏networkTimeout:网络超时subContext:开放数据域目录路径navigateToMiniProgramAppIdList:允许跳转的小程序/小游戏 appId 列表
审核规范#
常见被拒原因#
- 游戏版号:内购类游戏必须有国家新闻出版署下发的游戏版号
- 内容合规:不得含暴力、赌博、色情等违规内容
- 未成年人保护:需接入防沉迷与实名认证
- 诱导分享:禁止强制分享才能推进游戏
- 广告合规:广告展示频率与时机需符合规范
审核周期#
- 游戏类审核更严格,通常 3-7 个工作日
- 内购/版号核验耗时更长
企业 vs 个人#
- 广告变现类:个人主体可做
- 内购类:需企业主体 + 游戏版号
开发指南#
快速上手#
// game.js(入口)
const canvas = wx.createCanvas()
const ctx = canvas.getContext('2d')
const { windowWidth, windowHeight } = wx.getSystemInfoSync()
ctx.fillStyle = '#07c160'
ctx.fillRect(0, 0, windowWidth, windowHeight)
ctx.fillStyle = '#fff'
ctx.font = '20px sans-serif'
ctx.fillText('Hello 微信小游戏', 20, windowHeight / 2)
wx.onShareAppMessage(() => ({
title: '快来一起玩!',
imageUrl: canvas.toTempFilePath()
}))
游戏专属 API(核心)#
| 能力 | API | 说明 |
|---|---|---|
| 画布渲染 | wx.createCanvas() | 创建 Canvas,支持 2D 与 WebGL |
| 激励视频广告 | wx.createRewardedVideoAd | 看广告得奖励(基础库 ≥ 2.0.4) |
| Banner 广告 | wx.createBannerAd | 底部横幅广告 |
| 插屏广告 | wx.createInterstitialAd | 插屏广告 |
| 格子广告 | wx.createGridAd | 网格广告 |
| 好友排行 | wx.getFriendCloudStorage | 拉取好友托管数据(仅开放数据域) |
| 群排行 | wx.getGroupCloudStorage | 拉取群成员托管数据(仅开放数据域) |
| 上报成绩 | wx.setUserCloudStorage | 上报用户托管数据 |
| 游戏圈 | wx.createGameClubButton | 游戏社区入口 |
常见陷阱#
- 开放数据域隔离:
wx.getFriendCloudStorage只能在「开放数据域」(OpenDataContext)中调用,主域需通过wx.getOpenDataContext().postMessage()通信 - 无 DOM/BOM:第三方库若依赖
document/window/XMLHttpRequest,需 polyfill 或替换为wx.request - 包体限制:主包 4MB,超出需分包加载,资源可走 CDN 动态下载
- 广告版本要求:
wx.createRewardedVideoAd要求基础库 ≥ 2.0.4,需做版本判断 - 性能调优:关注 drawcall、内存、帧率,用开发者工具的性能面板分析
引擎推荐#
小游戏通常用游戏引擎开发(而非裸 Canvas):
- Cocos Creator:最主流,官方一键发布小游戏
- Laya:性能优秀,3D 支持好
- Egret:老牌引擎,2D 游戏成熟
- Three.js / PIXI:可通过适配层运行
生态资源#
推荐框架/引擎#
| 引擎 | 支持度 | 说明 |
|---|---|---|
| Cocos Creator | ⭐⭐⭐ | 最主流,官方支持一键发布 |
| Laya | ⭐⭐⭐ | 性能优秀,3D 支持好 |
| Egret | ⭐⭐ | 老牌 2D 引擎 |
| 裸 Canvas/WebGL | ⭐⭐ | 适合极简游戏,包体最小 |
社区资源#
- 官方文档:developers.weixin.qq.com/minigame
- 开发者社区:问答、Bug 反馈、引擎适配指南
- 微信小游戏数据助手:运营数据查看
版本更新#
近期重要变更#
- 性能提升:基础库持续优化渲染性能
- PC 端适配:小游戏可在 PC 微信运行
- 广告形式丰富:格子广告、视频广告持续完善
- 云开发:小游戏支持云函数/云数据库