QuakeWorld Guide For Advanced Newbies

Viz také QuakeWorld Guide For Newbies.

Poslední aktualizace : 12.11.2005, verze 1.1

Obsah

  1. Security module
  2. Observing - sledování zápasů
  3. Kvalita připojení
    1. Nastavení klienta
    2. Qizmo
      1. Komprese
      2. Ořezávání dat
      3. Routing - směrování
      4. Opakování packetů
  4. Skripty
  5. QuakeWorld Klienti

Security module

Jelikož všechny QuakeWorld klienty jsou a vždy budou (díky GNU/GPL licenci) Open Source, je velmi snadné si stáhnout zdrojové kódy klienta, přidat si do něj jakékoliv cheaty a vesele s ním hrát. Aby se tomuto zabránilo, obsahuje většina moderních klientů tzv. Security module, což je součást klienta, ke které většinou (není to nutnost) nejsou zdrojové kódy k dispozici, a ta zajišťuje ověření pravosti vašeho klienta.
Vy nemusíte udělat nic víc, než stáhnout příslušný Security module ze stránek vašeho klienta a uložit ho do vaší Quake složky.

Takové ověření pak probíhá napsáním tohoto příkazu:

f_version

Ve skutečnosti se nejedná ani tak o příkaz, jako spíše veřejnou výzvu odeslanou ostatním klientům, aby o sobě řekli něco, co ostatním pomůže zjistit, co jsou zač. Obvykle tato odpověď obsahuje název klienta, jeho verzi a tzv. hash. Hash je většinou směsice písmen a číslic, kterou ani většinou neuvidíte, protože váš klient má přednastaveno aby ji zbytečně nezobrazoval, ale sám si ji přečte. Je to totiž ta část odpovědi, pomocí které si váš klient ve spolupráci s vašim bezpečnostním modulem ověří, že klient, který zaslal onu odpověď, je pravý. Pokuď toto ověření selže, váš klient to zjistí a nahlásí vám to. Zde ovšem záleží, jak máte svého klienta nastaveného, většinou je toto ověření nutné provést tímto příkazem:

validate_clients

Aby se vše zde uvedené provádělo automaticky, nastavte tyto hodnoty proměnných:

auth_warninvalid 1
auth_validate 1
auth_viewcrc 0

Pokud si chcete být opravdu jistí, nezapomeňte používat f_version a validate_clients při každém novém připojení hráče na server a při každé změně mapy.
Současná situace je taková, že v soutěžích jsou povoleny dva až tři typy klientů, z nichž každý má svůj vlastní security module, takže klienti s růžnými klienty se nemohou navzájem ověřit.

Naštěstí různí cheateři se QuakeWorldu stále vyhýbají, takže pokud nemáte security module, většinou si bez problémů zahrajete. Můžete být ale trochu překvapení, co se stane po napsání tohoto příkazu:

f_modified

Váš klient totiž vypíše hlášení, že máte velkou spoustu modifikovaných modelů (grafické objekty ve hře), což většinou není pravda. Je to jen důsledek toho, že nemáte security module a váš klient nemůže ověřit, jestli jste si nějaké modely nemodifikovali, tak je všechny nahlásí.

Qizmo a observing

Jak sledovat hru jako spectator již bylo řečeno v části Připojení na internetový server. Také jsme si řekli, jak sledovat zápasy pomocí QTV.

