Bij het bekijken van de staat van pc-releases in 2023 is het gemakkelijk om met de vinger te wijzen. De game is niet geoptimaliseerd (wat dat ook betekent), of de uitgever heeft het te snel uitgebracht, of de grafische kaarten die Nvidia ons verkoopt, komen met te weinig VRAM. Maar deze beschuldigingen zijn in de meeste gevallen halfbakken en aanmatigend, en hoewel ze naar de realiteit verwijzen, vertellen ze niet het volledige verhaal.
Inhoud
- Wat is het probleem?
- Wat je goed kunt doen
- De weg vooruit voor pc-poorten
Aanbevolen video's
Ik wilde weten wat er werkelijk aan de hand was, dus ging ik om de tafel met een paar ontwikkelaars om de stand van zaken op het gebied van pc-games te begrijpen en waarom er zoveel releases met zulke grote problemen zijn uitgekomen. Wat nog belangrijker was, ik wilde weten wat ontwikkelaars en uitgevers zouden kunnen doen om deze problemen op te lossen, en hoewel de weg vooruit niet duidelijk is, wordt het duidelijk dat ontwikkelaars weten dat er een probleem.
Wat is het probleem?
Eerst moeten we het kernprobleem met de pc identificeren, vooral wanneer games in speelbare (zo niet perfecte) staten op consoles worden verzonden, maar vreselijk kapot aankomen op pc. Op een hoog niveau is het probleem met de pc als platform precies wat het in de eerste plaats zo aantrekkelijk maakt: flexibiliteit.
Verwant
- Met exclusieve pc-partnerschappen verliest iedereen
- Consoles hebben nog steeds één groot voordeel, en het schaadt pc-gaming
- Hoe een viraal bodycam-spel het internet liet denken dat het echte beelden waren
Marc Whitten, senior vice president en general manager van Unity Create, zegt dat "de enorme diversiteit en variabiliteit van pc-configuraties waarop games worden gespeeld... onverwachte problemen blootleggen.” Whitten wijst ook op "verschillende besturingssystemen en nieuwe stuurprogramma-updates, hitte en latentie, en gebruikersaanpassing" als factoren die een rol kunnen spelen bij het probleem.
Dat is het antwoord, daar ben ik zeker van, waarvan de meeste mensen aannemen dat het de verklaring is.
Maar het probleem is volgens Whitten niet een gebrek aan testen zelf. Hij beweert dat games "over het algemeen uitgebreid worden getest tijdens de ontwikkeling". Het probleem komt erop neer de schaal van verschillende configuraties die ontwikkelaars moeten testen, evenals variabelen die ze niet kunnen verklaren voor.
Stel dat een ontwikkelaar bij wijze van gedachte-experiment 100 verschillende pc-configuraties heeft vastgelegd om te testen, variërend van de CPU, GPU, RAM, en de harde schijf ertussen. Voor de goede orde, dit is een cijfer dat ik er gewoon uit haal, niet iets dat een ontwikkelaar daadwerkelijk als een realistisch doel noemde. Neem nu al die configuraties en vermenigvuldig het met tientallen extra factoren: welk besturingssysteem gebruikt u? Welke versie van dat besturingssysteem? Hoe zit het met de driverversie? Welke BIOS-instellingen zijn ingeschakeld? Draait er software op de achtergrond zoals Razer Synapse of Corsair iCue?
De reikwijdte van mogelijke configuraties gaat veel verder dan alleen wat CPU en GPU je in je systeem hebt, en deze factoren kunnen zich gemakkelijk vermenigvuldigen tot tienduizenden scenario's waar ontwikkelaars eenvoudigweg geen rekening mee kunnen houden voor. In een ideale wereld kunnen ontwikkelaars de grootste problemen voor de meest populaire pc-configuraties oplossen met de nieuwste driver- en OS-updates, zodat er na de lancering alleen kleine, specifieke problemen overblijven.
Whitten is ook niet de enige in dit sentiment. John Johanas, gamedirecteur van Hi-Fi haastEn Het kwaad binnen 2, zegt dat “het vrij onrealistisch is om te denken dat je een product kunt maken dat feilloos werkt op wat voelt als een onbeperkte configuratie van CPU's, GPU's, geheugen en, waarschijnlijker, wat er in de achtergrond."
Hideyuki Miyashita, systeemprogrammeur aan hifi haast, was het daarmee eens, maar wees specifiek op de kosten van het optimaliseren van een spel voor elke mogelijke configuratie: “In termen van pc-prestaties, zou het schaalbaar maken van elke grafische functie voor verschillende configuraties zijn ideaal; de ontwikkelingskosten stellen echter een bovengrens aan realistische schaalbaarheidsondersteuning.”
Dit is geen nieuw verhaal. De grote hoeveelheid pc-configuraties is de gemeenschappelijke boosdoener in alles, van hoe moeilijk het is om games op pc te optimaliseren tot waarom we het niet hebben gezien Xbox's Quick Resume verschijnt in Windows. De vraag is wat ontwikkelaars kunnen doen ondanks de beperkte tijd en het geld dat ze hebben. Omdat pc's er niet eenvoudiger op worden en er nog steeds kapotte games op het platform aankomen.
Wat je goed kunt doen
We hebben veel voorbeelden van games die pc-ondersteuning dit jaar verkeerd doen. Een primeur voorbeeld is Star Wars Jedi: Overlevende, welke momenteel heeft een "Gemengde" beoordelingsstatus op Steam ondanks dat het een van de meest geprezen games van het jaar is. De toprecensie luidt: "Een enkele crash beschadigde mijn 140 uur durende 99,8% NG + opslagbestand." Jakkes.
Ik nam contact op met het ontwikkelingsteam om een idee te krijgen van wat er mis ging, en hoewel ze aanvankelijk ontvankelijk waren, kwam EA tussenbeide en stopte met het terugsturen van mijn e-mails. Dus in plaats van te kijken naar wat games fout doen op pc, moeten we kijken naar wat ontwikkelaars goed doen.
Hi-Fi haast is een uitstekende casestudy. Het is een nieuwe game van een AAA-studio en gebruikt de beruchte Unreal Engine 4. Je zou kunnen denken dat het appel met peren vergelijken is Hi-Fi haast en een spel als Star Wars Jedi: overlevende, maar ze hebben meer gemeen dan je zou vermoeden. Zoals Johanas opmerkt: “... het feit dat de game een cartoonesthetiek heeft, zal sommige gebruikers de indruk geven dat de game geen probleem zou moeten zijn om op iemands pc te draaien. Realistisch gezien doet de game veel dingen om de look te bereiken waar we voor gingen en de constante bewegende wereld die erg belastend is … Ik wist dat toen ik naar binnen ging en zorgde ervoor dat we probeerden die te raken verwachtingen.”
Dat doel vanaf het begin stellen leek me belangrijk Hi-Fi haastde stabiliteit. De ontwikkelaars merken op dat het vanaf het begin een ontwerpdoel was om ten minste 60 frames per seconde (fps) te behouden vanwege het feit dat het zowel een ritmespel als een actiegame, waarbij het niet halen van dat doel zou leiden tot "hik [die] zou kunnen resulteren in een desynchronisatie van muziek en een waargenomen slechte gameplay-ervaring", aldus Johanas.
Hoe heeft het team van Tango Gameworks het voor elkaar gekregen? Het komt grofweg neer op drie hoofdpunten: zorgvuldige VRAM-bewaking, asynchrone bewerkingen en PSO-caching.
Volgens Kosuke Tanaka, hoofd grafische programmeur voor hifi haast, het team bewaakte het VRAM-gebruik tijdens elke ontwikkelingsstap. Dat omvat natuurlijk het monitoren van elk niveau, maar ook het VRAM-gebruik van elke kunstsectie, waarbij artiesten worden gevraagd om het textuur- of mesh-geheugengebruik te verlagen om binnen het budget van de game te passen. Dit is ook niet ongebruikelijk in de ontwikkeling van games.
Wat werkt erin Hi-Fi haast's gunst is de sterke artistieke richting. Zoals Tanaka opmerkt: "Onze kunststijl heeft ons een beetje geholpen omdat we geen traditionele PBR-texturen nodig hebben, zoals normale kaarten, ruwheid kaarten, of metalen kaarten.” Het is een bewijs van het werken met creatieve beperkingen, en hoe dat de stabiliteit van de finale kan beïnvloeden Product. Johanas zegt dat het geen kwestie was van een kleiner bereik - het was een kwestie van "het is niet nodig om zonder reden groot te worden".
Ik vroeg het team waar het van had geleerd Hi-Fi haast dat het zou kunnen worden meegenomen in grotere, bredere projecten, maar dat is niet precies hoe Tango lessen trekt uit het spel. Het ontwikkelingsteam vertelde me zelfs dat het veel meer over optimalisatie had geleerd van Ghostwire: Tokio, die past in meer van de traditionele AAA-mal, en het bracht die ideeën erin hifi haast, niet andersom.
“We hebben veel van onze kennis geleerd over hoe om te gaan met in-game stotteren Hi-Fi haast uit onze ervaring met optimaliseren Ghostwire: Tokio', vertelde Miyashita me. Een groot deel daarvan was Pipeline State Object (PSO) caching. Dit is een functie die beschikbaar is in Unreal Engine 4 en helpt stotteren te verminderen door shaders vooraf te compileren voordat je de game start.
Het grootste probleem is dat Unreal Engine 4 dit niet automatisch doet, wat leidt tot situaties waarin de shaders moeten compileren terwijl je het spel speelt, wat stotteren veroorzaakt. Miyashita zegt: "dit resulteerde in enkele postprocessen en VFX die stotteren veroorzaakten." De programmeur zegt ook dat PSO-caching optioneel is, dus het moet een specifieke focus zijn voor de ontwikkelaar.
Caching lost echter niet elk probleem op, en dat is waar asynchrone bewerkingen om de hoek komen kijken. De Hi-Fi haast team gebruikte asynchrone compilatie - waarbij shaders afzonderlijk van de game-thread worden gecompileerd - maar het was ook een grote focus aangezien de game op Unreal Engine 4 draaide.
Zoals we hebben gezien bij andere Unreal Engine 4-games zoals Star Wars Jedi: Overlevende En roodval, de engine is niet erg goed in het schalen naar de vele threads die beschikbaar zijn op moderne CPU's. Als Miyashita legt uit: “Hoe moeilijk het ondersteunen van multi-threading kan zijn, hangt sterk af van de gebruikte engine architectuur. Helaas schiet UE4 wat dat betreft een beetje tekort.”
In het bijzonder plaatst Unreal Engine 4, volgens de ontwikkelaar, het maken van acteurs (objecten/personages) en widgets (UI en overlay) op dezelfde CPU-thread als de game. Dat betekent dat wanneer de game bijvoorbeeld een nieuw personage wil laden, deze voorrang krijgt op de thread. Miyashita zegt: "dit kan resulteren in het maken van complexe acteurs en widgets die de game-thread lange tijd blokkeren." Dat is stotteren.
De oplossing is asynchrone bewerkingen. Miyashita zegt dat het team analysetools gebruikt om vast te stellen wat de CPU doet wanneer objecten worden gebracht in, en dat ze moeite doen om die taken naar verschillende threads te verplaatsen, zodat het spel niet vertraagt omlaag. Deze specifieke targeting kan ook helpen bij het laden van bronnen. Door die bewerkingen naar een parallelle structuur te verplaatsen, kunnen de valkuilen van streaming-stotter die aanwezig zijn in games zoals Lege ruimte.
De weg vooruit voor pc-poorten
De games die vandaag in rampzalige staten uitkomen, zijn jaren geleden begonnen met hun ontwikkeling, dus hoewel ik goede hoop heb dat pc-releases in de loop van het jaar zullen verbeteren, kan het enkele jaren duren voordat we deze kernproblemen zien aangesproken.
Whitten zegt dat "ontwikkelaars net zo bezorgd zijn over prestaties als spelers", en dat is een gevoel dat ik meerdere keren heb gehoord. Er zijn manieren om pc-releases te optimaliseren, van pre-caching shaders tot asynchrone bewerkingen tot validatie op een breed scala aan hardware. Maar de realiteit is dat ontwikkelaars niet alles kunnen verklaren, vanwege tijd of geld, en meestal beide.
De weg vooruit is hier eenvoudig. Laat eerst de uitgevers van deze games weten dat je liever een vertraging ziet dan een kapotte game. Schreeuwen tegen ontwikkelaars zal niet veel helpen - ze kennen het probleem al, en ze zouden waarschijnlijk net zo graag willen dat het je oplost. Ten tweede, wees voorzichtig met het oppikken van een nieuwe pc-game op de releasedag. Het is moeilijk om geduldig te zijn als je ergens naar uitkijkt (geloof me, ik weet het), maar wachten met het kopen van een game tot de problemen zijn opgelost, geeft een sterk signaal af aan uitgevers om meer tijd en middelen te investeren om ervoor te zorgen dat games worden gepolijst op pc.
Het is gemakkelijk om te vergeten dat dit nog onbekend terrein is. Meer dan ooit komen games op de pc op dezelfde dag dat ze op consoles aankomen, in tegenstelling tot een paar jaar geleden, waar pc-poorten maanden (of zelfs jaren) later arriveerden. Twee consolegeneraties geleden werden de meeste games slechts op dezelfde dag naar één platform verzonden; bij de vorige generatie waren dat er twee. Nu wordt van ontwikkelaars verwacht dat ze minimaal op dezelfde dag naar drie platforms verzenden, en soms meer dan vijf als ze een versie van de laatste generatie hebben.
Het is niet moeilijk te begrijpen waarom er problemen zijn op pc gezien die context, maar hopelijk komen er meer gepolijste releases aan.
Dit artikel is onderdeel van ReSpec - een doorlopende tweewekelijkse column met discussies, advies en diepgaande rapportage over de technologie achter pc-gaming.
Aanbevelingen van de redactie
- Ik probeerde de vergeten erfenis van Halo opnieuw te beleven als een Mac-franchise - en het was een ramp
- De slechtste pc-poorten aller tijden - en waarom ze zo slecht waren
- Star Wars Jedi: Survivor wordt op Steam gebombardeerd als een 'total crap' pc-poort
- Hoe Unreal Engine 5 het grootste probleem in pc-gaming aanpakt
- AI komt eraan voor je pc-games, maar je zou opgewonden moeten zijn, geen zorgen