Jeg spurte utviklere hvorfor PC-porter i 2023 går som søppel

respek dt utvalgt bilde 2
Denne historien er en del av Jacob Roachs ReSpec-serie, som dekker verden av PC-spilling og maskinvare.

Når man ser på tilstanden til PC-utgivelser i 2023 er det lett å begynne å peke fingre. Spillet er ikke optimalisert (uansett hva det betyr), eller utgiveren hastet det ut for raskt, eller grafikkortene Nvidia har solgt til oss kommer med for lite VRAM. Men disse anklagene er i de fleste tilfeller halvferdige og overmodige, og selv om de antyder virkeligheten, forteller de ikke hele historien.

Innhold

  • Hva er problemet?
  • Hva du kan gjøre riktig
  • Veien videre for PC-porter

Anbefalte videoer

Jeg ville vite hva som faktisk foregikk, så jeg satte meg ned med noen få utviklere for å forstå tilstanden til PC-spill og hvorfor så mange utgivelser har kommet med så store problemer. Enda viktigere, jeg ønsket å vite hva utviklere og utgivere kunne gjøre for å løse disse problemene, og selv om veien videre ikke er klar, begynner det å bli åpenbart at utviklere vet at det er en problem.

Hva er problemet?

En liten spill-PC som sitter ved siden av PS5.

Først må vi identifisere kjerneproblemet med PC-en, spesielt når spill leveres i spillbare (om ikke perfekte) tilstander på konsoller, men kommer fryktelig ødelagte på PC. På et høyt nivå er problemet med PC-en som plattform nettopp det som gjør den så fristende i utgangspunktet: fleksibilitet.

I slekt

  • Med eksklusive PC-partnerskap taper alle
  • Konsoller har fortsatt én stor fordel, og det skader PC-spilling
  • Hvordan et viralt bodycam-spill lurte internett til å tro at det var ekte opptak

Marc Whitten, senior visepresident og daglig leder for Unity Create, sier at "det store mangfoldet og variasjonen av PC-konfigurasjoner som spill skal spilles på... definitivt kan avsløre uventede problemer." Whitten peker også på "forskjellige operativsystemer og nye driveroppdateringer, varme og ventetid og brukertilpasning" som faktorer som kan spille inn i problemet.

Det er svaret, jeg er sikker på, at de fleste antar er forklaringen.

Men problemet, ifølge Whitten, er ikke mangel på testing i seg selv. Han hevder at spill "generelt testes omfattende gjennom utviklingen." Problemet kommer ned til omfanget av forskjellige konfigurasjoner som utviklere må teste, samt variabler de ikke kan ta hensyn til til.

Som et tankeeksperiment, la oss si at en utvikler festet 100 forskjellige PC-konfigurasjoner for å teste, varierende CPU, GPU, RAM, og harddisk mellom dem. For ordens skyld er dette et tall jeg bare trekker frem, ikke noe en utvikler faktisk refererte til som et realistisk mål. Ta nå alle disse konfigurasjonene og multipliser dem med dusinvis av tilleggsfaktorer: Hvilket operativsystem bruker du? Hvilken versjon av det OS? Hva med driverversjonen? Hvilke BIOS-innstillinger er aktivert? Har du programvare som kjører i bakgrunnen som Razer Synapse eller Corsair iCue?

RTX 4080 i en løpetestbenk.
Jacob Roach / Digitale trender

Omfanget av mulige konfigurasjoner går langt utover bare hvilken CPU og GPU du har i systemet ditt, og disse faktorene kan lett formere seg til titusenvis av scenarier som utviklere rett og slett ikke kan ta hensyn til til. I en ideell verden kan utviklere fikse de største problemene for de mest populære PC-konfigurasjonene med de nyeste driverne og OS-oppdateringene, og bare etterlate små, spesifikke problemer å løse etter lansering.

Whitten er heller ikke alene om denne følelsen. John Johanas, spillsjef for Hi-Fi Rushog The Evil Within 2, sier at "det er ganske urealistisk å tro at du kan lage et produkt som vil fungere feilfritt på hva føles som en ubegrenset konfigurasjon av CPUer, GPUer, minne og mer sannsynlig hva som kjører i bakgrunn."

Hideyuki Miyashita, systemprogrammerer på Hi-Fi Rush, enig, men pekte spesifikt på kostnadene ved å optimalisere et spill for alle mulige konfigurasjoner: «In med tanke på PC-ytelse, noe som gjør hver grafikkfunksjon skalerbar for forskjellige konfigurasjoner ideell; imidlertid setter utviklingskostnadene et øvre tak på realistisk skalerbarhetsstøtte.»