Třetí způsob, jak sledovat zápasy je prostřednictvím Qizmo proxy.

  1. V první řadě je potřeba vědět, kde hra probíhá. Budeme rádi, když se s českou QuakeWorld komunitou budete scházet na QuakeNetu na kanále #qw.cz. Zde se dozvíte buďto z topicu anebo od bota [ServeMe], kdy a kde se hraje jaká důležitá hra. Na takové zprávě vás zajíma, kam se připojit, což vypadá například "NQR finals tonight @ 20:00, ]SR[ vs FS, cams @ vrr.itam.cas.cz:44444" - a odtud je zřejmé, že zápas můžete sledovat například na adrese vrr.itam.cas.cz:44444
  2. Spustíte tedy klienta a zadáte connect vrr.itam.cas.cz:44444. Měli byste před sebou mít asi takovouhle obrazovku. V menu se můžete pohybovat šipkama.
  3. Nyní je potřeba najít hráče, který zprostředkovává zápas a připojit se na něj. Pod položkou "Client list" jsou dvě podstatné záložky, a to "follow" a "observe". Pokud už je připojena spousta dalších hráčů (což u velkých zápasů bývá), stačí ve "follow" vybrat jakéhokoliv, který má u sebe napsáno např. obs. cam-sr-vs-fs. To znamená, že cam-sr-vs-fs je nick hráče, který „zprostředkovává“ přenos hry až k vám. Takže buď na záložce Follow vyberete kohokoliv jiného (kdo už na zápas přes prostředníka kouká) a budete tak na tohoto prostředníka přesměrováni, nebo ho můžete na záložce Observe vyhledat a sami jej zvolit
  4. Sledujte zápas, fanděte, ale s mírou, nefloodujte.

Kvalita připojení

Nastavní klienta

Pokud máte slabší připojení k internetu (např. dial-up modem, různá sdílená a agregovaná připojení, bezdrát, ...), může se vám hra neskutečně trhat, pokud nenastavíte správně hodnoty ovlivňující síťový provoz. V ezQuake jsou to tyto proměnné:

rate 5670
cl_maxfps 72
cl_c2spps 0
cl_c2simpulsebackup 3

Zde uvedené hodnoty jsou základní (default) hodnoty.

rate
Nastavuje nejvyšší množství bajtů za sekundu, jež povolíte serveru vám posílat. Pokud je nejvyšší rychlost stahování (download) vaší linky příliš malá a server by posílal data větší rychlostí, vaše linka se vždy na nějaký okamžik zahltí daty a začne příchozí data odmítat. Pokud správně nastavíte rate, zabráníte tím zahlcování linky. Pokud rate omezíte příliš, server bude ořezávat zbytečně mnoho dat a hra bude hůře hratelná.
Ideál je tedy mít linku s co největším downloadem a mít rate nastaveno co nejvyšší. Objem příchozích dat se obvykle nedostane přes 10 KB/s. Při duelech se pohybuje obvykle kolem 5 KB/s.
cl_maxfps
Nastavuje nejvyšší možný počet zobrazených snímků za vteřinu. Jak to souvisí se síťovým provozem? Informace o změně stavu mezi každým snímkem je totiž přenášena z vašeho klienta na server. A proto, pokud rychlost odchozích dat vaší linky (upload) je malá a nezvládá tolik dat, kolik klient posílá, dochází ke stejnému jevu, jako byl popsán u rate, pouze v opačném směru. Takže snížením hodnoty téhle proměnné můžete zabránit zahlcování své linky, ale zároveň s každým snížením bude obraz více trhaný. Čím více FPS (Frames Per Second), tím lépe. Objem odchozích dat se v QW málokdy dostane přes 4 KB/s. Většina serverů vám nepovolí posílat více než 72 snímků za sekundu. Rovněž fyzika hry se s vyššími FPS začíná trochu měnit, nemá proto moc velký smysl nastavovat tuto proměnnou na hodnotu vyšší než 72, případně 77. Klient ezQuake podporuje fyziku hry nezávislou na počtu FPS, to je ale už mimo tento návod, více viz ezQuake independent physics.
cl_c2spps
Jelikož není moc příjemné, když vaše pomalá linka ovlivňuje počet zobrazovaných snímků za sekundu, obsahuje většina klientů ještě tuhle proměnnou. (V MQWCL je proměnná s obdobným významem s názvem cl_netlimit.) Je to počet snímků za vteřinu, které ve skutečnosti budou přeneseny z klienta na server, tedy stejné nastavení jako předchozí cl_maxfps s tím rozdílem, že toto se nepromítá do skutečně zobrazovaných snímků za sekundu. Klient rovnou ořezává data tak, aby skutečně odesílal jen tolik snímků za sekundu, kolik jste nastavili touto proměnnou.
Pokud nastavíte hodnotu této proměnné na 0, k žádnému ořezávání nebude docházet.
cl_c2simpulsebackup
Jednou z nejhorších věci při hraní na lince, na které dochází k velkým ztrátám packetů (packetloss, PL), je to, že se špatně přepínají zbraně, protože občas dojde ke ztrátě packetu s informací o přepnutí zbraně. Tato proměnná řekne klientovi, kolikrát má packet s takovou informací zopakovat. Takže pokud například nastavíte tuto proměnnou na hodnotu 3, a změníte ve hře zbraň, klient za vás pro jistotu zbraň změní třikrát.

