[3.3.5a] - 01 Obecný přehled pojmů a systémů hry


Description

Přehled toho nejdůležitějšího, co by měl o WoW vědět každý, kdo se v něm chce začít hrabat.

Náhled

Hned na začátku, než se pohneme k praktickým věcem, bych s vámi chtěl dát dohromady alespoň takový obecný náhled na teorii. Z čeho všeho je složená hra, z čeho server, co k čemu slouží a jak je to všechno propojeno, kde to najdete. Chci zde tedy pouze zavést ty nejobecnější a nejzákladnější pojmy, aby i úplný začátečník bez problémů pochopil, o čem tu bude řeč. Pro začátek menší schéma malování s.r.o.:

Image

Client

Herní klient, tedy hra samotná, aplikace, kterou má spuštěnou hráč, využívá více zdrojů dat.Tato série je pro herního klienta verze 3.3.5a (poslední verze WotLK). Proč tato stařičká verze? Aktuálně je zdaleka nejsnáze upravitelná a nabízí nejlepší podporu serverových emulátorů. Jiné verze hry lze upravovat také, ale narazíte na nemálo nepříjemných úskalí. Podmínky pro práci s nimi se naštěstí pomalu, ale stále zlepšují, já jsem se na ně však zatím nepřesunul a proto se budou své návody omezovat jen na 3.3.5a. Je možné, že do budoucna na novější verzi klienta přejdu a s ní případně začnu pracovat na nové sérii návodů.

Abych se vrátil k datům, se kterými pracuje klient. Pro nás budou nejdůležitější archivy dat formátu MPQ (laicky často označované za patche), obsahující data ukládaná v různých formátech, z nichž řada nepatří mezi standartní volně využitelné formáty (jde o soukromé formáty tvůrců hry). Jak vidíte, MPQ soubory obsahují velké množství dalších souborů, ze kterých je utvářena naprostá většina vizuální i obsahové stránky hry jako takové. MPQ soubory najdete v cestě:

(cesta k WoWku)/Data
A dále v cestě:
(cesta k WoWku)/Data/(Locale)

Za Locale si dosaďte jazykovou zkratku své hry, na příklad enUS, enGB atd.

Herní mapy

  • ADT - každé ADT obsahuje čtverec o straně 533,33 yardů mapy (terén, voda, umístěné modely)
  • WDT - specifikuje, zdali má mapa nějaká ADT (instance, tedy raidy a dungy, mnohdy ADT vůbec ani nemají, jsou tvořeny jen jedním velkým WMO modelem - viz níže) a případně z kolika ADT se daná mapa skládá a jak jsou rozmístěna
  • WDL - obsahuje informace o velmi vzdáleném terénu, podle něj je vykreslován obzor za hranicí, kam hra "dohlédne" načítáním okolních ADT souborů

Modely

  • M2 - drtivá většina standartních modelů užívá tento formát, i když byste se mohli setkat i se zastaralým MDX
  • SKIN - obsahují zjednodušené části modelů s nižším LOD (tedy osekané verze pro vykreslení modelu, když je velmi vzdálený), SKINy jsou vždy číslovány dvojmístně hned za názvem (nazev00.skin, nazev01.skin...)
  • WMO - najdete kořenová (root) WMO, to je vždy jedno a pod ním dále je alespoň jedno parciální WMO, jedná se o složitější model, používá se na budovy, instance, jeskyně či celá města, parciální WMO jsou číslována trojmístně za podtržítkem (nazev_000.wmo, nazev_001.wmo...)

Textury

  • BLP - všechny textury včetně obrázků pro UI atd. jsou ve formátu BLP

CS (client side) DBC

  • DBC - tyto soubory slouží jako lokální databáze obsahující všechna možná data týkající se obsahu světa, v určitých případech mají přednost před SS (server side) DBC, někdy je tomu zase naopak, viz příklady na konci tohoto dílu

Interface

  • LUA - programování interfacu (co se stane, když...), z programátorského hlediska "code behind"
  • XML - kódování rozložení vzhledu interfacu (jaký obrázek/model kam umístit)

Hudební soubory

  • WAV - MPQ podporuje velmi kvalitní kompresi zvuků ve formátu WAV, ty jsou používány zejména na zvukové efekty ve hře, tedy spíše na krátké zvukové stopy
  • MP3 - obvykle používány spíše na hudbu v zónách
  • OGG - jsou používány spíše na ambience music, tedy na zvuky prostředí (šum vln, poryvy větru, zpěv ptáků...)

Server

