Pl/SourceTV

SourceTV - system oferujący możliwość oglądania gier na silniku przez teoretycznie nieograniczoną liczbę obserwatorów. Obserwatorzy będący na SourceTV są niewidoczni dla graczy ani nie mogą prowadzić z nimi żadnej interakcji. Transmisja jest zawsze opóźniona o pewien okres czasu. Jest to spowodowane tym, aby uniemożliwić przekazywanie użytecznych informacji graczom na temat ich przeciwników. SourceTV potrafi także nagrywać dema zawierające informacje każdego zdarzenia mającego miejsce na mapie.
Prowadzenie transmisji SourceTV dla kilku\kilkunastu obserwatorów jest stosunkowo proste, sprowadza się do wpisania jednej komendy na serwerze. Transmisje gdzie mają być tysiące obserwatorów wymagają już pewnego zaplanowania czasu, doświadczenia oraz sporego zaplecza technicznego (porządne łącza, szybkie procesory i dużo pamięci RAM).
==Obserwowanie Gier==
Aby oglądać grę przez SourceTV trzeba uruchomić Steam, wybrać opcję Serwery, kliknąć na zakładce Obserwuj. Po odświeżeniu się listy dostępnych serwerów trzeba kliknąć dwa razy na wybranej pozycji aby się połączyć.
Jeśli gdzieś została podana informacja na temat możliwości oglądania meczu za pomocą SourceTV, jest tam najprawdopodobniej podany adres IP serwera SourceTV (IP:Port). Aby połączyć się z tym serwerem można dodać go do zakładki Ulubione, przez wybranie opcji Dodaj IP serwera. Innym rozwiązaniem jest podłączenie się do serwera za pomocą konsoli w grze, w konsoli trzeba uzyć komendy connect. Na przykład:
 connect 192.168.130.42:27020
Standardowym portem SourceTV jest 27020, ale może zostać zmieniony. Jeśli port został ustawiony na inny należy go podać razem z adresem IP, w przeciwnym wypadku może to uniemożliwić podłączenie się z SourceTV.
==Transmisja Gier==
SourceTV nie jest już osobnym narzędziem jak HLTV, jest w pełni zintegrowany z silnikiem . Aby zacząć transmitować grę SourceTV musi zostać aktywowane przy pomocy komendy tv_enable 1 przed zmianą mapy. To stworzy serwer SourceTV, który będzie widoczny jako Bot będący w trybie obserwatora. SourceTV będące tym samym procesem co serwer gry nazywa się głównym serwerem (master server) SourceTV. Główny serwer SourceTV buforuje wszystkie zdarzenia oraz wysyła je z opóźnieniem zapobiegając oszustwom. Auto-Reżyser jest modułem, którego zadaniem jest pokazywanie najciekawszego zdarzenia. Dodatkowo obserwator może samemu kierować kamerą, unieważniając sterowanie kamerą przez Auto-Reżysera. Port SourceTV może zostać zmieniony za pomocą komendy tv_port.
Taka konfiguracja jest w miarę prosta, ale nadaje się tylko dla małej ilości obserwatorów. Dla większej ilości obserwatorów szybko wyczerpią się dostępne zasoby sprzętowe. Aby dystrybuować usługę dla dużej ilości obserwatorów wymagane są łącza o dużej przepustowości oraz szybkie procesory na wielu serwerach. Taką struktura jest możliwą dzięki łączeniu kilku serwerów SourceTV do serwera głównego SourceTV. Serwery podłączone do głównego serwera nazywają się serwerami pośredniczącymi (relay proxies). Serwery pośredniczące mogą się łączyć w strukturę drzewiastą i każdy z nich może pomieścić do 255 obserwatorów, w ten sposób można zbudować teoretycznie nieograniczoną ilość miejsc dla obserwatorów.
Aby ustawić serwer pośredniczący SourceTV trzeba uruchomić Serwer Dedykowany Source bez uruchamiania mapy. Komenda tv_relay łączy serwer pośredniczący z innym serwerem SourceTV. Poniżej przykład jak stworzyć serwer pośredniczący SourceTV:
 srcds.exe -game cstrike -console +tv_relay 127.0.0.2:27020
	
