Küsi autorilt

Õpetused (cs1.6)

  Counter-Strike 1.6
   Teeme ise Steam serveri

   Kuna foorumis pole veel näinud õpetust, mis toob kasutajale puust ja punaselt ette kuidas teha Steami serverit, siis otsustasin teha sellejaoks õpetuse.
Kõik on iseenesest väga kerge. Kõige alguses peaksid sa teadma kas sinu internetiühendusel on lahtised või kinnised pordid. Seda tuleks küsida teenuspakkuja käest.
Elion Kodu ja Kodu2 inimestel on avatud ainult 113 port, mis tähendab, et server peab käima 113 pordi pealt!

1. Oletame, et sul on Steam olemas. Võtame alguses lahti Steami, ja siis ülevalt Tools ja kliki Dedicated Serveri peale 2 korda. Avaneb aken kus tuleb panna "Download and Install". Peale seda näitab ta informatsiooni palju antud programm võtab ja palju sul vabaruumi hetkel ketta peal on, lihtsalt klikime Next. Tuleb laadimine mis kestab paar sekundit, peale seda saad valida kas soovid oma töölauale otseteed failist Dedicated Server või mitte, see jäägu nüüd kasutaja otsustada.


2. Dedicated Server installitud, asume selle konfiguratsiooni juurde. Selleks klikkige 2 korda Dedicated Serveri peale Steamist, täpsemalt Tools alt. Edasi seadistage enda soovide järgi ära serveri konfiguratsioon.
>> Game - Sealt valid mängu millele sa soovid serverit teha.
>> Server Name - Serverinimi mis on nähtav Serverite nimekirjas.
>> Map - Kaart, mis käivitub siis kui server käima paned.
>> Network - Vastavalt sellele kas soovid teha serverit LANi või Interneti jaoks.
>> Max. players - Valid soovi järgi mitu mängijat saab sul serveris olla, mida rohkem mängijaid seda paremat internetiühendust on vaja, näiteks Elion Kodu3-ega on üleslaadimiskiiruseks 256kbit/s ja sama ka Starman Kodu kolmikpaketi puhul. Nii et 256kbit/s veab välja max. 8 mängijat, rohkema puhul tekib lihtsalt Lag.
>> UDP Port - Port mille pead avama ruuteris (Kehtib ainult sellepuhul kui omad jagatud internetti) Täpsema info saamiseks PS. Elion Kodu2 klientidel peab see port olema ilmtingimata 113! Teistel teenuspakkujatel võid valida suvalise pordi, soovitatav 27015. Kindlasti peaks ka olema antud port avatud Windows XP tulemüüris.
>> RCON Password - RCON parool, vajalik serveri kaugjuhtimiseks (Teiest arvutist läbi consooli paned järgmise mapi, kickid kedagi jne.)
>> Secure (Valve Anti-Cheat) - Sinna linnukesepanemine jääb sinu otsustada, kas tahad serverit turvata või mitte.
Peale seda klikkige: "Start Server"


3. Server käivitatud, vaatame mis seal siis on:
>> Main - Saad muuta serveri konfiguratsiooni (Seda mis oli enne serveri käivitumist)
>> Configure - Vähe keerulisem konfiguratsioon, laialaadsemate muutmisvõimalustega. Saad muuta algusraha, freezetime, kaua kaart kestab ja palju palju muud. Commande mida seal ei ole sisesta Serveri konsooli, ülevalt Console.
>> Statistic - Serveri statistika, palju inimese läbi käinud, cpu kasutus, ram kasutus, neti kasutus jms.
>> Players - Mängijad, kes hetkel sinu serveris viibivad, saad neid sealt bannida ja kickida.
>> Bans - Saad bannida/maha võtta inimesi. IP või Steam_id kujul.
>> Console - Serveri konsooliaken, kuhu käivad enamuskäske: mp_roundtime 1.75 jne.


4. Server on edukalt käivitatud. Vaatame IP lahtrisse Main akna all. Kui seal on 192.168.x.x või 10.0.x.x siis see tähendab et sinu interneti ühendus on jagatud ja sa pead hakkama porte suunama (Antud IP-d on sisevõrgu omad). Juhul aga kui sinu IP ei kattu eelmainitutega siis on sinu internetiühendus lahtine ehk jagamata (Kehtivad välisvõrgu IP-d).
Kuidas saada teada nüüd oma välis IP aadressit?
Sait nimega: http://www.whatismyip.org annab sulle sinu VÄLISvõrgu IP, mille läbi hakkavad kasutajad ka sinu serverisse ennast ühendama.

5. Oma välisvõrgu IP teadasaadud, proovime serverisse connectida . Selleks minge mängu ja kirjutage konsooli: teievälisvõrguip:27015 (Kodu2 kasutajad lõppu :113) Juhul kui ta ei hakka ühendama sinu serverisse, siis kontrolli üle 3 asja:
1. Kas sinu pordid on suunatud sinu sisevõrgu IP-le (Kehtib ainult jagatud ühenduse puhul)
2. Kas sisestasid konsooli välisvõrgu IP (Kehtib ainult jagatud ühenduse puhul)
3. Kas avasid tulemüüris 113 või 27015 pordi (Kehtib ainult Windows XP puhul)

