什么是 TikTok LIVE 游戏?
TikTok LIVE 互动游戏是由观众控制的体验,观众的操作会直接影响游戏进程。当观众发弹幕、送礼物、点赞或关注主播时,这些事件会触发游戏内的反应:生成敌人、改变环境或控制角色。
热门玩法包括:
- 弹幕控制对战 - 观众输入指令加入队伍并开战
- 礼物触发特效 - 送一朵玫瑰生成一个道具,送一个宇宙触发 Boss 战
- 点赞刷屏 - 点赞影响重力、速度或难度
- 关注提醒 - 新粉丝会生成友方 NPC
工作原理
你的游戏通过 WebSocket 连接 TikTools API,实时接收 TikTok LIVE 直播的事件。每个事件都包含观众的用户名、执行的操作以及相关数据(礼物价值、弹幕内容等)。
// The flow:
// 1. Viewer watches TikTok LIVE stream
// 2. Viewer sends a gift/chat/like
// 3. TikTool API delivers the event via WebSocket
// 4. Your game receives the event and responds
TikTok LIVE → TikTool API → WebSocket → Your Game Engine方案 1:网页游戏(JavaScript)
最简单的方式,直接从浏览器或 Node.js 后端连接:
import { TikTokLive } from '@tiktool/live'
const client = new TikTokLive({
uniqueId: 'streamer_username',
apiKey: process.env.TIKTOOL_API_KEY
})
// Gift → Spawn an item based on gift value
client.on('gift', (event) => {
const item = event.diamondCount >= 100
? 'boss_enemy'
: event.diamondCount >= 10
? 'power_up'
: 'small_coin'
spawnItem(item, event.nickname)
console.log(`${event.nickname} spawned a ${item} with ${event.giftName}!`)
})
// Chat → Let viewers vote or issue commands
client.on('chat', (event) => {
const cmd = event.comment.toLowerCase().trim()
if (cmd === '!join') {
addPlayer(event.nickname, event.userId)
} else if (cmd === '!left' || cmd === '!right') {
movePlayer(event.nickname, cmd.replace('!', ''))
}
})
// Like → Increase game speed or difficulty
client.on('like', (event) => {
increaseDifficulty(event.totalLikeCount)
})
// Viewer count → Scale the challenge
client.on('viewer_count', (event) => {
setEnemySpawnRate(event.viewerCount / 100)
})
await client.connect()
console.log('🎮 Game connected to TikTok LIVE!')方案 2:Unity(C#)
在 Unity 中直接使用原生 WebSocket 连接,无需额外插件:
using System;
using UnityEngine;
using NativeWebSocket; // Install via Package Manager
public class TikTokLiveGame : MonoBehaviour
{
WebSocket ws;
async void Start()
{
ws = new WebSocket(
"wss://api.tik.tools?uniqueId=streamer_username&apiKey=YOUR_API_KEY"
);
ws.OnMessage += (bytes) =>
{
var json = System.Text.Encoding.UTF8.GetString(bytes);
var msg = JsonUtility.FromJson<TikToolEvent>(json);
switch (msg.@event)
{
case "gift":
SpawnGiftEffect(msg.data.giftName, msg.data.diamondCount);
break;
case "chat":
ProcessChatCommand(msg.data.comment, msg.data.user.nickname);
break;
case "like":
IncreaseDifficulty();
break;
}
};
await ws.Connect();
Debug.Log("Connected to TikTok LIVE!");
}
void Update()
{
#if !UNITY_WEBGL || UNITY_EDITOR
ws?.DispatchMessageQueue();
#endif
}
}游戏设计技巧
- 显示观众名字 - 在游戏里显示送礼用户或发弹幕观众的用户名,让观众感觉被看见
- 随观众人数调整 - 用
viewer_count事件动态调整难度 - 礼物分级 - 把 TikTok 礼物价值(1💎 = 小,10💎 = 中,100💎+ = 史诗)映射到游戏内效果
- 冷却时间 - 给弹幕指令加上每用户冷却,防止刷屏
- 视觉反馈 - 观众每次互动都要展示发生了什么,让观众保持参与
常见问题
做 LIVE 游戏需要 TikTok 官方 API 吗?
不需要。TikTok 没有提供直播事件的公开 API。TikTool 提供第三方托管 API,通过 WebSocket 推送,适用于任何游戏引擎。7 天 Sandbox 评估就足够你做出游戏原型。
游戏里可以用哪些事件?
所有事件:chat、gift、like、follow、share、member(进场)、viewer_count。完整文档见事件参考。
可以用在 Godot、GameMaker 或其他引擎上吗?
可以。任何支持 WebSocket 连接的引擎都能使用 TikTool API。连接 wss://api.tik.tools 并解析 JSON 消息即可,无需 SDK。