Dette er ikke en ny historie. Den store mengden av PC-konfigurasjoner er den vanlige skyldige i alt fra hvor vanskelig det er å optimalisere spill på PC til hvorfor vi ikke har sett Xboxs Quick Resume vises i Windows. Spørsmålet er hva utviklere kan gjøre til tross for den begrensede tiden og pengene de har. Fordi PC-er ikke blir enklere, og spill kommer fortsatt på plattformen ødelagte.

Hva du kan gjøre riktig

Cal Kestis bruker sitt blå lyssabel og bærer BD-1 i Star Wars Jedi: Survivor.

Vi har mange eksempler på spill som gjør PC-støtte feil i år. En primtall eksempel er Star Wars Jedi: Survivor, som for øyeblikket sitter på en "Blandet" anmeldelsesstatus på Steam til tross for at det er et av årets mest anerkjente spill. Toppanmeldelsen lyder: "Et enkelt krasj ødelagte 140-timers 99,8% NG+-lagringsfilen min." Jepp.

Jeg tok kontakt med utviklingsteamet for å få en idé om hva som gikk galt, og selv om de i utgangspunktet var mottakelige, gikk EA inn og sluttet å returnere e-postene mine. Så i stedet for å se på hvilke spill som gjør feil på PC, må vi se på hva utviklere gjør riktig.

Hi-Fi Rush er en førsteklasses case-studie. Det er et nytt spill fra et AAA-studio, og det bruker den beryktede Unreal Engine 4. Du tror kanskje det er å sammenligne eple med appelsiner mellom Hi-Fi Rush og et spill som Star Wars Jedi: Survivor, men de har mer til felles enn du kanskje mistenker. Som Johanas påpeker, "... det faktum at spillet har en tegneserie-estetikk vil gi noen brukere en oppfatning av at spillet ikke burde være et problem å kjøre på noens PC. Realistisk sett gjør spillet mange ting for å oppnå utseendet vi gikk for og konstant en verden i bevegelse som er veldig krevende... Jeg visste det å gå inn og sørget for at vi prøvde å treffe dem forventninger."

Chai kutter en robot i Hi-Fi Rush.
Bethesda

Å sette det målet fra starten virket viktig for Hi-Fi Rushsin stabilitet. Utviklerne bemerker at det var et designmål fra begynnelsen å opprettholde minst 60 bilder per sekund (fps) på grunn av det faktum at det både er et rytmespill og et actionspill, der det å bomme under dette merket ville forårsake "hikke [som] kan resultere i en desynkronisering fra musikk og en opplevd dårlig spillopplevelse," ifølge Johanas.

Hvordan klarte teamet på Tango Gameworks det? Det koker stort sett ned til tre hovedpunkter: nøye VRAM-overvåking, asynkrone operasjoner og PSO-bufring.

Ifølge Kosuke Tanaka, ledende grafikkprogrammerer for Hi-Fi Rush, teamet overvåket VRAM-bruk gjennom hvert trinn i utviklingen. Det inkluderer selvfølgelig å overvåke hvert nivå, men også hver kunstseksjons VRAM-bruk, og be artister om å redusere tekstur- eller mesh-minnebruken for å passe innenfor spillets budsjett. Dette er heller ikke uvanlig i spillutvikling.

Hva fungerer i Hi-Fi Rushsin fordel er dens sterke kunstneriske retning. Som Tanaka påpeker: "Kunststilen vår hjalp oss litt fordi vi ikke krever tradisjonelle PBR-teksturer som vanlige kart, ruhet kart, eller metalliske kart." Det er et vitnesbyrd om å jobbe med kreative begrensninger, og hvordan det kan påvirke stabiliteten til finalen produkt. Johanas sier at det ikke var et spørsmål om et mindre omfang - det var et spørsmål om å ha "ikke behov for å gå stort uten grunn."

Jeg spurte teamet hva det lærte av Hi-Fi Rush at den kan føre inn i større, bredere prosjekter, men det er ikke akkurat slik Tango tar lærdom fra spillet. Faktisk fortalte utviklingsteamet meg at de lærte mye mer om optimalisering fra Ghostwire: Tokyo, som passer inn i mer av den tradisjonelle AAA-formen, og den tok med seg disse ideene Hi-Fi Rush, ikke omvendt.

Akito angriper fiender med magi i Ghostwire: Tokyo.
Ghostwire: Tokyo er et tidlig utstillingsvindu av Unreal Engines TSR, som er veldig lik FSR 2.0.

"Vi lærte mye av kunnskapen vår om hvordan vi skal håndtere stamming i spillet Hi-Fi Rush fra vår erfaring med å optimalisere Ghostwire: Tokyo," fortalte Miyashita meg. En stor del av det var  Pipeline State Object (PSO) bufring. Dette er en funksjon tilgjengelig i Unreal Engine 4 som bidrar til å redusere stamming ved å forhåndskompilere shaders før du kjører spillet.

