什麼是 TikTok LIVE 遊戲?
TikTok LIVE 互動遊戲是由觀眾控制的體驗,觀眾的行為會直接影響遊戲。當觀眾發送聊天訊息、送禮物、按讚或追蹤直播主時,這些事件會觸發遊戲內的反應:生成敵人、改變環境或操控角色。
熱門例子包括:
- 聊天操控對戰:觀眾輸入指令加入隊伍並對戰
- 禮物觸發特效:送一朵玫瑰生成道具,送 TikTok 宇宙觸發魔王戰
- 按讚洗版:按讚影響重力、速度或難度
- 追蹤通知:新粉絲會生成友方 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 沒有提供 LIVE 直播事件的公開 API。TikTool 提供透過 WebSocket 傳送的第三方代管 API,可搭配任何遊戲引擎。7 天 Sandbox 評估期就足夠做出遊戲原型。
遊戲裡可以用哪些事件?
所有事件:chat、gift、like、follow、share、member(進場)、viewer_count。完整文件請看事件參考文件。
可以搭配 Godot、GameMaker 或其他引擎嗎?
可以。任何支援 WebSocket 連線的引擎都能使用 TikTool API。連到 wss://api.tik.tools 並解析 JSON 訊息即可,不需要 SDK。