Source TV

SourceTV дает возможность неограниченному числу зрителей наблюдать за ходом матча на выделенном сервере Source. SourceTV зрители невидимы игрокам матча и не могут никак влиять на ход игры. Камера SourceTV можеть управляться как самим сервером так и непосредственно человеком, будучи ответственным за управлению ею. Вещание матча через SourceTV может передаваться с некоторым заранее заданным временным интервалом. Эта возможность страхует от вероятности того, что игроки могут воспользоваться SourceTV, чтобы получить какую-либо информацию об их оппонентах.

Организация SourceTV для вещания нескольким зрителям не требует никаких особых временных затрат и ресурсов сервера. Организация  же вещания для тысяч зрителей может потребовать предварительной подготовки и серьезных требований к серверу.

1. Просмотр игры

Для просмотра матча через SourceTV откройте Steam, выберите раздел Servers для того, чтобы открыть браузер серверов. Выберите раздел Spectate, чтобы увидеть список доступных SourceTV серверов. Вы можете изменить критерии поиска серверов через Change filters. Подключиться к серверу можно кликнув по нему в списке серверов два раза мышкой.

Часто игровые лиги и чемпионаты заранее публикуют IP (вида IP:Port) адреса SourceTV, по этому вы всегда можете добавить адрес в закладку Favorites вместо того, чтобы искать его через поиск. Можно также подключиться к SourceTV используя консоль игры:

connect 192.168.130.42:27020

Порт по умолчанию у SourceTV является 27020, но может быть изменен по усмотрению администратора. Но порт SourceTV всегда следует указывать, так как порт по-умолчанию игрового сервера — 27015.

В момент просмотра матча через SourceTV тип камеры и ее позиция определяются или самим сервером или человеком за это ответственным. Сами спектаторы не могут переключать камеру, как это было в HLTV, так как это во много раз увеличивает пропускную способность. В тоже время демо записи, заснятые через SourceTV позволяют спектаторам переключать камеру по их усмотрению.

2. Транслирование игры

SourceTV полностью интегрирован в Движок Source и больше не является отдельной программой, как это было раньше с HLTV. Чтобы начать вещание, сервер должен активировать SourceTV перед стартом карты командой tv_enable 1. После этого в игре можно будет увидеть SourceTV как отдельного бота, присутствующего в спектаторах. Сервер SourceTV «живет» также как и игровой серверный процесс и называется SourceTV master server. Процесс SourceTV master server накапливает и кэширует информацию, после чего отдает ее клиентам с указанной задержкой, дабы избежать попыток читерства со стороны команд. Авто выбор камеры — это специальный мод, который автоматически определяет интересные игровые моменты и старается их показать зрителям (такие как убийства или закладка бомбы). Может быть также назначен человек — оператор матча, который будет сам выбирать игровые моменты и показывать зрителям их, SourceTV будет транслировать игру через его экран. Спектаторы SourceTV чаще всего подключаются к стандартному порту SourceTV 27020. Порт SourceTV может также быть изменен консольной командой tv_port.

Подобная конфигурация удобна для маленьких матчей с малым количеством зрителей. Вся информация о зрителях и игроках обрабатывается игровым сервером. Большое количество зрителей тут же потребует большой нагрузки на процессор и пропускную способность канала. Следовательно логичным было бы решить проблему расхода мощности процессора и трафика распределив их между различными вспомогательными серверами, число которых можно увеличивать с растущим объемом зрителей. Этот способ осуществим подключением вспомогательных SourceTV к главному SourceTV транслятору, которые и будут выполнять роль распределителей зрителей. Такие сервера называются SourceTV прокси сервера, и каждый Прокси сервер может обрабатывать одновременно до 255 человек. Естественно сами Прокси сервера также могут подключаться к таким же прокси серверам и образовывать тем самым неограниченную сеть SourceTV серверов, транслирующую одну игру.

Чтобы настроить прокси сервер SourceTV необходимо запустить выделенный сервер Source с параметром tv_relay с указанием IP адреса другого SourceTV сервера.

srcds.exe -game cstrike -console +tv_relay 127.0.0.2:27020

Статус локального SourceTV всегда можно посмотреть командой tv_status. Вот пример ответа на эту команду:

Online 05:15, FPS 75.7, Version 2350 (Win32)
Local IP 207.173.178.143:27020, KB/sec In 2.0, Out 4.1
Local Slots 128, Spectators 1, Proxies 1
Total Slots 256, Spectators 2, Proxies 1
Master, Delay 30
Game Time 05:16, Mod «cstrike», Map «de_dust», Players 4