Status twojego lokalnego serwera pośredniczącego zawsze można sprawdzić wpisując komendę tv_status. Tutaj przykład użycia:
 --- SourceTV Status ---
 Online 05:08, FPS 253.8, Version 2841 (Win32)
 Master "SourceTV", delay 30
 Game Time 05:01, Mod "cstrike", Map "de_dust", Players 7
 Local IP 255.255.179.38:27020, KB/sec In 0.0, Out 0.0
 Local Slots 128, Spectators 8, Proxies 0
 Total Slots 128, Spectators 0, Proxies 0
Całkowita ilość miejsca dla obserwatorów jest sumą wszystkich podłączonych serwerów pośredniczących. Jeśli serwer pośredniczący straci połączenie z serwerem nadrzędnym można szybko podłączyć je na nowo używając komendy tv_retry. Aby zatrzymać nadawanie tzreba wpisać tv_stop.
==Widok z Kamery==
Widok z kamery w SourceTV jest zazwyczaj kontrolowany przez moduł Auto-reżysera. Jednakże jeśli gracz się połączy na serwer i wejdzie w tryb obserwatora będzie mógł zmieniać kamerę za pomocą przycisku UŻYJ (zazwyczaj 'E'). Będzie to skutkowało tym że wszyscy obserwatorzy patrzący się na niego będą widzieć tak jak on. Osoba sterująca kamerą może używać każdego dostępnego trybu podglądu (z oczy gracza, zza pleców gracza oraz wolna kamerę), zmieniać na dowolnego gracza. Tryb sterowania kamerą może zostać wyłączony przez ponowne użycie przycisku 'UŻYJ', wtedy kontrolę przejmuje Auto-Reżyser. Osoba obsługująca kamerę powinna mieć wiedzę na temat gry jak i praktycznego poruszania się kamerą zanim zacznie nadawać na żywo. Martwy gracz na trybie obserwatora nie może zostać operatorem kamery.
==Nagrywanie Gier==
Główny serwer SourceTV może nagrywać dema bez żadnych strat danych ani opóźnienia. Wszystkie wydarzenia są nagrywane a plik wynikowy może być odtworzony dokładnie jak zwykłe demo gracza (użyj demoui do otwarcia). Aby zacząć nagrywać demo wpierw trzeba uruchomić SourceTV, wtedy trzeba wpisać tv_record nazwadema. Nagrywanie dema zostanie zakończone gdy zakończy się mapa lub zostanie wpisana komenda tv_stoprecord. Do automatycznego nagrywania dem na każdej mapie trzeba ustawić tv_autorecord 1. Automatycznie nagrane dema zostają zapisane w momencie rozpoczęcia się mapy, nazwa dema zawiera nazwę mapy oraz datę i godzinę rozpoczęcia nagrywania (auto-YYYYMMDD-hhmm-map.dem). Obserwatorzy będący na SourceTV mogą także nagrywać dema używając komendy record, ale to będą normalne dema klienta.
Czasami można użyć SourceTV tylko i wyłącznie do nagrywania dem. Można wyłączyć nadawanie przez ograniczenie ilości slotów do zera (tv_maxclients 0). Aby ustawić automatyczne nagrywanie dem na serwerze trzeba dodać poniższe linie do autoexec.cfg:
 tv_enable 1
 tv_autorecord 1
 tv_maxclients 0
