▶_MiniApp Toolkit

微信小游戏

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 列表

审核规范#

常见被拒原因#

  1. 游戏版号:内购类游戏必须有国家新闻出版署下发的游戏版号
  2. 内容合规:不得含暴力、赌博、色情等违规内容
  3. 未成年人保护:需接入防沉迷与实名认证
  4. 诱导分享:禁止强制分享才能推进游戏
  5. 广告合规:广告展示频率与时机需符合规范

审核周期#

  • 游戏类审核更严格,通常 3-7 个工作日
  • 内购/版号核验耗时更长

企业 vs 个人#

  • 广告变现类:个人主体可做
  • 内购类:需企业主体 + 游戏版号

开发指南#

快速上手#

code
// 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游戏社区入口

常见陷阱#

  1. 开放数据域隔离wx.getFriendCloudStorage 只能在「开放数据域」(OpenDataContext)中调用,主域需通过 wx.getOpenDataContext().postMessage() 通信
  2. 无 DOM/BOM:第三方库若依赖 document/window/XMLHttpRequest,需 polyfill 或替换为 wx.request
  3. 包体限制:主包 4MB,超出需分包加载,资源可走 CDN 动态下载
  4. 广告版本要求wx.createRewardedVideoAd 要求基础库 ≥ 2.0.4,需做版本判断
  5. 性能调优:关注 drawcall、内存、帧率,用开发者工具的性能面板分析

引擎推荐#

小游戏通常用游戏引擎开发(而非裸 Canvas):

  • Cocos Creator:最主流,官方一键发布小游戏
  • Laya:性能优秀,3D 支持好
  • Egret:老牌引擎,2D 游戏成熟
  • Three.js / PIXI:可通过适配层运行

生态资源#

推荐框架/引擎#

引擎支持度说明
Cocos Creator⭐⭐⭐最主流,官方支持一键发布
Laya⭐⭐⭐性能优秀,3D 支持好
Egret⭐⭐老牌 2D 引擎
裸 Canvas/WebGL⭐⭐适合极简游戏,包体最小

社区资源#

版本更新#

近期重要变更#

  • 性能提升:基础库持续优化渲染性能
  • PC 端适配:小游戏可在 PC 微信运行
  • 广告形式丰富:格子广告、视频广告持续完善
  • 云开发:小游戏支持云函数/云数据库