Pokud budete s těmito hodnotami experimentovat, nezapomeňte tak činit během hry. Když jste na serveru sami a nepohybujete se, ani nestřílíte, objem odchozích i příchozích dat je několikanásobně menší, než při hře.

Tím možnosti zlepšování kvality vašeho připojení ale zdaleka nekončí.

Qizmo proxy

Qizmo je proxy program. To znamená, že můžete se serverem komunikovat jeho prostřednictvím - připojíte se na proxy, proxy se připojí na server a veškerá komunikace probíhá skrz proxy.
Jak toho využít? Mnoha způsoby.

Jak říct vašemu Qizmu, aby se připojilo na nějaký server? Jednoduše, použijete také příkaz connect, ale dáte před něj tečku, tím tento příkaz dostane Qizmo a ne váš klient.

.connect vrr.itam.cas.cz:27500

Tím se přes vaše Qizmo připojíte na QW server Lamička. Když říkám "Vaše Qizmo", myslím to Qizmo, ke kterému jste přímo připojení. To může být buď Qizmo, které máte spuštěné u sebe na svém počítači, nebo Qizmo někde v internetu. Aby to nebylo tak jednoduché, můžete se totiž přes Qizmo připojit na nějaké další Qizmo. Buďte ale bez obav, tím to obvykle končí a nemá většinou velký smysl se připojovat přes více než dvě Qizma. Takže vůbec nejsložitější situace, jaká může nastat, je tato:
klient -> qizmo1 -> qizmo2 -> server

Druhé Qizmo se ovládá příkazy začínajícími čárkou. Příkazy pro první Qizmo začínají tečkou. Nyní již víte, jak kompletně ovládat Qizmo, takže si pojďme říct, jak toho využít ke zlepšování kvality připojení.

Směrování - routing

Pokud se připojujete k nějakému serveru daleko v zahraničí, není vůbec jasné, že cesta, kterou budou procházet vaše data, je ta nejlepší možná. Pokud jste připojení na zahraniční server, kde váš ping je o víc než 40 ms vyšší než nejnižší ping, jaký jste schopni mít na nějakém domácím serveru, je velmi pravděpodobné, že routouvání Qizmem vám pomůže.

Je asi jasné, co se směrováním myslí. Nepřipojíte se přímo na kýžený server, ale nejprve na nějaké Qizmo, obvykle někde v zemi na půlce trasy, a poté přes toto Qizmo na onen server.

Z Česka se obvykle routuje přes Qizmo serveru Splatterfest (62.26.123.23:27501). Pro připojení do Polska nebo Finska se potom používají ještě jiná Qizma, ale situace se velmi často mění, podle toho jak je zrovna kde nastavená nějaká hlavní linka, takže uvádět zde nějaké další adresy je zbytečné.

Komprese dat

Qizmo umožňuje komprimovat data přenášená mezi dvěma Qizmy. Musíte tedy být připojení aspoň přes dvě Qizma, abyste kompresi mohli zapnout a využít. Různé stupňe komprese zapnete jedním z těchto příkazů:

