Pomozte v hledání chyb v patche Brány Skeldalu pro Windows

Pomůžete tím hlavně sobě i dalším hráčům, kteří si chtějí hru zahrát.

Jak na to?

Jednoduše. Hrát! Pouze tak lze vychytat všechny chyby.

Proč jsou v patchi chyby?

Vysvetlení je prosté. I v originální verzi bylo spoustu chyb. Občas to byly chyby které se v prostředí DOSu nemusely vůbec projevovat. DOS neměl chráněné prostředí, a tak si nechal leccos líbit. Většina chyb se mohla projevit prakticky u jednoho z několika desítek nebo stovek hráčů. I pak to nic nemuselo znamenat, hráč nahrál pozici a jelo se dál

V případě Windows je to horší, protože Windows si nenechají všechno líbit, jelikož musí oddělit jednotlivé spuštěné aplikace. To proto, že by se mohlo nedopatřením stát, že vlivem nějaké chyby by hra ovlivnila nejen jiný spuštěný program, (třeba na pozadí spuštěný Internet Explorer), ale mohla by ohrozit i vlastní jádro Windowsu. Takové ohrožení může být nebezpečné, uvážíme-li, že Windows spravují Vaše data na pevných discích, a neoprávněný zásah do této správy může znamenat nějakou ztrátu dat. Proto se Windows těmto zásahům brání, a při jakémkoliv podezřelém chování se snaží narušitele ukončit (sestřelit).

Aby bylo možné chybu odchytit, dávají Windows v případě chyby aplikaci doslova "druhou šanci" zjednat nápravu. Této "druhé šance" využívá i současná verze patche hry. Při výskytu chyby, kterou oznámí operační systém Windows použijí pomocný nástroj (dbghelp.dll - distribuovaný zdarma přímo od Microsoftu) a pomocí něho sesbírají veškeré informace a to nejen o chybě, ale o podmínkách jejího vzniku a všech okolností. (Ano, někteří to znají, když Windows nabízí odeslání informací o chybě Microsoftu, je to známo hlavně ve Windows XP).

Protože ale tyto informace nejsou důležité pro Microsoft, ale spíše důležité pro mne, hra informace uloží na disk, kde je můžete najít a případně mi je poslat.

Co udělat, když se chci podílet na hledání chyb

První podmínkou je nainstalovat si pomocný nástroj dbghelp.dll. Tohle nejspíš nemusí dělat majitelé operačního systemu Windows XP. Soubor rozbalte (je v ZIPu), a zkopírujte DLL do složky hry (tam kde je Skeldal.exe - původně jsem tady psal, že je nutné soubor skopírovat do složky Windows/System32. S tím jsou ale problémy, windows se brání zásahům do tohoto adresáře tak, že obnovuje původní verze souborů. Zkopírování do složky hry by mělo postačit).

Pokud by byla tato část vynechána, může se stát, že při pádu hry se žádné soubory nevygenerují.

Dodatek: Před spuštěním si také zajištěte zápisové práva do složky hry. Taktéž bude nejspíš nutné hru hrát jako Administrátor, nebo jako člen skupiny uživatelů mající větší práva (Power User). Nemám toto vyzkoušené.

Betatesting

Teď už stačí jen hrát. Přítomnost výšeuvedených nástrojů se během hraní nikterak neprojevuje, takže to ani nepoznáte. Zajemce o větši betatesting bych poprosil, aby zkoušeli ve hře i neobvyklé věci, neobvyklé hraní, a snažili se hru takříkajíc srazit do kolen. Jedině tak lze najít nejvíce chyb. Aktivním betatesterům mohu prozradit kód pro přístup do ladící konzole.

Když hra spadne

V okamžiku, kdy nastane nějaká chyba, budete upozorněni okénkem. Prosím postupujte podle návodu. Hra nejspíše napíše něco ve smyslu, že sbírá informace o chybě. Pokud se během generování zobrazí nějaké jiné okénko, než okénko oznamující úspěšné sesbírání všech informací o chybě, je někde problém, protože Windows zřejmě nechtějí dovolit tuto operaci.

Generování záznamu o chybě
[Obrázek zobrazující chybu] [Obrázek zobrazující chybu]
Kdyby se to náhodou nepovedlo
[Obrázek zobrazující chybu] [Obrázek zobrazující chybu]

Pakliže vše dopadne dobře, vzniknou ve složce hry tři následující soubory.

  1. skeldal.exe.short.dmp
  2. skeldal.exe.long.dmp
  3. skeldal.exe.full.dmp

Tyto soubory obsahují sbalené binární informace o chybě a celé hře. První soubor má řádově desítky kilobajtů. Druhý soubor má řádově stovky kilobajtů a třetí soubor míva něco kolem 30MB. První soubor obsahuje jen základní informace, které popisují místo vzniku chyby. Druhý soubor navíc obsahuje i informace o okolí chyby a třetí soubor pak obsahuje obsah celé paměti, jenž byla zabrána pro hru. Soubory používám podle toho, jak složitá chyba byla nalezena. Většinu informací naleznu v prvním souboru. Pokud nějaké informace chybí, musím otevřít druhý soubor. A pakliže ani druhý soubor nemá informace vedoucí k závěru "proč to spadlo", musím je hledat ve třetím souboru, kde zaručeně budou.

Protože ale nikdo asi nemá možnost posílat e-mailem 30MB, pro první analýzu chyby budu vždy potřebovat jen první dva soubory. Pokud budu potřebovat třetí soubor, dohodnu se s Vámi mailem na způsobu přenosu toho velkého souboru (například pomocí FTP). K souboru prosím připište nějaké povídání o tom, jak k chybě došlo, co jste udělal(a), a jak to udělat, aby se chyba projevila znova. Možná bude dobré k mailu přiložit i uloženou pozici (protože i narušená uložená pozice může být příčinou chyby).

Soukromí

Možná leckoho napadne, co vše se lze ze souborů DMP dozvědět, a jaké citlivé údaje jsou do něj ukládány. V zásadě jde o všechna data související s hrou. Do DMP se mohou uložit i informace o nastavení počítače, tj zejména jaké moduly byly během hraní spuštěny, jaké moduly se přímo podílely na běhu hry (tam se může objevit i třeba nainstalovaný antivir, nějaká vylepšení windows, nebo programy monitorující činnost počítače - nemnohdy může být překvapením nějaký cizí spyware, který bude v DMP souboru také vidět). Do souboru DMP se neukládají hesla, ani certifikační klíče (Windows se takovým informacím velice striktně vyhýbá). Taktéž v DMP souboru nejsou uloženy data jiných aplikací, takže nemusíte mít strach, že bych zjistil například číslo a heslo k bankovnímu účtu, ke kterému přistupujete z Internet Exploreru. A pokud nevěříte, nespouštějte hru, když vyřizujete platby v bance :o)

Děkuji všem, kteří mi pošlou jakékoliv informace o chybách v patchi