TeaHost
Counter-Strike 2cs2gotvдемотрансляции4 мин. чтения

Настройка GOTV в CS2 и записи демо

Настройка GOTV в CS2: конвары tv_enable, tv_port и tv_delay, задержка трансляции, автозапись демо через tv_autorecord и подключение зрителей к каналу

Кратко

GOTV в CS2 включается конварами tv_enable 1 и tv_port с отдельным открытым портом (например, 27020) в server.cfg. Для матчей ставят tv_delay 90, для тренировок — 0; демо пишутся автоматически при tv_autorecord 1 вместе с tv_delaymapchange 1 и копятся в game/csgo, поэтому старые записи стоит чистить по расписанию.

GOTV в CS2 решает две задачи: пускает зрителей смотреть матч, не занимая слоты, и пишет демо, по которым потом разбирают спорные моменты. Второе на публичном сервере даже важнее первого — без записей любой спор о читерстве превращается в «мне показалось». Настраивается GOTV десятком конваров, но каждый из них влияет на нагрузку, так что бездумно копировать чужой конфиг не стоит.

Базовое включение GOTV в CS2

Минимум, который нужен для работы трансляции:

код
tv_enable 1
tv_port 27020
tv_delay 90
tv_name "TeaHost GOTV"
tv_password "watch"
tv_maxclients 20
КонварЧто делает
tv_enable 1Включает GOTV. Без него остальные конвары бесполезны
tv_portПорт трансляции, отличный от игрового и открытый наружу. Классика — игровой 27015, GOTV 27020
tv_delayЗадержка трансляции в секундах, о ней ниже
tv_nameИмя, под которым бот GOTV виден в списке игроков
tv_passwordПароль для зрителей; пустой — открытая трансляция
tv_maxclientsСколько зрителей пустить. Каждый нагружает канал, на слабом аплинке 20 — уже много

Конвары кладутся в server.cfg, а tv_enable дополнительно дублируют в параметрах запуска, чтобы GOTV поднялся сразу; см. параметры запуска сервера CS2.

Про задержку

tv_delay — самый важный параметр для матчей. Он определяет, насколько трансляция отстаёт от происходящего на сервере.

Логика простая: без задержки зритель видит позиции игроков в реальном времени и может передать их в голосовой чат команде. Это прямой чит, и защита от него — только задержка.

Ориентиры:

  • tv_delay 30 — минимум для полуофициальных матчей
  • tv_delay 90 — стандарт для турниров, обычная практика
  • tv_delay 120 и больше — для трансляций с комментаторами, где нужен запас

На тренировочном сервере задержку часто ставят в 0 — там смотреть будут свои, а мгновенная картинка удобнее для разбора. Такой сервер имеет смысл держать отдельно; про него есть материал: CS2-сервер для практики.

Как подключиться зрителю

Из консоли клиента:

код
connect ip:27020

Или, если стоит пароль:

код
password watch; connect ip:27020

Зритель попадает в режим наблюдателя, слоты игрового сервера не расходуются. Переключение между игроками — обычными клавишами наблюдения, свободная камера доступна, если не ограничена конварами.

Автозапись демо

Записи — та часть, ради которой GOTV включают на публичных серверах, даже если смотреть трансляцию никто не собирается.

код
tv_autorecord 1
tv_delaymapchange 1

tv_autorecord 1 включает запись каждого матча автоматически. Файлы .dem появляются в game/csgo/ с именем, включающим дату и карту.

tv_delaymapchange 1 задерживает смену карты до момента, когда GOTV отдал всё, что накопилось в буфере задержки. Без него последние секунды матча просто теряются — а это ровно тот момент, который обычно и нужен.

Ручное управление записью:

код
tv_record nazvanie_demo
tv_stoprecord

Полезно для разовых записей — скрим, тестовая игра, конкретный раунд. Турнирный плагин MatchZy сам запускает и останавливает запись на каждый матч и умеет загружать демо по URL — но только при включённом tv_enable 1.

Хранение и место

Демо копятся быстро. Один матч — десятки мегабайт, за неделю активного публичного сервера набегают гигабайты, и в какой-то момент место на диске кончается ровно посреди матча.

Что с этим делать:

  • Настроить автоочистку старых записей — задачу по расписанию, удаляющую .dem старше двух-трёх недель. Как это ставится, описано в заметке про планировщик задач
  • Ценные демо (спорные матчи, подозрения на читы) сразу выкачивать через SFTP и хранить отдельно
  • Не включать tv_autorecord на дезматч-сервере, если записи там никому не нужны

Два независимых канала

CS2 поддерживает вторую инстанцию GOTV — с собственным портом и задержкой:

код
tv_enable1 1
tv_port1 27021
tv_delay1 0

Зачем это нужно: первый канал с большой задержкой отдаётся зрителям, второй без задержки — продакшену или наблюдателю-судье. Так делают на турнирах. На обычном сервере вторая инстанция избыточна и просто ест ресурсы.

Влияние на производительность

GOTV — не бесплатная функция. Она забирает часть процессорного времени на формирование потока и заметно нагружает канал: каждый зритель получает полный поток обновлений.

Практические ориентиры:

  • Десяток зрителей на обычном сервере проходит незаметно
  • Полсотни на слабом канале начинают сказываться на игроках
  • Запись демо нагружает диск, а не сеть, и обычно проблем не создаёт

Если сервер под нагрузкой начинает подтормаживать при включённом GOTV — первое, что стоит уменьшить, это tv_maxclients, а не задержку.

Что проверить, если не работает

  1. tv_enable действительно 1 — проверьте вызовом конвара в консоли, а не в файле
  2. Порт GOTV открыт наружу. Игровой порт открыт, а соседний — часто нет
  3. Порт не занят вторым сервером на той же машине
  4. Пароль совпадает: зритель вводит password до connect, а не после
  5. GOTV поднимается при загрузке карты — после правки конфига нужна смена карты или рестарт

Проверять конвары удобнее всего через удалённую консоль; порядок настройки — в заметке про RCON. Более развёрнутый разбор трансляций с примерами конфигов есть в статье про настройку GOTV.

Коротко

Включили tv_enable, дали отдельный порт, поставили задержку по назначению сервера (90 секунд для матчей, 0 для тренировок), включили tv_autorecord вместе с tv_delaymapchange и сразу продумали, куда девать накапливающиеся демо. Дальше GOTV работает сам и вспоминают о нём только тогда, когда нужна запись — и хорошо, если она есть.

Если нужен сервер с доступом к файлам записей через панель и SFTP — тарифы под CS2 здесь.