Proberen af te kicken van de 60fps-gewoonte is hard werken.

Het is de heilige graal van de huidige gaming-pc’s: 144 fps. Je hebt een geweldige gamingmonitor aangeschaft en deze gekoppeld aan de snelste CPU en een van de beste grafische kaarten die er te koop zijn. Het is zo soepel, zo responsief, en je bent klaar om je tegenstanders te domineren met je superieure vaardigheden – of op zijn minst je hogere verversingssnelheid. Er is alleen één probleem. 144 fps (of meer) halen in veel games is moeilijk, en soms is het gewoon ronduit onmogelijk. Wat is het probleem?

Het begint met het ontwerp en de functies van een spel. Niet om consoles in de schaduw te zetten (wat dan ook, ik zet consoles volledig in de schaduw), maar wanneer verschillende van de huidige generatie spelplatforms niet hoger dan 60Hz kunnen uitvoeren, is het logisch dat de spellen die erop worden gespeeld, niet meer dan 60fps – of in sommige gevallen zelfs 30fps – halen. Als een spelontwikkelaar vanuit dat perspectief begint, kan het erg moeilijk zijn om dit later nog te corrigeren. We hebben gezien dat games als Fallout 4 physics, bewegingssnelheid, en nog veel meer koppelen aan framerate, vaak met ongewenste resultaten.

Het gaat niet alleen om het streven naar 30 of 60 fps, echter. Het spel wordt steeds complexer, en complexiteit betekent meer berekeningen doen. Singleplayer-spellen zijn doorgaans een andere ervaring dan multiplayer-spellen. De laatste zijn van nature competitiever, wat betekent dat een hogere fps gunstiger kan zijn voor de topspelers, en ze laten vaak een heleboel dingen achterwege die de frametijden kunnen verlengen.

Competitieve multiplayergames zijn de perfecte speeltuin voor 144Hz-schermen.

Denk bijvoorbeeld aan games als Counter-Strike, Overwatch, PUBG en Fortnite. Er is maar weinig AI of NPC-logica nodig. Het grootste deel van de wereld is statisch en het zijn alleen de spelers die rondrennen, wat veel minder overhead betekent en uiteindelijk de potentie voor hogere framerates.

Voornamelijk singleplayer games zijn een andere zaak. Kijk naar de omgevingen van Assassin’s Creed Odyssey, Monster Hunter World, en Hitman 2. Er kunnen honderden wezens, NPC’s, en andere entiteiten zijn die moeten worden verwerkt, elk met verschillende animaties, geluiden, en andere effecten. Dat kan zelfs de snelste CPU’s, waar een groot deel van die verwerking plaatsvindt, overbelasten.

Ja, de CPU en niet de GPU. Hoewel de GPU vaak wordt beschouwd als de bottleneck voor gaming prestaties, gaat het vooral om het selecteren van de juiste resolutie en grafische kwaliteit. Zet de instellingen en/of resolutie ver genoeg omlaag en de CPU wordt de beperkende factor. En in complexe games kan die CPU-limiet gemakkelijk onder 144 fps zakken. Hoewel een snelle grafische kaart vaak nodig is om 144fps te halen, kan ook een even snelle CPU nodig zijn.

Assassin’s Creed Odyssey kan bijna 144fps halen … met een RTX 2080 Ti.

Hitman 2 loopt vast op een CPU-bottleneck van ongeveer 122 fps.

Monster Hunter World heeft ook moeite om boven de 120 fps uit te komen.

Kijk eens naar de CPU-benchmarks in Assassin’s Creed, Monster Hunter en Hitman. Met 1080p en lage of gemiddelde kwaliteit is er een uitstekende schaalvergroting in termen van CPU-prestaties, maar 144 fps is nog steeds een moeilijke horde om te nemen. Belangrijker is dat de schaalvergroting vooral voortkomt uit de kloksnelheid, waarbij het aantal core en threads een minder grote rol speelt, vooral bij processors met meer dan 6 cores. Dat komt omdat de meeste games nog steeds worden geregeerd door een enkele thread die veel van het werk doet.

Draai de dingen om en denk aan elk frame in termen van milliseconden. Voor een constante 60fps, elk frame heeft maximaal 16,7ms van grafische en verwerkingstijd. Spring naar 144fps en elk frame heeft slechts 6.9ms om alles af te krijgen. Maar hoeveel tijd kost het eigenlijk voor elk deel van het renderen van een actueel frame? Het antwoord is dat het varieert, en dit leidt tot een discussie over de Wet van Amdahl.

