środa, 10 października 2012

Stawiamy dedykowany serwer Unreal Tournament 2004 na linuksie


UT2004 Logo



Wstęp


Post podzielony będzie na cztery części, mianowicie Serwer podstawowy, Konieczne(moim zdaniem) dodatki do serwera oraz Dodatkowe informacje - serwer i Dodatkowe informacje - ustawienia gracza(lokalne). Jak to w moim przypadku, piszę go właściwie dla siebie aby nie zapomnieć pewnych procedur - ale może komuś się jeszcze przyda.
Pierwsza część zawiera najbardziej podstawowe informacje o tym jak w ogóle sprawić aby cokolwiek waszego pojawiło się na liście serwerów w grze.

Drugi - opisuje procedurę dodania dodatków UT2Vote, UTComp i UTSecure.

Trzecia część to różnorakie przydatne mądrości dotyczące konfiguracji serwera UT2004.

Czwarta to to samo co trzeba tylko dla gracza pojedynczego tzn. że zmian dokonujemy w plikach konfiguracyjnych na naszym dysku twardym.


I. Serwer podstawowy


Rozumiem, że jeśli takie myśli chodzą Wam po głowie macie dostęp do jakiegoś serwera np. za pośrednictwem protokołów SSH i ewentualnie FTP, chociaż SSH będzie w zupełności wystarczające. Zaczynamy w katalogu domowym naszego użytkownika, od razu warto utworzyć sobie katalog na dane związane z serwerem, nazwijmy go "ut2k4_server":
mkdir ut2k4_server

Jako, że pracować będziemy w tym katalogu warto od razu do niego wejść:
cd ut2k4_server

Przede wszystkim należy pobrać paczkę z serwerem dedykowanym; proponuję skorzystać ze strony Unreal Admin i ich działu Downloads gdyż jest prosty i przyjemny i z pewnością nie raz tam zajrzycie jeśli interesuje was tematyka tej serii. Ale do rzeczy, pobieramy paczkę:
wget http://downloads.unrealadmin.org/UT2004/Server/dedicatedserver3339-bonuspack.zip

Następnie aktualizacja do wersji 3369. I tutaj kwestia zasadnicza, dla linuksów łatki na tą wersję(bo używać będziemy najzwyklejszej łatki do UT2004) wyszły dwie: 3369 i 3369-2, ta druga coś tam poprawiała w pierwszym wydaniu linuksowym wersji 3369 - nie pamiętam dokładnie o co chodziło. Was interesuje jej pierwsza wersja, dlatego też wydajemy polecenie:
wget http://downloads.unrealadmin.org/UT2004/Patches/Linux/ut2004-lnxpatch3369.tar.bz2

Osobiście, u siebie mam serwer wrzocony do katalogu ut2004 w katalogu ut2k4_server, tak więc:
unzip dedicatedserver3339-bonuspack.zip -d ut2004

Następnie wartałoby serwer zaktualizować, i tutaj magicznej komendy wypakowywania z zastępowaniem wam nie podam bo dla wygody robię to za pomocą Midnight Commandera(polecenie mc - ufam, że dalej już sobie poradzicie).
--------------------------------------------------------------------------------------------------------------------------------------

CD-KEY naszego serwera

Wymagany aby serwer był widoczny na liscie serwerów w grze, w przeciwnym razie gracze będą musieli podać jego IP jeśli będą chcieli się z nim połaczyć(co też nie jest tragiczne, można go dodać do ulubionych i już sobie tam będzie). Tak czy inaczej aby otrzymać klucz dla naszego serwera wchodzimy na:
http://www.unrealtournament.com/ut2004server/cdkey.php

Przechodzimy całą procedurę po czym otrzymany klucz zapisujemy w katalogu "System" pod nazwą "cdkey".
--------------------------------------------------------------------------------------------------------------------------------------

Jak uruchomić serwer?

