This is a read only copy without any forum functionality of the old Modcraft forum.
If there is anything that you would like to have removed, message me on Discord via Kaev#5208.
Big thanks to Alastor for making this copy!

Menu

Author Topic: 01 - Obecný přehled pojmů a systému hry  (Read 1539 times)

Amaroth

  • Contributors
  • Creator of Worlds
  • *****
  • Posts: 1219
    • View Profile
    • Amaroth's Tools
01 - Obecný přehled pojmů a systému hry
« on: February 10, 2015, 07:40:37 pm »

Náhled



[paragraph:1shmy4sv]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.:[/paragraph:1shmy4sv]



Client


[paragraph:1shmy4sv]Herní klient, tedy hra samotná, aplikace, kterou má spuštěnou hráč, využívá více zdrojů dat. Další informace jsou podle herního klienta verze 3.3.5a (poslední verzeWotLK). 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í.

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 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) 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ý, nicméně na jejich editaci nemáme žádný editor), SKINy jsou čí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

Interface
*LUA - programování interfacu (co se stane, když...)
*XML - kódování 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ů...)[/paragraph:1shmy4sv]

Server


[paragraph:1shmy4sv]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.
*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á (to je silně individuální, případ od případu, obecně však klientová DBC mají přednost spíše ve vizuálních záležitostech a serverová spíše v mechanismech)

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.


<- 00 - Úvod
-> 02 - Potřebný software[/paragraph:1shmy4sv]
« Last Edit: September 15, 2015, 05:10:32 pm by Admin »
English YT tutorial channel. Check it out if you preffer videos over walls of text.:
https://www.youtube.com/AmarothEng

Want to support me for my releases and/or tutorials? You can send donation via Paypal to:
jantoms@seznam.cz

Krysík

  • Registred Member
  • Race Changer
  • *****
  • Posts: 35
    • View Profile
Re: 01 - Obecný přehled pojmů a systému hry
« Reply #1 on: February 12, 2015, 09:21:08 pm »
Skvělá práce, jen tak dál :)
« Last Edit: January 01, 1970, 01:00:00 am by Admin »
"We shall go on to the end, we shall never surrender!"

Alastor

  • Contributors
  • Creator of Worlds
  • *****
  • Posts: 1105
    • View Profile
Re: 01 - Obecný přehled pojmů a systému hry
« Reply #2 on: February 28, 2015, 04:20:37 pm »
Ještě bych doplnil k WMO že můžou mít za sebou ještě další stejno jmenné soubory které se pořadovím číslem zvyšují od nuly do xxx podle počtu přídavných subinstancí WMO mezi kterýma se prochází interním portálem
example ....

Westfall_TownHall.wmo - kořenové WMO s nosičem hlavních Dat
Westfall_TownHall_000.wmo - přídavné geosety pro jednotlivé subinstance
Westfall_TownHall_001.wmo
Westfall_TownHall_002.wmo
Westfall_TownHall_003.wmo
Westfall_TownHall_004.wmo

konkrétně u TownHallu se to rozlišuje na místnosti jako vstup - mezi chodba - pak ten větší sál
Lizzard to vymyslel aby šetřil CPU opět protože když někdo vleze do WMO s určitým parametrem tak klidně WoWko vypne renderování Terénu - Vody - M2jek i SKybox nahradí ve výsledku zůstanete jen vy a WMO ve kterém stojíte plus co to WMO obsahuje proto maji WMOčka svůj Doodad spawn jelikož M2 ADTčka se vypnou a poté GOby serveru se ve wowku "Nerenderovat" nedají zase .... tedy aspoň jsem na tu funkci v životě nenarazil a v případě kdy jsem jí hledal mám dojem že ani neexistuje a má to zjevný důvod ale to je jedno

Edit ( prýj tu jsou ohlasy jenž to nepochopily )

WMO.wmo    // je kořenoví soubor jenž obsahuje řídící prvky a vnější model
WMO_000.wmo // tzv group file obsahuje vnitřní části modelu pokud zůstaneme u modelu townhall tak Root je budova samotn ale jedná se o vnější zdi uvnitř nic není a poté groupfile jsou vnitřní místnosti a samozřejmě každá místnost má své nastavení viz struktůra na PXRhttp://www.wowdev.wiki/index.php?title=WMO
« Last Edit: January 01, 1970, 01:00:00 am by Admin »
No matter how fast light travels it finds the darkness has always got there first and is waiting for it
Star Citizen Referral Code : STAR-XNFS-HVL9