Server se stará o komunikaci herních klientů mezi sebou a dále obsahuje velké množství dat týkajících se jak hráčů, tak herního světa, z nichž většina se nenachází v herních klientech. Co už málokdo ví je, že na serverovém počítači ve skutečnosti jedou minimálně 3 servery zajišťující celkový chod našeho celkového "serveru". Tyto servery dokonce ani nemusí být umístěny na stejném počítači. Další informace jsou dělány podle serverového emulátoru TC2 pro WotLK 3.3.5a, u jiných emulátorů je princip v základu stejný, ale názvosloví se může lišit.

Authserver

Tato aplikace zajišťuje hráčům možnost přihlašovat se do hry. Kontroluje jejich přihlašovací údaje a pak posílá hráče hernímu worldserveru. Herních serverů může být pod jedním přihlašovacím více, mluvíme pak o více realmech. Jeho IP adresa (případně doménové jméno, tedy "internetová adresa", jak by řekl laik) je užívána v souboru realmlist.wtf k připojení k serveru.

Worldserver

Herní server se stará o všechny akce hráčů, kontroluje, zda-li jsou "v pořádku", posílá herním klientům data o prostředí, která v klientech nejsou uložena a dále jim přeposílá, co dělají ostatní hráči. Výsledky veškeré činnosti světa (jak ovládané tak neovládané hráči) také ukládá do databáze. Herní server tedy řídí hru samotnou.

MySQL server

Většinou laicky nazývaný databází, ve skutečnosti však obsahuje vždy minimálně tři různé databáze. Jejich jména jsou volitelná při konfiguraci serveru, zde jsou uvedená jen výchozí (a standartně užívaná).

  • Auth - obsahuje data o účtech hráčů, také všechny bany, informace o připojených realmech a v neposlední řadě přístupy ke všem příkazům (včetně těch GM)
  • Characters - databáze obsahující všechna data o postavách, jejich inventářích, naučených spellech, skillech, o guildách... jednoduše všechen s hráči přímo související obsah, každá realm má vlastní charakterovou databázi
  • World - tato databáze obsahuje všechno týkající se herního prostředí, co není uloženo v klientech, tedy část informací o itemech, NPCčkách, questech, game objectech... a mnoha dalšího

SS (server side) DBC

  • DBC - lokální (klientová) databáze je potřebná i pro chod serveru, který z ní taktéž čerpá nemálo dat týkajících se mechanismů hry a herního prostředí, pokud se informace v CS a SS DBC rozchází, mají v některých případech přednost serverová, v některých klientová, viz příklad na konci tohoto dílu

Mapy

Server nemá na své straně vůbec uloženou standartní mapu tak, jako klient. Tyto 3 typy souborů mu mapu nahrazují a tím mu na příklad sdělují, kde se nachází která lokace na mapě, kde je terén (kvůli pohybu NPCček) atd.

  • maps - především rozložení zón, také umístění vody a jiné věci
  • vmaps - zejména kolize WMOček, kde všude je "indoor" (shazování z mounta, zabránění NPCčkům na vás vybíhat z budov) a jiné
  • mmaps - přesné rozložení objektů a terénu po světě kvůli snaze donutit NPCčka pohybovat se "logicky" a tedy v ideálním případě jen tak, jak se mohou pohybovat hráči (tedy řeší probíhání skrze objekty či levitace ve vzduchu, skákání přes díry/na skály i když je jiná, přirozená cesta nahoru/dolů/kolem)

Příklad toho, jak se budou chovat SS a CS DBC soubory, pokud budou odlišné:
- v SS DBC existuje displayID pro NPCčko (řekněme třeba hnědý mamut)
- v CS DBC je toto displayID přepsáno tak, že obsahuje kočku
Výsledkem je, že hráč uvidí ve hře kočku. Server se o to, jak věci vypadají, nestará (pomineme-li kolize spawnutých modelů), jemu stačí jen vědět, že naše displayID vůbec existuje a že jej tedy může použít.

Příklad kolize DBCček číslo 2:
- v SS DBC je napsáno u spellu Fireball (Rank 1), že bude dávat 100-150 dmg
- v CS DBC je napsáno, že Fireball (Rank1) dává 600-1000 dmg
Výsledkem bude, že Fireball bude vždy brát cílům něco kolem 100-150 hp (pomineme-li samozřejmě redukce a resistence atd.), ale hráči bude popisek spellu (tedy vizuální záležitost) tvrdit, že spell má dávat šlupky za 600-1000. Stejně by to bylo i s mana costem atd.

Server tedy řeší funkčnost mechanismů hry, klient zase vizuální aspekty.



Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now