Sprawa ponownie jest prosta, jeśli dla przykładu chcemy zacząć grać w trybie Deathmatch na mapie Curse4, wchodzimy do katalogu system, uruchamiamy ucc-bin-linux-amd64(dla maszyn 64-bitowych) lub ucc-bin(dla maszyn 32-bitowych) z odpowiednimi parametrami tj.:
ucc-bin-linux-amd64 server DM-Curse4?XGame.xDeathMatch -nohomedir -log=../logs/ucc.log &

Jak widać, tak postawiony server skorzysta również z opcji "nohomedir"(odsyłam do Google) oraz utworzy plik z logami w katalogu "logs" znajdującym się w głównym katalogu gry(radzę go utworzyć bo domyślnie go nie ma).

Natomiast jeśli do tego wszystkiego chcielibyśmy np. dodać jakiś mutator, dajmy na to Zoom Instagib(dla przykładu, akurat łatwiej sobie to sprawdzić jeśli mutator jest już w grze, tak jak ten - oszczędza Wam to instalacji dodatkowych rzeczy):
ucc-bin-linux-amd64 server DM-Curse4?XGame.xDeathMatch?mutator=XGame.MutZoomInstagib -nohomedir -log=../logs/ucc.log &

Ja dla przykładu zrobiłem sobie prosty skrypt w bashu o nazwie "start_server", wygląda on tak:
#!/bin/bash
cd ut2004/System

./ucc-bin-linux-amd64 server CTF-Maul?XGame.InstagibCTF?mutator=UT2Vote59.UT2VoteX -nohomedir -log=../logs/ucc.log &

Proste jak drut. Nie zapomnijcie tylko waszemu skryptowi nadać później uprawnień do wykonywania poleceniem:
chmod+x wasz_skrypt

Oczywiście spece robią dużo bardziej zaawansowane skrytpy obejmujące również automatyczne podnoszenie serwera jeśli padnie, ale ponownie odeślę Was po taką wiedzę do Google, tutaj tylko niezbędne podstawy.
--------------------------------------------------------------------------------------------------------------------------------------

Plik konfiguracyjny - UT2004.ini

Dokładnie, znajdujący się w oczywiście również w katalogu "System" przechowuje ustawienia naszego serwera, począwszy od nazwy, tego czy wymagane jest hasło aby do niego dołączyć, na różnych znacznie bardziej zaawansowanych rzeczach skończywszy. Nie będę tutaj opisywał tego co możemy w nim ustawić bowiem w tym pomaga Google, do tego nazwy opcji są bardzo przejrzyste.

Plik konfiguracyjny jeśli zamierzamy korzystać z mutatora UT2Vote

Pamiętajcie jednak, jeśli chcecie wyposażyć serwer w UT2Vote tak jak to było w moim przypadku możecie odpuścić sobie plik UT2004.ini bowiem ten mutator ma o sobie tak wysokie mniemanie, że niektóre ustawienai woli brać od siebie niż z głównego pliku konfiguracyjnego. Nawet tak naprawdę nie chodzi o odpuszczenie sobie pliku głównego ale co się da ustawiajcie w UT2Vote59.ini(dla wersji 59, ale podejrzewam, że nikt już nowej nie wypuści); a jeśli to nie da skutku, dopiero w UT2004.ini.

II. Konieczne(moim zdaniem) dodatki do serwera


Instalujemy mutatory - UT2Vote oraz UTComp 1.7a

Ktoś może zapytać, czemu nazywam te mutatory niezbędnymi? Już wyjaśniam, otóż grałem w życiu trochę w gry FPP/FPS i takie opcje jak BrightSkins(jasne skórki graczy) oraz Hit Sounds(dźwięk przy trafieniu przeciwnika) to dla mnie istotne części rozgrywki. BrightSkins pozwalają unikać camperów i czynią graczy lepiej widocznymi(to nie oszustwo a powszechnie stosowana praktyka - doświadczy tego każdy na serwerze), Hit Sounds natomiast po prostu osobiście lubię. Do tego UTComp dodaje kolorowe nicki(bajer ale fajny) i generalnie sam UTComp by wystarczył natomiast nie pozwala on głosować między graczami na mutatory, a to mnie wkurza - dlatego łączę go z UT2Vote59. Poza tym UTComp ma naprawdę świetny domyślny dźwięk przy trafieniu przeciwnika, sprawdźcie.