6. Serveris sees. Mängid ja tahad mapi vahetada, selleks on 2 võimalust, kas paned mängu alla ja valid serveri konfiguratsioonist muu mapi või autoriseerid ennast RCONi heaks ära. Selleks sisesta konsooli: rcon_password salajaneparool . Kus salajaneparool on sinu parool mis sisestasid RCON parooliks ja kirjuta: rcon map de_dust2 . Sama on ka kicki puhul, rcon kick tallamaa . Kickib useri nimega tallamaa. Rohkemate käsudega teadasaamiseks vaata siia: http://griffinrun.com/support/rcon.shtml

Server peaks nüüd olema korras, kõik töötama ja funkama!
Juhul kui sulle ei meeldi teistele avaldada oma IP-d siis saad seda teha ka aadressikujul, selleks uuri: http://www.hot.ee/ftp6petus/dyndns/

 

Netcode Tweakimine

Päris paljudel on küsimusi enda ratede jms kohta. Siin on siis väike õpetus.







net_graph - 1 ja 3 (default: 0)



Abimees kogu tweakimise käigus! väärtus 1 on graafiline variant mis
näitab erinevat infot. Väärtus 2 lisab veel serverist saabunud
pakettide suuruse graafilise väljajoonistamise. Väärtus 3 on lihtne
ilma graafiliste elementidega info saamise võimalus







net_graphpos - 3 (default: 1)


Soovitav panna kah, paneb graafiku vasakusse alumisse nurka mis ei
sega HUD-i lugemist (konkreetselt by default satub just kohta kus on
järelejäänud raha hulk)







rate - 20000 (default: 2500)


Kontrollib pakettide kohale jõudmise kiirust serverist.
Püsiühenduse korral tasub panna nii kõrge kui võimalik, urban myth-i
kohasel on serveril rate maximum hardcoded 20000 seega rohkem pole vaja
panna. Modemi ja aeglaste ühenduste korral tuleb panna samuti nii kõrge
nii kaua kuni ping läheb lakke, ehket viimane suurim väärtus mil ping
korras oli.







cl_rate - 9999 (default: 9999)



Kontrollib kliendilt serverisse saadetud pakettide piirkiirust, soovitav jätta nagu on.







cl_updaterate - 60 (default: 20)


Kontrollib kui tihedalt serverist pakette vastu võetakse.
Tavaliselt võib selle rahulikult 100 panna kuna Eestis on tavaks, et
püsiühendus on a-sümmeetriline ja allalaadimis kiirus ehk download on
suurem. Seega võib ka see väärtus rahulikult suur olla. Kuid siin on
üks aga - serveri adminn peab olema muutnud ka serveris vastavat
väärtust ehk limiteeringut klientidele. By default on see 60, seega
enamikes serverites cl_updaterate üle 60 pole kasu.







cl_cmdrate - 110 (default: 30)


See command on vast kõige suurem valukoht üldse CS-is ning ka selle
tagajärjel on CS nagu ta on - kuulid lähevad läbi mehe ja paljud muud
anomaaliad. See asi kontrollib kui tihedalt saadetakse mängija ehk
kliendi poolelt pakette serverisse. Iga renderdatud frame-i kohta peaks
saatma välja ühe paketi. Seega tuleks cl_cmdrate panna sutsuke kõrgem
kui tavaline FPS (FPS tasuks limiteerida kuhugi). Minu puhul on fps 100
mis tähendab, et cl_cmdrate on 110. Muuseas, see väärtus võib olla suur
kui tahes kuid selle arvelt kasutatakse rohkem ühenduse upstreami,
seega võiks tähelepanelik olla ja mitte panna ulmeliselt suurt väärtust
(100 kui FPS on 50 kandis) mis sööb mõttetult upstreami bandwith-i ära
mis meie olustikus pole hea kuna ühendus on a-sümmeetriline enamasti ja
upstram on väike. Seda enam silmas pidada juhtusi kui teil on nett
jagatud ja tahate mitmekesi mängida koos interneti serverites. Selle
commandi tweakmisega on vast kõige rohkem tegemist.







cl_cmdbackup - 0 (default: 2)


Võimaldab meil mõned pool kilobaiti trafficut kokku hoida! Nimelt
tegemist on nn. backup pakettidega mis kaasa saadetakse mis aitab just
loss-iga ühenduse korral enamasti. Mina soovitaks see 0 panna kui teil
on korralik ühendus millel loss-i pole.







Kuidas net_graph 1 abil asju diagnoosida:


