游戏开发指南

开发 TikTok LIVE 互动游戏

让观众用弹幕指令、礼物和点赞控制你的游戏。支持 Unity、C++、网页浏览器以及任何支持 WebSocket 的引擎。

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