Dodam, że autor UT2Vote zrobił do niego jakiś mutator że są w nim BrightSkins i Hit Sounds ale to już jak wolicie, UTComp dodaje też nową tablicę punktów, statystyki celności z broni itd. Nie sprawdzałem tego drugiego ale mi UTComp po prostu w 100% odpowiada.

UT2Vote59

59 ponieważ jest to jego najnowsza na chwilę obecną wersja. Pobieramy pakiet(radzę utworzyć sobie jakiś osobny katalog na serwerze gdzie będziecie przechowywać paczki z mutatorami i ewentualnie modami) poleceniem:
wget http://www.proasm.com/files/ut/UT2Vote59.zip

Następnie do katalogu z naszym serwerem i podkatalogu System kopiujemy pliki:
UT2Vote59.int

UT2Vote59.ini

UT2Vote59.u

UT2Vote59.ucl

Natomiast do pliku konfiguracyjnego UT2004.ini, do działu [Engine.GameEngine] dopisujemy na końcu:
ServerPackages=UT2Vote59

Pamiętajmy, że podczas uruchamiania serwera należy dopisać taką część, analogicznie do przykładu kilka części wyżej:
?mutator=UT2Vote59.UT2VoteX

O ile dobrze pamiętam, funkcjonuje jeszcze ?mutator=UT2Vote59.UT2VoteXMulti, ale z tego co kojarzę stosuje się tą wersję tylko dla maszyn na których jest naraz więcej serwerów gier przy czym nie mam zupełnie pojęcia czy chodzi tylko o serwery UT2004 czy ogólnie serwery różnych gier.

UTComp 1.7a

U mnie konkretnie plik nazywał się utcomp17a_116, jeszcze czytałem o jakimś utcomp17a_3fix czy fix3 ale nie udało mi się go odnaleźć więc nie wiem tak naprawdę o co tam chodzi; być może jakaś drobna poprawka. Oczywiście pobierzcie sobie pakiet z UTComp z sieci, nie podaję linka bo o ile pamiętam ja znalazłem go dopiero na jakimś Game Froncie czy czymś takim więc kopiowałem potem przez FTP bo wget nie działał. Jak już macie pakiet to do katalogu System wrzucacie wszystkie pliki analogicznie z paczki tj.:
utcomp17a.u

utcomp17a.ucl

utcomp.int

Następnie w pliku UT2004.ini, dziale [Engine.GameEngine] dopisujemy:
ServerPackages=utcompv17a

Zaś grę uruchamiamy dodając:
?Mutator=utcompv17a.MutUTComp

Aktywowanie UTComp na serwerze działającym pod kontrolą UT2Vote

No właśnie, wtedy nie dopisujemy ?Mutator=utcompv17a.MutUTComp tylko otwieramy plik UT2Vote59.ini i szukamy linijki ServerMuts=, następnie zmieniamy ją aby wyglądała tak:
ServerMuts=utcompv17a.MutUTComp

I to wszystko.
--------------------------------------------------------------------------------------------------------------------------------------

Trochę bezpieczeństwa - UTSecure i AntiTCC

Sprawa jest taka, że do UT2004 są takie dwie alternatywy, nie znalazłem szybkiej odpowiedzi która z nich jest lepsza więc po najmniejszej linii oporu zaproponuję Wam instalację UTSecure z którego sam korzystam.

Skądś tam pobierzcie sobie pakiet z tym niezbędnikiem(ja już go pobierałem kawałek czasu temu i nawet nie pamiętam skąd), a następnie z paczki(moja to UTSecure2K4-111.zip) dorzucacie takie pliki analogicznie do katalogu System:
UTSecure2K4-111.ucl

UTSecure2K4-111.int

