遊戲開發指南

打造 TikTok LIVE 互動遊戲

讓觀眾用聊天指令、禮物和按讚操控你的遊戲。支援 Unity、C++、網頁瀏覽器和任何支援 WebSocket 的引擎。

什麼是 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。