抖音开放平台Logo
控制台

体验抖音小游戏

更新时间 2024-07-24 02:58:49
收藏
我的收藏
抖音小游戏是一种开放能力。允许用户基于给定的 API 编写游戏代码,最终生成可运行在接入小游戏功能的各产品 APP 上。​

快速上手​

安装开发工具​

前往开发者工具下载页面,根据自己的操作系统下载对应的安装包进行安装。​

小游戏文件结构​

js
复制
.
├── game.js => 小游戏入口文件
├── game.json => 小游戏配置文件
└── project.config.json => 工程配置文件
以上三个文件为小游戏的三个必要文件,开发者如有其它资源可以在根目录下自由建立 js, audio, images 等目录,规范自己的开发文件。​

配置​

小游戏包含两个配置文件:小游戏配置文件game.json和工程配置文件project.config.json。​

小游戏配置文件game.json

game.json 示例如下,详细说明可见小游戏配置。​
json
复制
{
"deviceOrientation": "portrait"
}

工程配置文件project.config.json

project.config.json 示例​
json
复制
{
"description": "项目描述",
"setting": {
"es6": true // 声明使用的 js 语法版本
}
}

平台能力​

tt API​

本平台只能使用 JavaScript 来编写小游戏。小游戏的运行环境是一个绑定了一些方法的 JavaScript VM。不同于浏览器,这个运行环境没有 BOMDOM API,只有 tt系列 API。接下来我们将介绍如何用 tt API 来完成创建画布、绘制图形、显示图片以及响应用户交互等基础功能。​

创建 Canvas​

js
复制
var canvas = tt.createCanvas();
通过调用 tt.createCanvas() 接口,可以创建一个 Canvas 对象。用户第一次调用时, 获取到的是一个上屏 Canvas,该 Canvas 已经显示在了屏幕上,且与屏幕等宽等高。小游戏运行期间,有且仅有一个上屏 Canvas。​

绘制​

js
复制
var context = canvas.getContext("2d");
context.fillStyle = "#ff00ff";
context.fillRect(0, 0, 100, 100);

触摸事件​

平台提供了一系列监听触摸事件的 API:​

动画能力​

开发者可以利用定时器相关 API 实现动画效果,如下​

全局对象​

小游戏的运行环境不同于 Web 环境,在真机上运行时,没有BOM API,因此也就没有 window 对象以及其上面的各种属性。所以,从 H5 迁移过来的游戏,开发者需要自己实现 window 对象的兼容(如果是利用游戏引擎开发的小游戏,导出的小游戏版本一般已经包含了一份 adapter,适配了 window 对象)。同时,在小游戏的运行环境中,提供了全局对象 GameGlobal,所有全局定义的变量都是 GameGlobal 的属性。如:​
js
复制
setTimeout === GameGlobal.setTimeout; // true
requestAnimationFrame === GameGlobal.requestAnimationFrame; // true
同时,GameGlobal 是一个全局对象,也是一个循环引用的对象。​
js
复制
GameGlobal.GameGlobal === GameGlobal;

关系链数据使用​

请参考文档开放数据域的基础能力。​

开放能力​

平台允许开发者可以利用一些产品宿主提供的如登录,分享,以及不久的未来支持的支付,广告等一系列开放能力,用以完善自己的产品逻辑和体验。具体可以参考开发 > 指南 》开放能力一栏。​

代码包限制​

IDE 1.1.0 及以上版本,小游戏包体积限制分为两种情况,普通非分包小游戏和分包小游戏。​

普通小游戏包​

未配置分包的场景下,每个小游戏允许上传的代码包总大小上限为 20MB。​

分包后小游戏包​

对于配置了分包的小游戏,默认限制为:​
    小游戏整体包(小游戏包整个目录)大小不超过 20MB;
    单个主包不超过 4MB;
    单个分包大小不超过 20MB。
开放数据域
开放数据域文件类似子包概念,该文件 / 目录的大小不超过 4MB。​

说明​

分包的应用场景在于减少小游戏加载耗时,以及提供额外的扩展包大小。普通小游戏包的压缩后大小依赖于开发者的资源,不可控。​
IDE 的包大小计算不会包含:unix dot 隐藏文件及目录、node_modules 文件、js.map 文件,超过大小上限的小游戏包,预览上传将受限,请开发者注意小游戏包体积。​
文件类型
小游戏限制了可以上传的文件类型。只有在以下列表中的文件可以上传成功:​
类型​
文件后缀类型​
.png, .jpg, .jpeg, .gif, .svg, .json, .cer, .mp3, .aac, .m4a, .mp4, .wav, .flac, .ape, .ogg, .wma, .midi, .ogv, .webm, .mkv, .ttc, .ttf, .woff, .otf, .obj, .dae, .fbx, .mtl, .stl, .3ds, .pvr, .plist, .fnt, .gz, .ccz, .bmp, .atlas, .swf, .ani, .part, .proto, .bin, .sk, .mipmaps, .txt, .zip, .tt, .map, .silk, .dbbin, .dbmv, .etc, .lmat, .lm, .ls, .lh, .lani, .lav, .lsani, .ltc, .xml, .pkm, .scene, .csv, .prefab, .mesh