UTSecure2K4.ini (ten plik jak łatwo się domyśleć zawiera zaawansowane ustawienia tego mutatora, można się nimi pobawić wedle uznania)

UTSecure2K4-111.u

Do pliku UT2004.ini dopisujemy w [Engine.GameEngine]:
ServerPackages=UTSecure2K4-111
ServerActors=UTSecure2K4-111.UTSecureServerActor

I cała filozofia. W przypadku UTSecure nie dopisywałem nic do Ut2Vote59.ini i wszystko śmiga.
--------------------------------------------------------------------------------------------------------------------------------------

Adminie - oszczędź sobie roboty

Jak już będziecie mieli tak bazowo ustawiony serwer radzę zrobić backup, ja po ustawieniu razem Patch3369 + Ut2Vote + UTComp + UTSecure, mając serwer w katalogu ut2004 wydałem polecenie:
tar cjspf ut2k4_ut2vote_utcomp_utsecure-111.tar.bz2 ut2004

Aby mieć gotową paczkę jakbym coś namieszał i chciał móc szybko ustawić szybką bazę do użytku. Mam nadzieję, że ten krótki poradnik się komuś przyda.

III. Dodatkowe informacje - serwer


Tryb Instagib CTF jako domyślny dla serwera działającego pod U2Vote59

Tak jest, jest to zdecydowanie mój ulubiony tryb gry natomiast miałem parę problemow w przypadku UT2Vote. Otóż tak, sprecyzowanie mapy i trybu gry dla tego mutatora znaczyło niewiele, co należało zrobić, oczywiście ustawić wszystko w pliku UT2Vote59.ini.

Wybieranie domyślnego trybu gry na serwer w przypadku UT2Vote

Tryb gry wybieracie sobie inaczej niż w przypadku przypisywania go komendzie za pomocą której uruchamiacie serwer. Tzn. używamy innych, "normalniejszych" nazw - zobaczycie że to proste. Przede wszystkim co nas będzie interesować, dział [UT2Vote59.UT2VoteConfigs] i linijka:
DefaultGameName=Capture the Flag (przynajmniej ja miałem domyślnie CTF tutaj)

Zastanawiałem się natomiast skąd wziąć nazwy trybów dla UT2Vote, okazało się że są wypisane niżej w dziale [UT2Vote59.UT2VoteGameTypes]. Okazało się też coś jeszcze, że w tym dziale każdy tryb ma ustawienia jak limit czasu, punktów itp. - a to mi się już bardzo podoba. Tak więc chcąc grać na czystym iCTF piszemy po prostu:
DefaultGameName=Instagib CTF

Wszystko gra i buczy tylko tak, nie miałem translocatora i zooma - a chciałem.

Robimy translocator w trybie iCTF pod UT2Vote

Translocator rozwiązał się prosto, po prostu w pliku UT2004.ini dodałem sobie dział [XGame.InstagibCTF] i analogicznie jak to jest w dziale [XGame.xCTFGame] dopisałem sobie tam:
bAllowTrans=True

Wiem, że tam gdzie UT2Vote59 ma tryby gry w pliku .ini jest napisane też ?Translocator=True. Najwyraźniej nie ma to dla tego mutatora znaczenia; jak pisałem, używając UT2Vote musimy liczyć się z tym, że administrujemy teraz serwerem w dwóch plikach - UT2004.ini i UT2Vote59.ini.

Robimy zooma w trybie iCTF pod UT2Vote(dodajemy nowy tryb gry - Zoom iCTF!)

Ok, ale brak zooma jeszcze trzeba zrobić; zauważcie, że tak naprawdę nic nie stoi na przeszkodzie aby dodać własny tryb gry - tak też zrobimy. Skopiujcie sobie tryb "Instagib CTF", całą linijkę. Teraz nazwę zmieńcie na "Zoom iCTF" i oczywiście jeszcze wrócimy do linijki:
DefaultGameName=Instagib CTF

którą zmieniacie na:
DefaultGameName=Zoom iCTF

