Red Orchestra
(→Wielu adminów) |
(→Parametry główne) |
||
Linia 88: | Linia 88: | ||
===Parametry główne=== | ===Parametry główne=== | ||
*W tej sekcji mamy kontrolę parametrów serwera jak : | *W tej sekcji mamy kontrolę parametrów serwera jak : | ||
− | * AccessControlClass='''XAdmin.AccessControlIni | + | * AccessControlClass='''XAdmin.AccessControlIni''' - Rozszerzamy opcję tak aby działała funckja wielu adminów na serwerze, a nie tylko jeden - dlatego jest srednik na początku linii z AccessControlClass=Engine.AccessControl. |
** MaxPlayers=28 - ilość slotów | ** MaxPlayers=28 - ilość slotów | ||
** MaxSpectators=2 - ilość obserwatorów w grze | ** MaxSpectators=2 - ilość obserwatorów w grze |
Wersja z 14:55, 29 mar 2008
Spis treści |
Opis
Red Orchestra to gra typu FPS osadzona w realiach II Wojny Światowej, w której starano się wiernie oddać warunki gry. Aktualnie najnowsza wersja to Red Orchestra Ostfront 41-45. Gra jest oparta na silniku UnrealTournament 2004.
Więcej o niej na wikipedia:Red_Orchestra:_Ostfront_41-45
Linki
- Red Orchestra Ostfront 41-45 PL
- Strona o serwerach RO -a dokładniej Unreal'owych, bo gra jest bazowana na silniku Unreal'a
- Statystyki na WWW - aczkolwiek eksperymentalne.
- http://www.maporchestra.com/support-center/
Instalacja
Opisze tylko isntalke serwera dedykowanego. Jest podobna pod windows jak i linuksem. Bede bazował na wersji linuksowej.
Wymagania
- Dostep do SSH i odpalania procesu na screenie
- Pakiet compress (aby działała komenda uncompress)
- 1 GB wolnego na dysku
- Silny procesor i kupa ramu ;)
- Mózg i znajomoś angielskiego
Zasysanie plików
- Instalujemy Hldsupdatetool aż będzie działać komenda steam, aktualizujemy steam.
- wpisujemy w kosnoli komende do pobrania plików serwera
./steam -command update -game redorchestra -dir . -verify_all -retry
- W zależności do twojego łącza trochę poczekasz.
Skrypt startowy
- Zaczniemy od skryptu startowego alby zylo sie nam lepiej.
- Pod linuksem na screenie, najpierw robimy katalog UserLogs w podkatalogu z grą, tylko jak widzimy katalg Texture, Sounds, System i tak dalej to robimy
mkdir UserLogs
- Następnie w katalogu System robimy plik start do uruchamiania serwera (nie wskrzesza serwera po restarcie systemu, nie chiało mi sie grzebac).
- Można go zrobić programem notepad+ i wrzucić na serwer, ważne aby w trybie binarnym, oraz aby zapisać go w standardzie nowych linii linux/unix, a nie pc/winodws - chodzi o zakończenia linii jako LF a nie CR/LF
#!/bin/bash DATEFORMAT="%Y_%m_%d_%H_%M" LOGDIR="../UserLogs" EXTRA_PARAMS="RO-Konigsplatz.rom?game=ROEngine.ROTeamGame" #nowe ip #IP=62.21.98.148 #stare ip IP=62.21.96.14 PORT=7757 while [ true ]; do DATE=`date +$DATEFORMAT` echo "==============================================="; echo Server Starting in 10s, press CTRL+C to abort; echo ucc-bin server $EXTRA_PARAMS -log=$LOGDIR/$DATE.log --nohomedir multihome=$IP port=$PORT; sleep 10; echo "==============================================="; ./ucc-bin server $EXTRA_PARAMS -log=$LOGDIR/$DATE.log --nohomedir multihome=$IP port=$PORT; echo "==============================================="; done #
- Notka: pod linuksem piszemy
screen -S ro ./start
a nastepnie wciskamy ctrl+a+d. Przyłączenie sie z powrotem to screen -r ro
Konfiguracja
Podstawowa konfiguracja
- Uruchom serwer raz, niech załaduje mapę podziała z 5 minut, potem go wyłącz. Dzieki temu masz czystą konfigurację serwera - głównie chodzi o pliki system/*.ini - najlepiej skopiuj sobie je gdzieś w bezpieczne miejsce, w razie jakby coś poszło źle.
- Pamiętaj, żeby podmieniać pliki serwera przy wyłączonym serwerze, bo inaczje potrafi on je nadpisać przy wyłączaniu się albo zmianie mapy.
RedOrchestra.ini
- Plik ten zawiera właściwie wszystko co trzeba do konfiguracji serwera, z reszty plików korzystaja tak zwane mutatory, czyli dodatki które rozszerzają możliwości serwera.
- Co warto skonfigurować, znajdujie się w sekcjach jak niżej, przykład z serwera INEA. Jak czegoś nie rozumiesz to nie zmieniaj.
Nazwa serwera
[Engine.GameReplicationInfo] AdminEmail=wiciuu@op.pl AdminName=wiciu MessageOfTheDay=Strona serwera i forum: http://gry.inea.pl Zapraszamy! ServerName=[PL]INEA :: http://gry.inea.pl ServerRegion=3 ShortName=[INEA]RO:O @ gry.inea.pl
Administracja przez WWW
- Ustawiamy dostęp do kontroli administracyjnej przez WWW na porcie 8075.
[UWeb.WebServer] Applications[0]=xWebAdmin.UTServerAdmin ApplicationPaths[0]=/ServerAdmin Applications[1]=xWebAdmin.UTImageServer ApplicationPaths[1]=/images bEnabled=True ListenPort=8075
Parametry główne
- W tej sekcji mamy kontrolę parametrów serwera jak :
- AccessControlClass=XAdmin.AccessControlIni - Rozszerzamy opcję tak aby działała funckja wielu adminów na serwerze, a nie tylko jeden - dlatego jest srednik na początku linii z AccessControlClass=Engine.AccessControl.
- MaxPlayers=28 - ilość slotów
- MaxSpectators=2 - ilość obserwatorów w grze
- bNoBots=True - wyłączenie botów poprzez wartość True
- bEnableStatLogging=False - tego radzę nie zmieniac albo nie wejdziecie na serwer.
- Większość parametów można konfigurować przez WebAdmina jak odpalimy serwer.
[Engine.GameInfo] ;original, only one admin on server ;AccessControlClass=Engine.AccessControl ; mulitple admins on server below AccessControlClass=XAdmin.AccessControlIni AutoAim=0.000000 GameSpeed=1.000000 GameStatsClass=IpDrv.MasterServerGameStats GoalScore=0 GoreLevel=2 HUDType=Engine.Hud MaxIdleTime=300.0 MaxLives=0 MaxPlayers=28 MaxSpectators=2 NumMusicFiles=13 SecurityClass=UnrealGame.UnrealSecurity TimeLimit=30 VotingHandlerType=xVoting.xVotingHandler ;bAdminCanPause=False bAllowBehindView=False bAttractAlwaysFirstPerson=False bChangeLevels=True bEnableStatLogging=False bNoBots=True bStartUpLocked=False bVACSecured=True
- Oczywiście potrzeba podstawowego hasła aby się wbić na admina, nie podawaj go absolutnie nikomu, zmiany jak niżej
[Engine.AccessControl] AdminPassword=tutajtajnehaslo GamePassword= LoginDelaySeconds=200.000000 bBanByID=True IPPolicies=ACCEPT;*
Ponowny rozruch
- Wrzuć zmieniony RedOrchestra.ini na serwer, uruchom serwer na nowo, potem skieruj przeglądarkę na adres http://ip.twojego.serwera:8075/ServerAdmin i powineneś zobaczyć okno do logowania, w polu użytkownika wpisz admin a w polu hasło tutajtajnehaslo.
WebAdmin
- Pojawi ci się webadmin. Na lewo masz menu z różnymi akcjami, na górze masz główne kategorie:
- Current - aktualny stan serwera, widać w nim graczy, można zmienić aktualną mapę, pobawić się botami ia aktywować mutatory.
- Default - tam definujesz różne parametry serwera, w lewo masz menu z różnymi opcjami, takimi jak nazwa serwera , ilość slotów, hasła, parametry gry jak TK, balansowanie drużyn, ustawienie cyklu map, parametry do głosowania.
- Admins & Groups - definiujesz tam adminów.
- Najlepiej jak zapoznasz się z planszami i poczytasz, często jak najedziesz na jakiś tekst myszką to po chwili pokaże się dodatkowy opis.
- Notka co do adminów, najlepiej zdefiniować kilka grup użytkonwików, a potem ich tam dodawać i mozna jescze indywidualnie prawa przypisać.
Map Voting
Auto Open GUI
- Automatyczne otwieranie menu z głosowaniem na nastepna mapę na końcu rozgrywki. Wartości True albo False (odpowiednio Tak i Nie).
bAutoOpen - True or False. If true then the voting windows will be automatically opened at the end of each game. If False then the normal cycle maplist is used to select the next map. Players can initiat a Mid-Game vote only. They would have to open the voting window by pressing the MapVote HotKey. Default hotkey is the HOME key. This can be changed on the "Configuration" tab window. Default is True.
Accumulation Mode
- W tym trybie gracz ktorego mapa wygrywa w glosowaniu dostaje ekstra punkty do glosowania, punkty te przehcodza na nastepne glosowania. Punkty te nie sa punktami w grze. Czyli im czesciej wygrywa mapa na ktora glosujesz tym silniejszy i wazniejszy staje sie twoj glos. Jak nie wygra mapa na ktora glosujesz, to wtedy tracisz te punkty i zbierasz je od nowa.
"Accumulation Mode" can be used as extra setting for that, based on description it will sum the scores of several maps per player to use as amount of votes, for as long as their desired map wins. After that, they start to collect new bunch of votes from scratch.
Elimination Mode
- Wartosci True albo False, domyslnie False. Ustawienie na True powoduje, ze mapy wczesniej grane beda niedostepne w liscie do glosowania (wyszarzone beda) az do momentu kiedy zostanie N mapek dostepnych (wartosc N = wartosci zmiennej MinMapCount, o tym nizej ). Po kazdej mapie zwiekszany jest RepeatLimit. Dzieki Elimination mode mozna forsowac aby gracze po jakims czasie przestali grac w ciagle te same mapy, bo sie zaweza pole wyboru i w koncu musza wybrac jakiegos customa.
bEliminationMode - True or False, Default is False. Setting this to True will disable voting for previously played maps until there are only N enabled maps left in the map list. N is MinMapCount (see below). This is accomplished by incrementing the RepeatLimit after each game. You can use this mode to force players to play all the maps instead of just the popular ones.
Score Mode
- Wartosci True albo False. Domyslnie False (czyli Nie), Jesli sie ustawi na True to gracze zyskuja moc glosu na mape bazujac na ich wyniku punktacyjnego w grze - czyli im lepszy masz wynik punktacyjny tym bardziej decydujacy jest twoj glos. Punkty z gry przekladaja sie bezposrendnio na liczbe glosow na dana mape. Np masz 10 pkt na koncu mapy i zaglosujesz na ro-arad to system przyna 10pkt glosow na te mape.
bScoreMode - True or False, Default is False. Setting this to True will give players move votes based on their score. Example: At the end of a DeathMatch game you have 10 frags and then you vote for DM-Phobos2 then it will place 10 votes for DM-Phobos2.
Mid-Game Vote Percent
- Liczba procent głosów wszystkich graczy aby zmienić mapę w środku grania. Domyslnie 50. Ta opcja jest nieaktywna jeśli na serwerze jest tylko 2 graczy (no chyba że obaj zagłosują). Wartość 100 właściwie uniemożliwia przegłosowanie mapy ;)
MidGameVotePercent - A number between 1 and 100. The percentage of players that are required to vote before a Mid-Game vote is initated. Set to 100 to virtually disable Mid-Game voting by requiring all of the players to vote. Default is 50. Note: Mid-Game Voting is semi-disabled if there are only have 2 players unless both players vote.
Minimum Maps
- Definuje ile map ma zostac minimalnie w systemie glosowania na nastepna mape .Wartosc podina byc od 1 do liczby wszystkich map na serwerze. Zmienna dziala tylko kiedy jest aktywny tryb Elimination Mode - w momencie kiedy liczba map do glosowania skurczy sie do tej wartosci to nastepuje odblokwanie wszelkich wyszarzonych map.
MinMapCount - A numeric value from 1 to the total number of maps the server. This option is only applicable when bEliminationMode is set to True. It represents the minimum number of enabled maps that will trigger an Elimination Mode MapList Reset. Elimination Mode Maplist Reset is when the all of the maps in the maps list are reenabled for voting. (see bEliminationMode description also)
Repeat Limit
- Wartosc miedzy 0 a liczba wszystkich map na serwerze. Definuje liczbe gier po ilu mozna dopiero ponownie glosowac na dana mape (czyli przez ile nastepnych pa bedzie wyszarzona i niedostepna). Domyslnie 4. Upewnij sie ze ta wartosc jest mniejsza niz liczba map na serwerze! Dzieki tej opcji unika sie ciaglego glosowania na te same mapy.
RepeatLimit - A number between 0 and the total number of maps on the server. The number of games to disabe voting for a map after it has been played. Default is 4 Warning: Make sure the RepeatLimit is less than the total number of maps in the First GameConfig list.
ScoreBoard Delay
- Czas w sekudnach po jakim wyskakuje okienko do automatycznego głosowania po końcu rundy, daje szansę zobaczenia tabeli z wynikami ;). Domyślnie 10.
ScoreBoardDelay - A number between 1 and 500. The number of seconds to delay before automatically opening the voting window after the end of the current game is reached. This time is given to the players so that they can look at the score board. Default is 10.
Voting Time Limit
- Voting Time Limit - wartość miedzy 1 a 500. Liczba sekund przez którą można głosować na następną mapę na końcu rozgrywki aktualnej mapy albo poczas głosowania na mapę w czasie trwania rudny. Po tym czasie głosy są sumowane a mapa z najwyższą liczbą głosów wygrywa. Domyslnie 70.
VoteTimeLimit - A number between 1 and 500. The number of seconds to allow for voting at the end of the game or after a Mid-Game vote. After this time limit has been reached the votes are counted and the map with the highest score wins. Default is 70
Inne
- niestandardowe mapy
- http://wiki.beyondunreal.com/wiki/Importing_Sounds
- Kolorki
- Rezerwacja slotów
- UT extractor http://gms.cyberrock.net/products.php#utcacheextractor
http://theadminpage.planetunreal.gamespy.com/ConfiguringYourini.htm
Skrypty
Mutatory
- http://serverdev.beyondunreal.com/ IRCReporter czyli ScoreBot, dziala na poziomie wystarczajacym, dobry do logowania chatu z serwera
- http://www.tacticalgamer.com/red-orchestra-map-mod-development/ cale forum o mutatorach
Komendy
Akcja |
Komenda |
wyświetlanie listy graczy | listplayers |
zalogowanie jako admin na nick/ip/id z haslem | adminlogin <adminpassword> |
wylogowanie sie jako admin | adminlogout |
wykopanie danego gracza z nickiem | admin kick <playername> |
wykop z banem | admin kickban <playername> |
dodawanie liczby botow | admin addbots <liczba> |
wykopanie danej liczby botow z serwera | admin killbots <liczba> |
kompunikat na srodku ekranu | admin adminsay <message> |
zmiana mapy | admin switchlevel <RO-mapname.rom> |
Pobieranie map z WWW
Wymagania: serwer WWW z dostepem do niego przez FTP (aby wrzucic pliki), mozliwość edycji/podmiany pliku RedOrchestra.ini na serwerze gry.
- edytujemy RedOrchestra.ini, znajdujemy sekcje jak poniżej i edytujemy wg naszych parametrów RedirectToURL - zmieniamy na sieżkę pod jaką widać pliki na serwerze na WWW z mapami, teksturami itd. Reszty nie musimy stosować w 90% przypadków i ustawmiamy jak poniżej.
[IpDrv.HTTPDownload] RedirectToURL= http://3rd-pgd.com/redirect/ ProxyServerHost= ProxyServerPort=3128 UseCompression=True
- dalej znajdujemy w RedOrchestra.ini sekcję
[IpDrv.TcpNetDriver]
a w niej ustawiamy w takiej kolejności jak poniżej dwie linijki
DownloadManagers=IpDrv.HTTPDownload DownloadManagers=Engine.ChannelDownload
dodatkowo ustawiamy w tej sekcji poniższe zmienne jak niżej
AllowDownloads=True MaxDownloadSize=0
- wyłączamy serwer gry, wrzucamy z nadpisaniem nowy plik RedOrchestra.ini
- włączamy serwer
- na serwer WWW wrzucamy spakowane pliki map, tekstur itd.
Różne
Zmiana tickrate
ostatnia linia, zmienić z 20 na 35 (maksymalnie):
[IpDrv.TcpNetDriver] AllowDownloads=True ConnectionTimeout=20.0 InitialConnectTimeout=200.0 AckTimeout=1.0 KeepAliveTime=0.2 MaxClientRate=15000 MaxInternetClientRate=6000 SimLatency=0 RelevantTimeout=5.0 SpawnPrioritySeconds=1.0 ServerTravelPause=4.0 NetServerMaxTickRate=20
W grafice ważne, że bez graczy na serwerze ani bez zmian mapy - na razie nie wiem jak się serwer zachowuje po przemieleniu paru map z graczami - zobaczymy potem.
Kliknij na obrazku aby zobaczyć animację.
Rates
I have a 3mb/256kb connection - that's 3 megabits down and 256 kilobits up. I run a server called [U]The FragHouse ][[/U]. I probably have a biased opinion but most players say it's a very nice server. Configuration is key.
Client rate, from what I can tell, is measured exactly in bytes (or thousandths of kilobytes, but they're so close it doesn't matter). So let's do some math.
U - MAXIMUM Upload: 256kb = 32KB = 32768B P - Desired amount of Players: 8 C - MAXIMUM Client rate
Client Rate Formula: U / P = C 32768 / 8 = 4096
In this instance, the maximum client rate would be 4096. Though this is at the complete maximum, best effort. In a perfect world, connections would always be able to go up to their best effort; unfortunately, most connections can only reach about 95% of their best effort most of the time. For a 32KB upload, that's about 31KB upload, so let's redo some math.
31744 / 8 = 3968
Hmmm... 3968 bytes per second is okay for a standard (Team)DeathMatch - maybe CTF, BR, DOM. Onslaught, Assault, and Invasion game types are quite demanding. I would say an Invasion game would need at least 4500 bytes (give or take 100) per second per player; an Assault would need about the same, and an Onslaught would need at least 5000 bytes per second per player - if vehicles are added in, as they are in Onslaught, it's a safe measure to add 500 to the client rates.
So now, I'm running Invasion. I want to supply my players with a good enough connection so they do not lag and do not have to worry about anything but the game play. So let's change the formula up a bit. I want to find the maximum number of players I can have and still send out a reasonable amount to each player.
U - MAXIMUM Upload: 254kb = 31KB = 31744B C - MAXIMUM Client rate: 4600 P - Desired amount of Players
Formula: U / C = P 31744 / 4600 = 6.9
6.9 players, eh? Well, let's round down to 6, just to account for that reserved slot - when I have to get in - or for when I'm doing jazz via WebAdmin. If my brother wasn't obsessed with playing Star Wars Galaxies all the time, I could actually push the client rate up to 5000 and host completely fine.
In any case, try and use this formula for anything you need to know. For reference, bytes use intervals of 1024 (1024 Bytes = 1 KiloByte; 1024 KiloBytes = 1 MegaByte; 1024 MegaBytes = 1 GigaByte, etc.) and bits use intervals of 1000 (1000 bits = 1 kilobit; 1000 kilobits = 1 megabit; 1000 megabits = 1 gigabit). Also, a Byte is equal to 8 bits, so a KiloByte is equal to 8 kilobits. If you have also noticed, Byte intervals are expressed in capitals, while bit intervals are lowercased - it's just a good notation.
8kb (8000b) = 1KB (1024B) U - MAXIMUM Upload: kb = KB = B C - MAXIMUM Client rate P - Desired amount of Players
Player Formula: U / C = P Client-rate Formula: U / P = C