Hovedproblemet er at Unreal Engine 4 ikke gjør dette automatisk, noe som fører til situasjoner der shaders må kompilere mens du spiller spillet, noe som forårsaker hakking. Miyashita sier "dette resulterte i at noen postprosesser og VFX forårsaket stamming." Programmereren sier også at PSO-bufring er valgfritt, så det må være et spesifikt fokus for utvikleren.

Bufring løser imidlertid ikke alle problemer, og det er her asynkrone operasjoner kommer inn. De Hi-Fi Rush teamet brukte asynkron kompilering – der shaders kompileres separat fra spilltråden – men det var også et stort fokus med tanke på at spillet kjørte på Unreal Engine 4.

Som vi har sett med andre Unreal Engine 4-spill som Star Wars Jedi: Survivor og Redfall, motoren er ikke veldig god til å skalere til de mange trådene som er tilgjengelige på moderne CPUer. Som Miyashita forklarer: «Hvor vanskelig det kan være å støtte multi-threading er svært avhengig av den brukte motoren arkitektur. Dessverre kommer UE4 litt til kort i denne forbindelse.»

Spesielt Unreal Engine 4, ifølge utvikleren, plasserer skuespiller (objekter/karakterer) og widget (UI og overlegg) på samme CPU-tråd som spillet. Det betyr at når spillet for eksempel vil laste inn en ny karakter, prioriteres det på tråden. Miyashita sier "dette kan resultere i at kompleks skuespiller- og widgetoppretting blokkerer spilletråden i lang tid." Det er en stamming.

Løsningen er asynkrone operasjoner. Miyashita sier at teamet bruker analyseverktøy for å finne ut hva CPU-en gjør når objekter bringes inn, og at de gjør en innsats for å flytte disse oppgavene til forskjellige tråder slik at spillet ikke går tregt ned. Denne spesifikke målrettingen kan også hjelpe med ressursinnlasting. Å flytte disse operasjonene inn i en parallell struktur kan unngå fallgruvene med strømmingsstamming som finnes i spill som Dead Space.

Veien videre for PC-porter

Layla skjermer seg med en spektral paraply i Redfall.

Spillene som kommer ut i katastrofale stater i dag begynte utviklingen for mange år siden, så selv om jeg er håpefull at PC-utgivelser vil forbedre seg etter hvert som året fortsetter, kan det gå flere år før vi ser disse kjerneproblemene adressert.

Whitten sier at «utviklere er like opptatt av ytelse som spillere», og det er en følelse jeg har hørt flere ganger. Det finnes måter å optimalisere PC-utgivelser på, fra pre-caching shaders til asynkrone operasjoner til validering på et bredt utvalg maskinvare. Men realiteten er at utviklere ikke kan gjøre rede for alt, på grunn av tid eller penger, og vanligvis begge deler.

Veien videre her er enkel. Først, la utgiverne av disse spillene vite at du heller vil se en forsinkelse enn et ødelagt spill. Å rope på utviklere vil ikke gjøre mye - de kjenner allerede til problemet, og de vil sannsynligvis like det løst like mye som deg. For det andre, vær forsiktig med å kjøpe et nytt PC-spill på utgivelsesdagen. Det er vanskelig å være tålmodig når du ser frem til noe (tro meg, jeg vet), men venter med å kjøpe et spill til problemer er løst sender et sterkt signal til utgivere om å investere mer tid og ressurser i å sørge for at spillene er polert på PC.

Det er lett å glemme at dette fortsatt er ukjent territorium. Nå mer enn noen gang kommer spill på PC samme dag som de kommer på konsoller, mye i motsetning til for noen år siden hvor PC-porter kom måneder (eller til og med år) senere. For to konsollgenerasjoner siden ble de fleste spill bare sendt samme dag til én plattform; i forrige generasjon var det to. Nå forventes utviklere å sende til minst tre plattformer samme dag, og noen ganger oppover fem hvis de har en siste generasjons versjon.

Det er ikke vanskelig å se hvorfor det er problemer på PC gitt den konteksten, men forhåpentligvis er mer polerte utgivelser på vei.

Denne artikkelen er en del av ReSpec – en pågående toukentlig spalte som inkluderer diskusjoner, råd og dybderapportering om teknologien bak PC-spilling.

Redaktørenes anbefalinger

  • Jeg prøvde å gjenoppleve den glemte arven etter Halo som en Mac-franchise - og det var en katastrofe
  • De verste PC-portene gjennom tidene - og hvorfor de var så dårlige
  • Star Wars Jedi: Survivor blir anmeldelsesbombet på Steam som en "total crap" PC-port
  • Hvordan Unreal Engine 5 takler det største problemet innen PC-spilling
  • AI kommer for PC-spillene dine, men du bør være spent, ikke bekymret