I teraz tak, nie możemy w linijce tego trybu zostawić:
GameClass="XGame.InstagibCTF"

Znaczy możemy, ale jeśli dodacie do niej w mutatorach(też w tej samej linijce) mutator XGame.MutZoomInstaGib, nie będzie działał - sprawdzałem. Może dwukrotne ustawienie Instagiba się gryzie, nie wiem tego; grunt, że nie działa. Dlatego skopiujmy sobie tryb gry ze zwykłego CTF, tak aby wpis GameClass= dla waszego trybu "Zoom iCTF" wyglądał następująco:
GameClass="XGame.xCTFGame"

Teraz działa! Translocator oczywiście też będzie bo w pliku UT2004.ini już było dopisane bAllowTrans=True dla trybu gry XGame.xCTFGame - czyli tego na bazie którego stworzyliśmy swój tryb Zoom iCTF dla Ut2Vote. Dodatkowo możecie szybko zmieniać sobie teraz tryb gry między Instagib CTF i Zoom iCTF, fajne, prawda?
--------------------------------------------------------------------------------------------------------------------------------------

Różne opcje Bright Skins(jasne skórki) dla graczy w UTComp 1.7a

No właśnie, domyślnie ustawione są te domyślne dla mutator, mające identyfikator "3", aby jednak wybrać np. opcję "Brighter Epic Style" wystarczy że w pliku UT2004.ini w sekcji "[utcompv17a.MutUTComp]" znajdziemy wpis "EnableBrightSkinsMode=" i uzupełnimy go w następujący sposób:
EnableBrightSkinsMode=2

--------------------------------------------------------------------------------------------------------------------------------------

Dostosowanie Hit Sounds w UTComp 1.7a

Domyślnie w przypadku tego mutatora dźwięki słyszalne przy trafieniu przeciwnika usłyszymy tylko jeśli widzimy trafienie, jest to stan tzw. "Line of Sight". Osobiście wolę jednak abym słuszał dźwięk nawet wtedy jeśli np. trafię przeciwnika za ścianą czy jakimś winklem; należy wtedy przełączyć się na "Everywhere". Aby tego dokonać podobnie jak wyżej, w pliku UT2004.ini, w sekcji "[utcompv17a.MutUTComp]" zmieniamy wpis; tym razem "EnableHitSoundsMode=" aby wyglądał w następujący sposób:
EnableHitSoundsMode=2

--------------------------------------------------------------------------------------------------------------------------------------

Automatyczne nagrywanie dem na serwerze - UTComp 1.7a

Tak, jest taka możliwość; wystarczy, że wejdziemy w plik UT2004.ini w którym jak się domyślam, macie już utworzoną sekcję "[utcompv17a.MutUTComp]". W tej sekcji szukamy czegoś takiego jak "bEnableAutoDemoRec=" i ustawiamy to na:
bEnableAutoDemoRec=True

IV. Dodatkowe informacje - ustawienia gracza(lokalne)


Zegarek w grze?

Możliwe, pamiętam, że bardzo mi się coś takiego porobało w modzie do Quake 3 Arena - OSP. Jeśli mamy UT2Vote możemy osiągnąć to wchodząc tym razem w ustawienia lokalne. Tam gdzie instalowaliście grę otwieracie User.ini(w katalogu System oczywiście) i w dziale "[UT2Vote59.UT2VoteClient]"(dział pojawi się jak sądze, jeśli chociaż raz połączycie się z serwerem pracującym z UT2Vote) należy posiadać linijkę:
bDisplayTime=True

--------------------------------------------------------------------------------------------------------------------------------------

Nie wykluczam, że post będzie aktualizowany.

Brak komentarzy:

Prześlij komentarz

Kompilacja Fluxbox 1.3.7 kompilatorem C++ 17 (GCC 11)

Po aktualizacji systemu jakiś czas temu okazało się, że posiadając nową wersję gcc w systemie nie byłem w stanie poprawnie skompilować Fluxb...