==Jak to zrobić... ==
;Uruchamianie serwera pośredniczącego na Windows bez Steam: Zainstaluj Serwer Dedykowany (srcds.exe) używając HldsUpdateTool, możesz go ściągnąć tutaj. Po instalacji serwera upewnij się że jest on w najnowszej wersji, jak robić uaktualnienie przeczytasz w pliku hldsupdatetool_readme.txt. To zajmuje sporo miejsca na dysku, ale jeśli chcesz uruchamiać tylko SourceTV możesz bez problemu skasować wszystkie modele, mapy, materiały oraz pliki dźwiękowe. Teraz możesz uruchomić SourceTV ez działającego Steam w tle.
;Zdalna kontrola serwera pośredniczącego: SourceTV obsługuje te same zdalne komendy (RCON) co normalny serwer SRCDS. Użyj "rcon_address <ip:port>" oraz "rcon_password <haslo>" aby dostać się do pożądanego serwera i wykonywać zdalne komendy za pomocą "rcon <komenda>", np. "rcon tv_status". Notka, domyślny port RCON to standardowy port serwera (zazwyczaj 27015) a nie port SourceTV.
==Komendy==
;tv_enable <0|1>
:Aktywuje SourceTV na lokalnym serwerze gry, SourceTV będzie aktywne dopiero po zmianie mapy.
;tv_name <nazwa>
:Ustawia nazwę SourceTV jaka będzie wyświetlana w przeglądarce serwerów oraz na tablicy wyników.
;tv_title <tekst>
:Ustawia nazwę SourceTV pokazywaną w grze.
;tv_maxclients <0..255> 
:Ustawia maksymalną ilość obserwatorów na SourceTV (default 128).
;tv_stop
:Zatrzymuje nadawanie zdarzeń przez SourceTV.
;tv_status
:Pokazuje informacje na temat SourceTV.
;tv_clients
:Pokazuje listę obserwatorów podłączonych do lokalnego serwera SourceTV.
;tv_msg <tekst>
:Wysyła wiadomość do wszystkich obserwatorów na SourceTV.
;tv_retry
:Ponawia połączenie do ostatniego znanego serwera (tylko serwery pośredniczące).
;tv_autoretry <0|1>
:Jeśli włączone SourceTV ponawia połączenia do ostatnio znanego serwera gdy komunikacja zostanie zerwana.
;tv_timeout <sekund>
:Ustawia czas nieaktywności połączenia po jakim SourceTV się rozłączy i spróbuje połączyć się ponownie.
;tv_delay <sekund>
:Czas opóźnienia pomiędzy tym co jest wyświetlane obserwatorom a tym co się dzieje na serwerze.
;tv_delaymapchange <0|1>
:Opóźnia zmianę mapy na serwerze dopóki reszta zbuforowanej gry nie zostanie odtworzona.
;tv_port <port>
:Ustawia port na którym pracuje SourceTV (standardowo 27020). Musi być parametrem startowym .
;tv_maxrate <bajtów>
:Ustawia maksymalną przepustowość przypadającą na obserwatora w bajtach/sekundę (standardowo 5000).
;tv_snapshotrate <n>
:Ustawia ilość zrzutów transmitowanych na sekundę przez SourceTV.
;tv_password <hasło>
:Ustawia hasło wymagane do podłączenia się obserwatorów.
;tv_relaypassword <hasło>
:Ustawia hasło wymagane do podłączenia się pośredniczących serwerów SourceTV.
;tv_relay <IP>
:Łączy SourceTV do innego serwera SourceTV.
;tv_record <nazwa pliku>
:Rozpoczyna nagrywanie dema SourceTV które nagrywa wszystkie zdarzenia na serwerze (tylko STV główne).
;tv_stoprecord
:Zatrzymuje nagrywanie dema.
;tv_autorecord <0|1>
:Automatycznie nagrywa każdą grę, nazwa dema jest w następującym formacie auto-YYYYMMDD-hhmm-map.dem
;tv_debug <0|1>
:Pokazuje wiadomości o debugu.
;tv_overrideroot <0|1>
:Nadpisuje adres IP serwera SourceTV adresem lokalnym obserwatora.
;tv_relayvoice <0|1>
:Jeśli włączone chat głosowy będzie transmitowany do obserwatorów.
;tv_transmitall <0|1>
:Standardowo informacje na temat zdarzeń nie pokazywanych przez auto-reżysera nie są transmitowane w celu oszczędzania łącza. Jeśli tv_transmitall jest włączone, wszystkie zdarzenia będą transmitowane a zużycie łącza się zwiększy.
;tv_chattimelimit <sekund>
:Ogranicza możliwość chatowania obserwatorów raz na 'n' sekund.
;tv_chatgroup <nazwa>
:Pozwala obserwatorom na wybranie odpowiedniej grupy chatu.
;tv_nochat <0|1>
:Wyłącza możliwość chatu na SourceTV.
;tv_allow_static_shots <0|1>
:Zezwala auto-reżyserowi na wybieranie stałych ujęć kamery.
;tv_allow_camera_man <0|1>
:Zezwala obserwatorom na serwerze gry na bycie reżyserami.
==Komendy Linii poleceń==
Te komendy nie mogą być używane za pomocą konsoli lub rcona. Są one przydatne jeśli chcesz ograniczyć możliwości SourceTV dla serwerów płatnych.
;-nohltv
;-tvdisable 
:Wyłącza możliwość postawienia SourceTV na serwerze
;-tvmasteronly
:Do SourceTV nie może się podłączyć pośredniczące SourceTV.