Гайд для геймдева

Сделайте для TikTok LIVE интерактивную игру

Дайте зрителям управлять игрой командами в чате, подарками и лайками. Работает с Unity, C++, браузерами и любым движком с поддержкой WebSocket.

Что такое игры в TikTok LIVE?

Интерактивные игры в TikTok LIVE - это форматы, где действия зрителей напрямую влияют на геймплей. Когда зрители пишут в чат, отправляют подарки, ставят лайки или подписываются на стримера, эти события вызывают реакцию в игре: появляются враги, меняется окружение, двигаются персонажи.

Популярные примеры:

  • Битвы через чат - зрители пишут команды, чтобы вступить в команду и сражаться
  • Эффекты от подарков - Роза создаёт предмет, Вселенная запускает битву с боссом
  • Лавины лайков - лайки меняют гравитацию, скорость или сложность
  • Алерты подписок - новые подписчики призывают дружественных NPC

Как это работает

Ваша игра подключается к TikTools API через WebSocket и получает события трансляции 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#)

Используйте чистое WebSocket-подключение из Unity - дополнительные плагины не нужны:

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💎+ = эпичный) с игровыми эффектами
  • Кулдауны - защищайтесь от спама кулдаунами на команды в чате для каждого пользователя
  • Визуальная обратная связь - всегда показывайте, что произошло после действия зрителя, чтобы аудитория оставалась вовлечённой

Частые вопросы

Нужен ли официальный API TikTok, чтобы сделать игру для LIVE?

Нет. TikTok не предоставляет публичный API для событий трансляций LIVE. TikTool даёт управляемый сторонний API с доставкой через WebSocket, который работает с любым игровым движком. Бесплатной 7-дневной оценки Sandbox хватит, чтобы сделать прототип игры.

Какие события можно использовать в игре?

Все события: chat, gift, like, follow, share, member (вход), viewer_count. Полное описание - в справочнике событий.

Можно использовать с Godot, GameMaker или другими движками?

Да. TikTool API подходит любому движку с поддержкой WebSocket. Подключитесь к wss://api.tik.tools и разбирайте JSON-сообщения. SDK не нужен.