ezcomp
ezcomp2
ezcomp3

Čím horší je kvalita vašeho připojení, tím menší stupeň komprese používejte! Pokud na vaší lince dochází k ztrátám dat (packetloss, PL), rozhodně nepoužívejte nic jiného než ezcomp, při použití ezcomp2 nebo ezcomp3 by se kvalita připojení ještě více zhoršila!

Naopak, pokud vaše linka je kvalitní a žádný PL nemá, zkuste ezcomp2. S ezcomp3 se vyplatí před použitím hodně experimentovat.

Ořezávání dat

Data posílaná serverem obsahují některé informace, které ve hře moc nevyužijete. Proto pokud máte pomalou linku, můžete Qizmo využít k osekání dat přicházejících z internetu o nepotřebné informace.

Obvykle se tedy nejprve budete chtít připojit na nějaké Qizmo, které je ve velké blízkosti serveru, na kterém chcete hrát, a na tomto Qizmu navštívíte v menu položku FPS Settings.
Zde jsou volby dvojího typu. Jednak trochu mění vzhled hry (např. různé typy vůbuchů), ale některé změny s sebou přinášejí i ono kýžené ořezávání zbytečných dat. Například při zapnutí položky Gib filter se vám nejenže přestanou vykreslovat fragnuté postavičky hráčů, nebo při fragování jejich rozlétávající se kousky ;-), ale data s těmito efekty vám vůbec nebudou posílána. A to je to, co potřebujete. Obdobně výraznou úsporu přináší zapnutí Nail filteru atp. Ostatní položky můžou rovněž přinést nějaké zlepšení, ale spíše ne tak výrazné jako dvě výše zmíněné.

Opakování packetů

Pokud vaše linka ztrácí hodně dat (má packetloss, neboli PL), můžete si Qizmem nechat ze serveru zasílat každý packet několikrát. Stejně tak, pokud jsou i vaše odchozí data zatížena vysokou ztrátovostí, můžete i vašemu domácímu Qizmu říci, aby každý packet posílalo vícekrát.
Obvykle tedy budete chtít být připojení přes dvě Qizma, jedno na vašem počítači, druhé někde blízko serveru, na kterém chcete hrát. V menu Qizma pak navštívíte položku Data compression (kde se mimojiné nachází detailnější nastavení komprese dat, probírané výše) a na vašem domácím Qizmu budete měnit na záložce 'C2S' (Client to Server) a na druhém Qizmu na záložce 'S2C' (Server to Client) hodnoty položky 'Send each packet:' z 'once' na 'twice', případně 'thrice'. Význam této položky je zřejmý z jejího názvu a názvů jejích hodnot.

S použitím všech zmíněných technik zlepšení kvality připojení je QuakeWorld hratelný i na dost pomalých a nekvalitních linkách.

Skripty

Pozn.: Tato část manuálu se bude ještě rozšiřovat.

Na jednoduché hry 1on1 (tzv. duely) a FFA (všichni proti všem) nepotřebujete žádná zvláštní nastavení. Vše se dá dohledat v menu nebo je již přednastaveno. Pozn.: K původní (default) konfiguraci se vrátíte příkazem:

cfg_reset

Ale už pro týmové hry je zapotřebí mít nějakou sadu týmových hlášek. Rovněž se hodí mít trochu lepší nastavení zbraní, aby vám v ruce nezůstával raketomet, když vás soupeř dostane.

Soubor s nastaveními - config - se liší u každého hráče. Hlavní příčinou nevelké rozšířenosti Quaka je hlavně složitost vyladění jeho nastavení. Profesionální hráč zná význam mnoha parametrů a příkazů, které klient podporuje. Začněte třeba tím, že otevřete svůj user-config (Quake\ezquake\configs\jmeno.cfg) a zároveň dokumentaci a budete procházet příkaz po příkazu, testovat, zkoušet, vylaďovat, atd... Výsledek tohohle snažení bude váš vlastní config s předprogramovanými příkazy, např.:

