Snažit se zbavit návyku na 60 snímků za sekundu je těžká práce.

Je to svatý grál současných herních počítačů: 144 snímků za sekundu. Utráceli jste za skvělý herní monitor a spojili ho s nejrychlejším procesorem a jednou z nejlepších grafických karet, které lze za peníze koupit. Je to tak plynulé, tak citlivé a vy jste připraveni ovládnout své soupeře svými vynikajícími schopnostmi – nebo alespoň vyšší obnovovací frekvencí. Je tu jen jeden problém. Dosáhnout 144 snímků za sekundu (nebo více) v mnoha hrách je obtížné a někdy je to prostě nemožné.

Začíná to u základního designu a funkcí hry. Ne že bych chtěl házet stín na konzole (to je fuk, na konzole házím stín úplně), ale když několik herních platforem současné generace neumí výstup na vyšší frekvenci než 60 Hz, je jen přirozené, že hry, které se na nich hrají, nejdou z cesty, aby překročily 60 snímků za sekundu – nebo v některých případech dokonce 30 snímků za sekundu. Když vývojář hry vychází z této perspektivy, může být velmi obtížné to později napravit. Viděli jsme, že hry jako Fallout 4 svazují fyziku, rychlost pohybu a další prvky s framerate, často s nežádoucími výsledky.

Nejde však jen o cílení na 30 nebo 60 snímků za sekundu. Složitost hry se neustále zvyšuje a složitost znamená provádět více výpočtů. Hry pro jednoho hráče jsou obvykle jiným zážitkem než hry pro více hráčů. Ty jsou ze své podstaty soutěživější, což znamená, že vyšší fps mohou být výhodnější pro nejlepší hráče, a často vynechávají spoustu věcí, které mohou zvýšit dobu snímkování.

Soutěživé hry pro více hráčů jsou ideálním hřištěm pro 144Hz displeje.

Připomeňme si například hry jako Counter-Strike, Overwatch, PUBG nebo Fortnite. Umělá inteligence nebo logika NPC v nich potřebuje jen velmi málo. Většina světa je statická a běhají v něm jen hráči, což znamená mnohem menší režii a v konečném důsledku i potenciál pro vyšší snímkovou frekvenci.

Primárně singleplayerové hry jsou něco jiného. Podívej se na prostředí her Assassin’s Creed Odyssey, Monster Hunter World a Hitman 2. Mohou tam být stovky tvorů, NPC a dalších entit, které je třeba zpracovat, přičemž každá má jiné animace, zvuky a další efekty. To může zahltit i ty nejrychlejší procesory, na kterých většina tohoto zpracování probíhá.

Ano, CPU a ne GPU. I když je GPU často považován za úzké hrdlo herního výkonu, jde především o výběr vhodného rozlišení a kvality grafiky. Snižte nastavení a/nebo rozlišení dostatečně hluboko a limitujícím faktorem se stane CPU. A ve složitých hrách může tento limit CPU snadno klesnout pod 144 snímků za sekundu. Zatímco k dosažení 144 snímků za sekundu je často nutná rychlá grafická karta, může být zapotřebí i stejně rychlý procesor.

Assassin’s Creed Odyssey může téměř dosáhnout 144 snímků za sekundu … s RTX 2080 Ti.

Hitman 2 naráží na úzké hrdlo procesoru kolem 122 snímků za sekundu.

Monster Hunter World má také problém dostat se nad 120 snímků za sekundu.

Podívejte se na benchmarky CPU ve hrách Assassin’s Creed, Monster Hunter a Hitman. Při běhu v rozlišení 1080p a nízké nebo střední kvalitě dochází k výbornému škálování z hlediska výkonu CPU, ale 144 snímků za sekundu je stále obtížně překonatelná překážka. Důležitější je, že škálování vychází převážně z rychlosti taktování, přičemž počet jader a vláken je méně důležitým faktorem – zejména při přechodu přes šestijádrové procesory. To proto, že většině her stále vládne jediné vlákno, které odvádí většinu práce.

Převraťte věci a přemýšlejte o každém snímku v milisekundách. Při stabilních 60 snímcích za sekundu má každý snímek maximálně 16,7 ms času na grafiku a zpracování. Přeskočte na 144 snímků za sekundu a každý snímek má pouze 6,9 ms, během kterých se vše dokončí. Kolik času však ve skutečnosti zabere každá část vykreslování aktuálního snímku? Odpověď zní, že různě, a to vede k diskusi o Amdahlově zákonu.