De essentie van de Wet van Amdahl is dat er altijd delen van de code zijn die niet kunnen worden geparallelliseerd. Stel je een hypothetisch spel voor waarin een enkele 4,0 GHz Intel core 50 ms nodig heeft om alle berekeningen voor elk frame te verwerken. Dat spel zou beperkt zijn tot 20 fps. Als 75 procent van de spelcode kan worden opgesplitst in subtaken die gelijktijdig worden uitgevoerd, maar 25 procent wordt uitgevoerd op een enkele thread, dan zou ongeacht het aantal beschikbare CPU cores de best-case prestatie op een 4.0GHz Intel CPU nog steeds slechts 80fps zijn. Ik heb wat vlugge en vuile servetwiskunde gemaakt om het te illustreren:

Niet een echt servet, want mijn handschrift is waardeloos.

De spelcode zodanig aanpassen dat slechts 12,5 procent op één thread wordt uitgevoerd, misschien zelfs 5 procent, kan helpen. Dan is 160 of zelfs 400 fps mogelijk, maar dat kost ontwikkelaarstijd die elders beter kan worden besteed – en natuurlijk hebben CPU’s geen oneindig aantal cores en threads. Het punt is dat er een beperkte hoeveelheid tijd is om alle verwerking van gebruikersinvoer, spelstatus, netwerkcode, graphics, geluid, AI, enz. te verwerken en complexere spellen hebben inherent meer tijd nodig.

Zelfs met 4GHz en snellere CPU’s die samenwerken met duizenden GPU-kernen, gaat 6,9 ms snel voorbij, en als je kijkt naar een 240Hz-scherm waarop spellen met 240 fps worden uitgevoerd, is dat slechts 4,2 ms voor elk frame. Als er onderweg een hapering optreedt – het spel moet bijvoorbeeld objecten of texturen laden vanuit de opslagruimte, wat een paar milliseconden kan duren op een snelle SSD tot misschien tientallen ms op een harde schijf – zal het spel hard stotteren. Dat is de wereld waarin we leven.

Lara is niet blij met sub-144fps-prestaties.

Laten we het anders stellen. Moderne pc’s kunnen in potentie miljarden berekeningen per seconde voorkauwen, maar elke berekening is uiterst eenvoudig: A + B bijvoorbeeld. Het verwerken van een logische update voor een enkele entiteit kan duizenden of tienduizenden instructies vereisen, en al die AI en entiteit updates zijn nog steeds maar een klein deel van wat er elk frame moet gebeuren. Game-ontwikkelaars moeten alles in evenwicht brengen om een acceptabel prestatieniveau te bereiken, en op pc’s kan dat de mogelijkheid betekenen om te draaien op alles van een oude 4-core Core 2 Quad of Athlon X4 tot en met een moderne Ryzen of 9e Gen Core CPU, en GPU’s variërend van Intel geïntegreerde graphics tot en met GeForce RTX 2080 Ti.

Het is mogelijk om games te maken die met extreem hoge framerates kunnen draaien. We weten dit omdat ze al bestaan. Maar die spellen zijn meestal niet state of the art in termen van graphics, AI, en andere elementen. Ze zijn fundamenteel eenvoudiger op soms niet zo voor de hand liggende manieren. Zelfs het verminderen van de complexiteit van spellen en graphics kan maar tot op zekere hoogte gaan. Zeven jaar oude CS:GO op 1080p met een overklokte 5GHz Core i7-8700K haalt een maximum van ongeveer 300 fps (3,3 ms per frame), waarbij stutters de minimale fps terugbrengen tot ongeveer de helft daarvan. Je kunt CS:GO draaien met 270-300 fps op alles van een GTX 1050 tot een Titan RTX, omdat de CPU de belangrijkste beperkende factor is.

Kortom, het halen van 144 fps heeft niet alleen met hardware te maken. Het gaat om software en spelontwerp, en soms moet je het gewoon loslaten. Als je je zinnen hebt gezet op 144fps gaming, is het beste advies dat ik kan geven te onthouden dat framerates (of frametijden, als je dat liever hebt) niet alles zijn. Voor competitieve multiplayer, waar elke mogelijke latentievoordeel kan helpen, zet je de instellingen op minimum en kijk je hoe het spel loopt, en verhoog je mogelijk een paar instellingen als er speelruimte is.

Zelfs als je geen 144fps of meer kunt handhaven, zijn 144Hz-verversingsfrequenties nog steeds geweldig – ik voel het verschil alleen al bij interactie met het Windows-bureaublad. De 144Hz-schermen van hogere kwaliteit ondersteunen ook G-Sync en FreeSync, wat merkbare stotteringen en scheuren kan helpen voorkomen wanneer je een beetje onder 144fps zakt. Perfect vloeiende framerates zouden mooi zijn, maar dat alleen maakt een game nog niet geweldig. Dus leun achterover en geniet van de rit, ongeacht je hardware of framerate.

Recent nieuws

{{artikelnaam }}

Articles

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.