Můžete rovněž nabrat inspiraci v jiných konfiguračních souborech: Centrála konfiguračních souborů

Přepínání zbraní je klasickou ukázkou toho, kdy je třeba umět tvořit vlastní konfigurační soubory, configy. V Quake (Q2 i Q3A) pro to slouží dvě základní konstrukce - bind a alias. Pomocí bind "klávesa" "příkaz" ovládáme přiřazení příkazů na jednotlivé klávesy a pomocí alias "vlastní příkaz" "příkaz 1;příkaz 2;příkaz 3; ..." v Quake „vytváříme“ naše vlastní příkazy.

bind "q" "impulse 7 6 3 2 1"

bind "e" "smailik"
alias "smailik" "say :-) hehe"

První řádek tohoto příkladu ukazuje nejjednodušší možné naprogramování volby zbraně. Zkušenější hráči používají mírně složitější script, než je tento, který zaručuje, že vaše postava v Quake má v ruce boomstick, a teprve až zmáčknete tlačítko pro střelbu, přepne se vámi požadovaná zbraň, vystřelí, a přepne zpátky na boomstick.
Další dva řádky jsou ukázkou velmi jednoduchého aliasu - tyhle dva řádky by se daly nahradit jedním jediným - a to bind "e" "say :-) hehe" a výsledná funkce by zůstala stejná.

O scriptování by se toho dalo napsat ještě hodně, ale to není předmětem tohodle návodu. Navíc, tyhle věci si každý zkušený hráč musí vyzkoušet sám. Mnoho inspirace získáte, když si projdete configy jiných hráčů - velkou spoustu jich najdete na stránkách klanů u jednotlivých hráčů. Tady ke stažení máte morisův config.

QuakeWorld klienti

Díky tomu, že výrobce Quake 1 a QuakeWorldu, iD Software, vydal zdrojové kódy k této hře jako Open Source, početná komunita hráčů vytvořila několik odvozených QuakeWorld klientů:

QWCL
Původní QuakeWorld klient firmy iD Software. Dnes už s ním nikdo nehraje a v soutěžích není povolen.
ezQuake
V době psaní tohoto návodu jednoznačně nejvíce aktualizovaný klient zaměřený na hlavně na hráče QuakeWorldu a jejich potřeby. Proto se tento návod bude věnovat výhradně jemu.
FuhQuake
Do roku 2003 nejvíce aktualizovaný a používaný QuakeWorld klient. ezQuake z něho vychází, obsahuje tedy vše co FuhQuake klient.
MQWCL
Do doby nástupu FuhQuake nejpoužívanější klient. Obsahoval spoustu vylepšení oproti původnímu QWCL, na některé se ve FuhQuake zapomnělo, ale autoří ezQuake většinu z nich převzali, takže o ně nepřijdete.
FTEQW
Technicky nejkvalitnější klient, lze s ním hrát Quake 1, QuakeWorld, Quake 2, Quake 3. Jelikož tento klient ale zůstává mimo zájem současné QuakeWorld scény, jeho autoři se přímo na potřeby QuakeWorld hráčů nezaměřují a začátečníkům ho proto nelze příliš doporučit.
QW262
Projekt ruského vývojáře BorisU. Je zaměřen na hráče modu Team Fortress a ty, co si rádi programují vlasní konfigurační soubory (co je konfigurační soubor viz dále). Některé vhodné vlastnosti z něj byly přeneseny do ezQuake.
ZQuake
Tento klient vychází z původního QWCL a je předchůdcem FuhQuake. Jeho vývojář v současné době spolupracuje na vývoji ezQuake.

Tento výčet rozhodně není kompletní. Existuje mnohem větší množství Quake 1 klientů (neboli NetQuake), mnoho z nich má velmi pokročilé grafické efekty. Quake 1 s real-time stínováním (použité v Doom 3 a Quake 4) je zážitek sám o sobě.