Proč World of Tanks, engine, testovací replay
Ačkoli se to v záplavě MMORPG a existujících válečných her nezdálo jako převratný nápad, skloubením těchto dvou veličin se společnosti Wargaming.net podařilo dokonale uhodit hřebíček na hlavičku. Podle XFire.com se World of Tanks dlouhodobě drží v desítce nejhranějších her, často předčí třeba Call of Duty: Modern Warfare 3 či šlape na paty Battlefieldu 3. Tvůrci dokonce mluví o nějakých rekordech v počtu současně připojených hráčů a rozehraných her.
Ve střední Evropě má především mužská část populace k druhoválečným strojům velmi silný vztah, takže v ČR nejenže existuje spousta klanů, ale v oficiálním fóru hry je poměrně živá česká sekce a hra samotná vám při spuštění přes launcher nabídne i češtinu. O tom, že snad každý druhý muž je u nás duší tankista, svědčí i fakt, že téma World of Tanks je suverénně nejpopulárnějším vláknem v herní sekci fóra ExtraHardware.cz.
Běloruský vývojářský tým pro World of Tanks zvolil engine BigWorld. Ten je použit v různých MMORPG, hodně z nich je populární hlavně na Dálném Východě. Traduje se, že na tento engine padla volba zejména proto, že Wargaming zpočátku neměl mnoho finančních prostředků a že to vlastní vůbec pro daný typ hry není vhodná volba. Já si to tak úplně nemyslím, i když nemálo much engine, resp. hra samotná má.
BigWorld na svých stránkách uvádí, že klientská část soukolí, jež prodává herním studiím, používá API DirectX 9. Všiml jsem si ale, že World of Tanks se neobejde bez jedné z knihoven pro Direct3D 10. Jak je to přesně, to vědí asi jen ve Wargamingu případně na některém z mnoha fanouškovských diskuzních fór či blogů. Je možné, že použití d3dx10_43.dll nějak souvisí s pokročilým postprocessingem, potažmo FXAA.
Tak jako tak, hra samotná vypadá opravdu velice dobře. Textury mají dostatečné rozlišení a urážejí snad jen při vyloženém koukání do nějaké zdi domu, modely tanků jsou pak velmi detailní. Snad jen u kol by nebylo špatné použít jemnější trojúhelníkovou sít a také plechy neodrážejí světlo jako ve skutečnosti. Je to ale určitě lepší, než když všechno vypadá jakoby bylo polité vodou a zmrzlo (viz některé Need for Speed). U německých tanků by zase mohla textura simulovat nátěr zimmeritu, u artilerií či otevřených tank destroyerů zase chybí lidské podstavy. To na druhou stranu umožňuje mít hru přístupnou i mladším generacím a celkově hru zbavit atmosféry hromadně umírajících lidí.
Testovanou verzí byla 0.7.1b, na stránkách už bývají aktualizace označovany bez nuly (tedy jako 7.1). Co se týče možných změn výkonu a náročnosti hry na hardware, měly by výsledky z článku určitě ještě pár měsíců platit. Wargaming.net sice zveřejnil několik videí s vylepšenou (nebo možná řekněme „zábavnou“) fyzikou, zatím je vše však nejspíše ve fázi experimentů a v nedohlednu.
Podobné to je s efekty počasí. Už na screenshotech z roku 2009 Wargaming ukazoval déšť a mlhu, podle posledního rozhovoru na americkém serveru World of Tanks není také ještě termín zabudování do hry jistý. V dalším patchi by mohla přijít noční mapa (Himmelsdorf).
Testovací replay – jak si srovnat výkon s čísly v článku
O kousek dál si ukážeme, proč jsme vybrali pro testování právě tento opakovaný záznam a právě na mapě Erlenberg. Na tomto místě bude stačit odkaz ke stažení opakovaného záznamu z mapy Erlenberg a instrukce pro srovnatelné testování:
- uložte 20120206_2316_germany-VK3601H_erlenberg.wotreplay na pevný disk
- spusťte FRAPS a na kartě FPS nastavte Stop benchmark after 445 s
- pokud máte příponu .wotreplay asociovánu s WorldOfTanks.exe, potom na ni stačí poklepat. V opačném případě si vytvořte zástupce WorldOfTanks.exe a .wotreplay na ni přetáhněte
- počkejte, až na odpočtu bude 00:34 do startu zápasu (vpravo nahoře), pak spusťte logování (implicitně F11)
- výsledek najdete ve složce Frapsu jako FRAPSLOG.TXT
Pořídil jsem i jedno video, ukazující jednak průběh testovacího opakovaného záznamu a pak některé chyby zobrazení na Radeonu HD 7970. Mluvím o poblikávajících texturách okenic a dveří na domech v pozadí, na kartách GeForce jich také pár poblikávalo, ale v míře menší. Video není plynulé, záznam v 1920 × 1080 px mi v kombinaci s docela náročnou hrou už počítač jednoduše nezvládl ukládat.
Testovací sestavy, operační systémy, ovladače, nastavení
World of Tanks jsme zkoušeli na vícero konfiguracích, jedna s Core i7-870 byla však tou hlavní, primární. Pokud také není řečeno jinak, probíhaly testy v maximálních detailech včetně pokročilého post-processingu. Vypnut zůstal jen FXAA, MSAA společně s Advanced PP nelze ani zapnout. Ve režimu střelby (sniper mode) bylo vypnuto houpání vozidla (což asi udělá dříve nebo později každý hráč).
V posledním přeměření jsme použili ovladače 295.71 WHQL pro všechny GeForce, u Radeonů to bylo bohužel trochu složitější. Pro novější z nich jsme nainstalovali verzi 12.2 pre-release nabízenou v době psaní článku na amd.com a doplnili profily 12.1 CAP3. Radeon HD 3850 a HD 2900 XT byly naměřeny s ovladači 12.1 WHQL.
Primární testovací sestava
Core i7-870 jsem za účelem odstranění limitu ze strany procesoru a přiblížení se výkonem současnému hitu (Core i5-2500K) přetaktoval na 3,66 GHz. Vypnul jsem pro hry většinou spíše problematický HyperThreadingu a přetaktováním došlo také k vypnutí úsporných funkcí. Snížení násobiče na 9× v idle se tedy nekonalo, což sice nepomohlo účtu za elektřinu, ale zpřesnilo měření příkonu sestavy v desktopu Windows.
- zdroj: Enermax Modu87+, 500 W
- skříň: Lian Li PC-A17B
- operační systémy: Windows 7 Ultimate a Windows Vista Ultimate
- systémový pevný disk: Kingston SSDNow V40 (modifikován na Intel X25-V)
- datový pevný disk (se hrou, v případě Visty pak i s OS): WD Caviar Black 1 TB (WD1002FAEX)
Vypínání jader pro testy škálování jsem činil přímo v BIOSu základní desky Asus P7P55D-Evo (Intel P55).
Sekundární testovací sestava
Hlavně kvůli tomu, že se mi kvůli vyzkoušení funkčnosti CrossFireX na Radeonu HD 6990 nechtělo z Lian Li odebírat koš s pevnými disky (ano, HD 6990 je karta dlouhá jako pohádka), letmo jsem jej vyzkoušel na o něco slabší sestavě s Phenomem II X6 1075T (3,0 GHz nominálně, 3,5 GHz Turbo Core).
Slabá testovací sestava
Při pokusu o rozběhání hry na nějakém opravdu slabém hardwaru přišel vhod notebook Lenovo Thinkpad T61 s 2GHz Core 2 Duo a grafikou Nvidia Quadro NVS140M (odpovídá GeForce 8400 GS).
Testované grafické karty
Testované grafické karty
Všechny testované karty jsme testovali na referenčních taktech. U tří nebo čtyř to znamenalo podtaktování, většina byla na ref. frekvencích rovnou. GeForce GTX 580 je trošku netypická, 3GB verze není nejčastější. Zrovna u World of Tanks testovaných ve Full HD ale rozdíl proti standardní 1536MB verze nepoznáte. Různých OS a verzí ovladačů na screenshotech z GPU-Z si nevšímejte, tyto byly shromažďovány postupně a v průběhu pár týdnů.
GeForce GTX 580, 772/4008 MHz, 3072 MB
GeForce GTX 570, 732/3800 MHz, 1280 MB
GeForce GTX 560 Ti, 823/4008 MHz, 1024 MB
GeForce GTX 560, 810/4008 MHz, 1024 MB
Referenčních taktů jsem dosáhl snížením frekvence jádra o 20 MHz.
GeForce GTX 460, 675/3600 MHz, 1024 MB
GeForce GTX 280, 602/2214 MHz, 1024 MB
GeForce GTX 550 Ti, 900/4100 MHz, 1024 MB
MSI prodává docela citelně přetaktovou GeForce GTX 550 Ti, takže jsem musel takt jádra stáhnout o 50 a takt pamětí o 200 MHz (efektivně). 900/1800/4100 MHz by už měly být takty referenční GeForce GTX 550 Ti.
GeForce 8800 GTX, 576/1800 MHz, 768 MB
Radeon HD 7970, 925/5500 MHz, 3072 MB
Radeon HD 6950, 800/5000 MHz, 2048 MB
Radeon HD 5850, 725/4000 MHz, 1024 MB
Radeon HD 7770, 1000/4500 MHz, 1024 MB
Radeon HD 7770 "1 GHz Edition" od Sapphire je výrobcem nastaven na vysokých (a ne úplně stabilních) 1150/5000 MHz. Pro testy jsem vrátil na referenční takty vzorové karty od AMD: 1000/4500 MHz.
Radeon HD 6850, 775/4000 MHz, 1024 MB
Radeon HD 6770, 850/4800 MHz, 1024 MB
Pasivně chlazený Radeon HD 6770 od Gigabyte jsem při testech musel ofukovat přidaným 12cm ventilátorem. Ten se podepsal na příkonu dalšími zhruba dvěma watty.
Radeon HD 2900 XT, 743/1656 MHz, 512 MB
GPU-Z je zmaten z 2D frekvencí HD 2900 XT: oněch 510/1022 MHz se ve 3D okamžitě přepne na 743/1656 MHz.
Radeon HD 6570, 650/3600 MHz, 1024 MB
Radeon HD 3850, 668/1656 MHz, 256 MB
Radeon HD 6990, 668/1656 MHz, 256 MB
(testována jen na sestavě s Phenomem II X6 1075T)
Galerie screenshotů ze hry
Náročnost map, testy procesoru
Náročnost jednotlivých map
Verze 0.7.1 obsahuje celkem 24 různých map. Některé mají rozlohu 750 × 750 m, jiné 1 × 1 km. Mezi mapami, které jsou otevřené a s menším množstvím vegetace (např. Sand River) a mapami, kde můžete z návrší vidět velký kus rozbořeného města (např. Ruinberg), je docela velký rozdíl co do náročnosti na hardware. Někde uprostřed pak stojí mapy s hustou vegetací jako např. Komarin či Swamp. Přehled o jednotlivých mapách si uděláte na této stránce wiki k World of Tanks.
K následujícímu grafu srovnávajícím náročnost jednotlivých map mám několik poznámek. Věděl jsem, že mezi nejnáročnější patří Ruiberg a Erlenberg, zde jsem porovnal tedy vícero replayů. V Erlenbergu jsem našel i opakovaný záznam s průměrnými fps okolo 25, minimální fps však byla opakovaně nejníže u nakonec vybraného. Hardwarová nenáročnost u taktéž městské mapy Himmelsdorf platí, pokud náhodou nejedete na kopec a odtud neostřelujete. V tomto méně častém případě (typičtější je „dog fight“ s nahlížením za roh, případně čekání, až se někdo objeví na konci ulice) by průměrné snímky za vteřiny šly podstatně dolů.
Mapy a závislost na výkonu procesoru
Z náročnějších map jsem vybral několik typově odlišných a jelikož bychom chtěli World of Tanks zařadit do pravidelných testů grafických karet, hledal jsem tu, co nebude tolik závislá na výkonu procesoru. V tomto případě se ukázalo, že jinak nejnáročnější Ruinberg byl nakonec procesorem více limitován než druhý v pořadí (Erlenberg).
Vliv procesoru na výkon
Jelikož engine World of Tanks pracuje s jedním hlavním vláknem, je výkon procesoru (na jedno jádro) velmi důležitým faktorem.
Stejně jako u mnoha dalších her je HyperThreading spíše na škodu (dá se řešit i jinak než úplným vypnutím, viz kousek níže) a je zajímavé, že u Core i7-870 byl rozdíl také ve výkonu mezi dvou- a čtyřjádrovým nastavením. Je možné, že režie OS a především asi ovladačů dokáže i v případě jednovláknové hry zabrat chvílemi více než jedno další jádro.
U Phenomu II X6 jsem jádra vypínal už jen přes Boot Options v msconfig a dalo by se říct, že procesor jako Phenom II X2 560 vám odvede stejné službu jako šestijádrový Thuban. U výkonné grafiky typu Radeon HD 7970 je brzda v podobě slabšího výkonu na jedno jádro docela cítit.
Jak na HyperThreading, CPU Affinity (spřažení procesorů)
Pokud z nějakého důvodu nechcete HyperThreading v BIOSu vypnout (třeba nedej bože mimo hraní World of Tanks na PC převádíte video nebo necháváte něco renderovat), můžete si pomoci nastavením spřažení jader.
Jako optimální se ukázalo nastavit procesoru World of Tanks jádra 1 a 2 (druhé a třetí).
Nastavení detailů, rozlišení, anti-aliasing
Vliv (grafických) detailů na výkon
V menu hry máte vceku široké možnosti nastavení výkonu. Nebylo v mých silách vyzkoušet všechny kombinace a vyzkoušet je na všech kartách. Vybral jsem jednu mainstreamovou kartu (GeForce GTX 560) a u většiny položek vyzkoušel alespoň krajní možnosti nastavení. Následující graf musíte chápat takto: první skládaný pruh ukazuje výkon při max. nastavení a následně jsem vždy vypínal či nastavil na nejnižší možnou jednu položku. Pouze s vypnutím pokročilého post-processingu došlo automaticky také ke snížení kvality zobrazení kvality z vysoké na střední.
Kvalita zobrazení: Radeon vs. GeForce
Při zkoumání statického screenshotu si zásadnějších rozdílů zobrazení mezi soupeřícími značkami nenajdete. Rozdílem jsou určitě jiné stíny, to je však způsobeno dynamickým zobrazením hry (pohybující se vegetace apod.).
Pokud bych udělal kvalitní videozáznamy, viděli byste více poblikávajících textur u oken a dveří na domech na Radeonu (v záznamu nabízeném v první kapitole to můžete bedlivým okem zaměřeným na město v pozadí pozorovat sami). I to je ale spíše kosmetické.
Upozornění: odkazované screenshoty jsou uloženy v bezztrátovém formátu PNG a mají mezi 2,5–3,5 MB. Pokud chcete srovnávat rozdíly, uložte si je nejdříve na disk a potom třeba přepínejte dvě okna prohlížeče obrázků.
- nejvyšší detaily, bez FXAA a MSAA, Radeon HD 7970
- nejvyšší detaily, bez FXAA a MSAA, GeForce GTX 560
Anti-aliasing
Abyste mohli použít ve hře zabudované vyhlazování FXAA (detaily zde), je třeba mít zapnut pokročilý post-processing. A naopak, po jeho zapnutí zase nemůžete vybírat z režimů MSAA (klasický multi-sampling, pouze pro hrany). Můžete se pokusit vypnutit MSAA skrze ovladače grafické karty, kromě poklesu snímkové frekvence se však žádného efektu nedočkáte. Pokročilý post-processing ve hře není prostě s MSAA kompatibilní.
FXAA je sice méně náročné než MSAA, navíc funguje i na průhledných texturách, jenže jeho aplikací dojde (podobně jako ve Skyrimu) k ošklivému rozmazání úplně všeho. To ostatně můžete vidět sami na nabízených screenshotech níže. Zapnutí FXAA tedy rozhodně nedoporučuji.
U MSAA pak musíte volit mezi pokročilým postprocessingem (a nejvyšší kvalitou vody) a nezubatými hranami (hlavně dělo tanku a hrany budov). Je na vás, co preferujete. Možná se také rozdělíte podle monitorů: 27"
s 2560 × 1440 px anti-aliasing tolik nepotřebují, zato u 22" s 1680 × 1050 px se může jednat takřka o nutnost.
Přímo na bojišti:
V garáži (dobře pozorovatelné na kanónu tanku či na zábradlí v pozadí):
Vliv rozlišení na výkon
V 1024 × 768 px budete už mít docela problém se zobrazením seznamů hráčů (a funkčních/zničených tanků) a minimapou, obecně byste k razantnějšímu snižování rozlišení měli přikročit až už není východiska. Je-li limitem výkonu grafická karta (jako v případě kombinace GTX 560 s Core i7 na 3,66 GHz), potom samozřejmě změna rozlišení pomůže dost. Minimální fps se však od určité hranice (limit procesoru) nezlepšují.
Multi-GPU (CrossFireX), rozběhnutí na slabé sestavě, WoT Tweaker
Rozběhnutí na slabé sestavě, WoT Tweaker
Pokusil jsem se o nalezení nějakého hardwaru, který by byl na hranici spustitelnosti hry. Nakonec docela dobře posloužil můj starý pracovní notebook. V ThinPadu T61 tepe 2GHz Core 2 Duo (Merom) a Lenovo jako grafiku vybralo Quadro NVS140M. Tato rádoby profesionální grafika odpovídá výkonem zhruba běžné GeForce 8400 GS (G86, 16 stream procesorů). Nativní rozlišení notebooku je 1440 × 900 px, v něm jsem se pokusil hru rozběhat.
Při nastavení minimální detailů a bilineárního filtrování jsem dosáhl výsledku: Avg: 15.263 - Min: 5 - Max: 27
To má samozřejmě od hratelnosti pořád daleko. Další snížení detailů už je možné jen přes nástroj třetí strany – WoT Tweaker. Ten umožňuje vypnout různé efekty při zničení, při zásahu tanku a kouř.
Ačkoli jsem vypnul úplně vše, příliš to už nepomohlo: Avg: 16.137 - Min: 5 - Max: 32.
Dalo by se ještě uvažovat o snížení rozlišení, nicméně pořád by byl výsledek nepříliš plynulý a ještě k tomu opravdu ošklivý. Jinými slovy: potřebujete alespoň o třídu lepší grafiku (tedy GeForce s dvojnásobkem stream procesorů a texturovacích jednotek, nebo odpovídající Radeon).
Multi-GPU (CrossFireX)
Jak už jsem předeslal, CrossFireX s Radeonem HD 6990 jsem z důvodu obrovitosti této karty zkoušel na jiné sestavě. Ačkoli Phenom II X6 1075T evidentně limitoval i Radeon HD 6990 vykreslující jediným GPU, Radeon HD 7970 ukázal, že trochu rychleji to jít může. Není to ideální, ale přesto to naznačuje, že CrossFireX s 12.2 pre-release a 12.1 CAP3 neškáluje.
Srovnání grafických karet
To nejatraktivnější a hlavně jediné, co nemůžete asi jen tak snadno zkusit doma, jsme si nechali nakonec. Ve srovnání najdete 17 grafických karet otestovaných opakovaným záznamem z první kapitoly a na testovací sestavě a nastavení z kapitoly druhé.
Výkon grafických karet
Minimální fps berte s rezervou, on ani průběh fps (odebíraných v diskrétních okamžicích, konkrétně po jedné sekundě) není pro odhalení pocukávání dostačující. Na graf vytvořený z logu frametimes však opravdu nemáme kapacity.
Spotřeba (příkon) testovací sestavy s danou grafikou
Ačkoli není engine World of Tanks supermoderní (alespoň, co se týče použitého 3D API), přesto je krásně vidět mezigenerační pokrok. GeForce GTX 550 Ti je stejně výkonná jako GeForce GTX 280 a podívejte se na rozdíl ve spotřebě. Ještě markantnější je to při srovnání pěti (či čtyř, protože HD 3000 nebyla proti HD 2000 vyloženě nová generace) generací u Radeonů. Radeonu HD 7970 stačí o 13 W méně (nebo ještě více, neboť s HD 2900 XT se asi více nudí procesor) k předvedení mnohanásobně vyššího výkonu.
U čtveřice karet z výkonnostního středu můžete prozkoumat průběh fps. Jedná se o průměrné snímkové frekvence odebrané v sekundových intervalech (bodový graf by tedy byl přesnější):
Máte-li zájem o takové srovnání dalších karet, napište nám to v diskuzi. Je možné vystavit i podrobné logy s frametimes, chcete-li se pustit do tvorby opravdu vypovídajících grafů z těchto dat.
Tipy ke zlepšení plynulosti hry v kostce
- vypněte antivirový program nebo udělte hře (či složkám hry) výjimku
- vypněte HyperThreading, nebo nastavte CPU Affinity (v českých Windows spřažení jader) na Core 1 a 2
- nepomáhá snížit rozlišení, vypnout stíny apod.? potom řešte výkon procesoru (třeba přetaktováním)
- nestíhá-li grafická karta, zaměřte se na stíny, post-processing či kvalitu porostu
- jakýkoli souběžný síťový provoz (stahování, výměnné sítě, streamovaná hudba či video apod.) může způsobit lagy
Závěr
Škálování výkonu, optimalizace, moderní technologie – to vše není ve World of Tanks zrovna špičkové. Přesto jde o velmi dobře vypadající hru, kterou zase pro změnu na špičku posunuje fakt, že autoři při tvorbě modelů tanků nebo i historických bojišť vycházejí z dobových fotografií, náčrtů, exponátů v muzejích nebo dokonce současného stavu míst.
Vzhledem k tomu, že dokáže provětrat i docela moderní hardware a s přihlédnutím k dobré opakovatelnosti testů pomocí uloženého replaye, jsme se rozhodli WoT zařadit do testovací sady pro grafické karty. Počet aktivních hráčů (docela by nás zajímalo, jestli v ČR hra náhodou není ještě výše než v celosvětovém žebříčku XFire) je samozřejmě dalším dobrým argumentem.