Podstatou Amdahlova zákona je, že vždy existují části kódu, které nelze paralelizovat. Představte si hypotetickou hru, kde jedinému 4,0GHz jádru Intelu trvá 50 ms, než zpracuje všechny výpočty pro každý snímek. Taková hra by byla omezena na 20 snímků za sekundu. Pokud lze 75 % herního kódu rozdělit do dílčích úloh, které běží současně, ale 25 % se vykonává v jediném vlákně, pak bez ohledu na to, kolik jader procesoru je k dispozici, by byl výkon na 4,0GHz procesoru Intel v nejlepším případě stále jen 80 snímků za sekundu. Pro ilustraci jsem provedl rychlou a špinavou ubrouskovou matematiku:

Není to skutečný ubrousek, protože můj rukopis nestojí za nic.

Přepracování kódu hry tak, aby se na jednom vlákně provádělo jen 12,5 procenta, možná dokonce 5 procent, může pomoci. Pak je možné dosáhnout 160 snímků za sekundu nebo dokonce 400 snímků za sekundu, ale to zabere vývojářům čas, který by mohli lépe využít jinde – a procesory samozřejmě nemají nekonečný počet jader a vláken. Jde o to, že existuje omezené množství času, ve kterém lze zpracovat veškerý vstup uživatele, stav hry, síťový kód, grafiku, zvuk, umělou inteligenci atd. a složitější hry ze své podstaty vyžadují více času.

I se 4GHz a rychlejšími CPU pracujícími v tandemu s tisíci jádry GPU uplyne 6,9 ms rychle, a pokud se díváte na 240Hz displej, na kterém běží hry při 240 snímcích za sekundu, má to jen 4,2 ms na každý snímek. Pokud se někdy na cestě vyskytne zádrhel – např. hra potřebuje načíst některé objekty nebo textury z úložiště, což může trvat od několika milisekund na rychlém SSD až třeba po desítky ms na pevném disku – hra se silně zadrhne. To je svět, ve kterém žijeme.

Lara není spokojená s výkonem pod 144 snímků za sekundu.

Řekněme to jinak. Moderní počítače mohou potenciálně přežvýkat miliardy výpočtů každou sekundu, ale každý výpočet je extrémně jednoduchý: A + B například. Zpracování logické aktualizace pro jednu entitu může vyžadovat tisíce nebo desetitisíce instrukcí a všechny tyto aktualizace UI a entit jsou stále jen malým zlomkem toho, co se musí odehrát každý snímek. Vývojáři her musí vše vyvážit, aby dosáhli přijatelné úrovně výkonu, a na počítačích to může znamenat schopnost běžet na všem od starých čtyřjádrových procesorů Core 2 Quad nebo Athlon X4 až po moderní procesory Ryzen nebo Core 9. generace a grafické procesory od integrovaných grafik Intel až po GeForce RTX 2080 Ti.

Je možné vytvářet hry, které mohou běžet s extrémně vysokou snímkovou frekvencí. Víme to, protože už existují. Ale tyto hry obvykle nejsou nejmodernější z hlediska grafiky, umělé inteligence a dalších prvků. Jsou v zásadě jednodušší v někdy ne tak zřejmých ohledech. I snižování herní a grafické složitosti může jít jen do určité míry. Sedm let stará hra CS:GO v rozlišení 1080p s přetaktovaným 5GHz procesorem Core i7-8700K dosahuje maximálních snímků za sekundu kolem 300 (3,3 ms na snímek), přičemž zadrhávání snižuje minimální snímky za sekundu zhruba na polovinu. CS:GO můžete spustit při 270-300 snímcích za sekundu na všem od GTX 1050 po Titan RTX, protože hlavním limitujícím faktorem je procesor.

Zkrátka, dosažení 144 snímků za sekundu není jen o hardwaru. Je to o softwaru a návrhu hry a někdy si prostě musíš odpustit. Pokud si zakládáte na hraní se 144 snímky za sekundu, nejlepší rada, kterou vám mohu dát, je pamatovat si, že framerate (nebo frametimes, chcete-li) není všechno. U kompetitivního multiplayeru, kde pomůže každá možná výhoda v podobě latence, snižte nastavení na minimum a uvidíte, jak hra poběží, a případně zvyšte několik nastavení, pokud máte prostor k hýbání.

I když se vám nepodaří udržet 144 nebo více snímků za sekundu, 144Hz obnovovací frekvence je stále úžasná – cítím ten rozdíl už jen při interakci s plochou Windows. Kvalitnější 144Hz displeje také podporují technologie G-Sync a FreeSync, které mohou pomoci vyhnout se znatelnému zadrhávání a trhání při poklesu o něco pod 144 snímků za sekundu. Dokonale plynulý framerate by byl sice hezký, ale to samo o sobě ze hry skvělou neudělá. Takže se pohodlně usaďte a prostě si užijte jízdu bez ohledu na hardware nebo snímkovou frekvenci.

Aktuality

{{{název článku }}}

Articles

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.