Total slot и количество зрителей является суммарной величиной всех возможных слотов и зрителей с учетом подключенных прокси серверов. Если прокси сервер теряет подключение к мастер серверу то можно попытаться быстро подключиться с помощью команды tv_retry. Чтобы остановить вещание и отключить всех зрителей следует набрать команду tv_stop.

3. Ручное управление камерой

Камера в большинстве случаев управляется сервером. Но если оператор войдет в игру и займет место спектатора, во время матча нажмет клавишу E (Use), то камера SourceTV автоматически переключится на ручное управление и будет транслировать матч «из глаз» оператора. Оператор может выбрать любой режим показа (от первого лица, от третьего лица, свободный полет и т.д.). Переключить камеру обратно в режим авто управления можно нажав еще раз клавишу E.

Оператор должен обладать хорошим знанием матча, чтобы транслировать его зрителям.
Мертвый игрок, если зайдет в спектаторы, так же может стать оператором.

4. Запись игры

Мастер сервер SourceTV может осуществлять запись игры без какой-либо потери данных или сетевой задержки. Все события и предметы записываются в один файл, который может быть в последствие проигран как обычный демо файл (используйте команду demoui для проигрывания демо). Чтобы начать запись демо необходимо запустить SourceTV перед тем как карта будет загружена, после чего начать запись с помощью команды tv_record demoname. Запись демо прерведся при смене карты или принудительно с помощью команды tv_stoprecord. Чтобы автоматически заставить писать каждый матч как только SourceTV будет включен необходимо прописать tv_autorecord 1. Автоматически записанные демо-файлы будут сохраняться с именем даты и времени формата auto-YYYYMMDD-hhmm-map.dem. Клиенты SourceTV также могут записывать ход матча с SourceTV командой record, но при просмотре файлов они будут иметь формат обычного демо, то есть человек не сможет сменить вид камеры и переключиться с игрока на другого игрока в течение проигрывания демо.

Иногда может понадобиться использовать SourceTV только для записи демо, но не для показа и вещания через него матча. Для того чтобы отключить вещание через SourceTV необходимо уменьшить количество возможных зрителей до нуля командой tv_maxclients 0. Чтобы включить автозапись SourceTV на вашем сервере, добавьте эти строчки в ваш autoexec.cfg:

tv_enable 1
tv_autorecord 1
tv_maxclients 0

5. Консольные команды

tv_enable <0|1>
// активирует SourceTV на локальном игровом сервере, бот SourceTV появится в спектаторах при следующей смене карты.
tv_name <name>
// указывает имя SourceTV, которое появится в таблице счета и браузере серверов.
tv_maxclients <0.255>
// устанавливеат максимальное количество зрителей для данного SourceTV. (максимум 255, по умолчанию — 128).
tv_stop
// остановить трансляцию через SourceTV.
tv_status
// показать различную информацию по текущему SourceTV.
tv_retry
// перепоключает SourceTV на последний известный адрес (только для прокси серверов).
tv_delay <seconds>
// задержка трансляции SourceTV в секундах (только для мастер сервера).
tv_port <port>
// устанавливает порт для SourceTV (по умолчанию 27020).
tv_maxrate <bytes>
// установить максимально допустимую пропускную способность проводимую для одного клиента в байт/секунда (изначально 3500).
tv_password <password>
// установить пароль на SourceTV для подключающихся зрителей.
tv_relaypassword <password>
// установить пароль на подключение для прокси серверов.
tv_record <filename>
// начать запись SourceTV демо файла (только для мастер сервера).
tv_stoprecord
// остановить запись демо.
tv_autorecord <0|1>
// автоматически записывать каждую игру. Формат файла — auto-YYYYMMDD-hhmm-map.dem.
tv_debug <0|1>
// показывает дополнительную отладочную информацию.

6. Параметры запуска

Эти параметры запуска сервера нельзя изменить через консоль или rcon. Они необходимы для того, если вам понадобилось запретить возможности SourceTV на сервере.

srcds.exe … -nohltv
или
srcds.exe … -tvdisable

Команда ниже запрещает использовать SourceTV как передатчик информации на прокси сервера:

srcds.exe … -tvmasteronly

Заключение

SourceTV находится в процессе постоянного улучшения и доработки.