Ülemine roheline (normaalne olustik) graafik näitab serverist
tulnud pakette. Mida sirgem see graafik on seda parem. Kui on näha
punaseid poste graafikus näitab see packet lossi. Mina ei näe seda
kunagi kuna mu ühendus on korralik ja packet lossi pole praktiliselt
mitte kunagi kiiretes Eesti serverites. Kollased täpid, rohelise sees,
on aga choke mis tähendab kinni jäänud pakette mis tekivad erinevatel
põhjustel - ühenduskiirus liiga aeglane näiteks kliendi ja serveri
vahel (download), või on rate liiga madal mistõttu serveril ei õnnestu
pakette saata nii kiiresti kui vaja. Samuti on serveri sv_maxupdaterate
väiksem väärtus kui kliendi poolel. Choke on selline asi mida annab
praktiliselt ALATI eemaldada! Minul on see joon Gamelandi serveris
alati roheline ja enamuses ajast täiesti sirge. cool.hot.ee serverites
oli sama asja sees palju choket ehk kollast joont, ning roheline joon
kõikus, ilmselt siis midagi serveri configa






Alumine sinine joon aga näitab väljunud pakette ja infot. Kui te
märkate punaseid kriipse või isegi kogu joont sellisena kõige all siis
tuleb kindlasti cl_cmdrate väärtust tõsta kuna see näitab, et teie FPS
on kõrgem ning osade freimide info jääb saatmata kuna ei lubata
piisavalt kiiret pakettide saatmist. Ühesõnaga see joon olgu kah
võimalikult sirge ning punane lillakas joon samuti olgu olematu. Selge
see, et serveris see varieerub kuid serveri poolt on sisse tulnud
pakette võimatu kontrollida ja seega oleks abiks see panna ikka nagu
eelnevalt oli soovitatud ehk veidi rohkem kui FPS.







On veel mõned aspektid millest peaks rääkima:







cl_lc 1 (default: 1)


See on üks osa uuest Valve netcodest (tegelikult nüüdseks juba
päris vana) mis arvab serveris ette ära kuhu klient lasi. Näide sellise
netcode iseärasusest: Te lasete kedagi kes on mingi seina taga, te
strafe-ite seina ja ava vahel kus vastane on. Juhtub selline asi, et
vastane tapab teid maha kuid teile tundub nagu oleks vastane teid
tapnud just sel hetkel kui olite jälle seina taga - see on lag
compensation ehk kompenseerimine. Server arvutab välja sinu keskmise
pingi ning otsustab kas vastane tabas teid selle aja tagasi mis ping
teil oli. Kui on asi positiivne siis otsustab server et saite pihta
kuigi tegelikult olete juba jõudnud seina taha. Üsna keeruline ja
segane asi kuid seda peab ise mõistma. See command kontrollib kas seda
asja kasutatakse või mitte. Internetis on soovituslik ta peale jätta.
LAN-is samas võib selle väärtusega mängida ja uurida kuidas parem on.







cl_lw 1 või 0 (default: 1)


See command on kah üks asjadest mis tekitab igasugu vigureid ja
müstikat mängus. Te lasete vastast kuid kuulid ei lähe läbi on üks
näide. Tavaliselt on nii, et teie lasete kedagi - server seejärel saab
kätte ja ütleb "jah te lasite teda" ning seepeale näete, et relv teeb
oma tööd. See on osa uuest netcode-st ja by default nüüd on nii, et nii
nagu te lasete ka kohe relv reageerib - tegelikult see aga nii ei ole
kuna server peab siiski teadma kõike ja selle lahendamiseks kulub aega
ehk siis millisekundeid kuid see on nähtav siiski. cl_lw puhul on KÕIK
relva liikumine ning kuuliaugud ja veri mis vastasest tuleb suures osas
nö. virtuaalne!!! See lihtsalt on selleks, et mäng tunduks sujuvam ja
reaalsem. Tegelikkus on aga teine - proovige ise cl_lw 0 ning te
märkate, et kui lasete siis relv kohe ei reageeri ning samas on kuuli
augud seintes ka tegelikkus ja reaalselt sinna on kuulid läinud. Verd
lendab vastaselt samuti just siis kui olete talle pihta saanud 100%.


Soovitav panna 0 väga hea ühendusega (ping alla 10ms) ning samuti
LAN-s. Asi võib olla üsna kasulik kuid vajab ilmselt harjumist
mängimisel.







ex_interp 0.1 (default: 0.1)


Selle kohta oli siin ennem natuke väärinfot. Eniveis tuleks jätta
asi defaulti kuna lag compensation haarab ajapikkust 100ms ning kui
seda commandi muuta suuremaks või vähemaks kui default siis hakkab
tegeliku hitboxi ning selle mida ise näete, asukoht muutuma mis ei ole
hea. Et lag compensationist vabaneda tuleks see panna 0-i koos cl_lc ja
cl_lw-ga mis oleksid samuti 0 - ainult väga hea ühendusega.


UPDATE sellest on juba saanud kultuskäsk, on väljas videosi mis
näitavad mis on ex_interp 0 ja 0.1 vahe. Kuulduste järgi CS 1.6-s see
käsk nö. "külmutatakse".

Tasuta veebileht