Når man ser på tilstand af pc-udgivelser i 2023 er det nemt at begynde at pege fingre. Spillet er ikke optimeret (hvad det end betyder), eller udgiveren skyndte sig ud for hurtigt, eller de grafikkort, Nvidia har solgt os, kommer med for lidt VRAM. Men disse beskyldninger er i de fleste tilfælde halvbagte og formastelige, og selvom de antyder virkeligheden, fortæller de ikke hele historien.
Indhold
- Hvad er problemet?
- Hvad du kan gøre rigtigt
- Vejen frem for pc-porte
Anbefalede videoer
Jeg ville gerne vide, hvad der egentlig foregik, så jeg satte mig ned med et par udviklere for at forstå tilstanden af pc-spil, og hvorfor der er kommet så mange udgivelser med så store problemer. Endnu vigtigere ville jeg gerne vide, hvad udviklere og udgivere kunne gøre for at løse disse problemer, og selvom vejen frem ikke er klar, bliver det tydeligt, at udviklere ved, at der er en problem.
Hvad er problemet?
Først skal vi identificere kerneproblemet med pc'en, især når spil sendes i spilbare (hvis ikke perfekte) tilstande på konsoller, men ankommer forfærdeligt ødelagte på pc'en. På et højt niveau er problemet med pc'en som platform netop det, der gør den så tillokkende i første omgang: fleksibilitet.
Relaterede
- Med eksklusive pc-partnerskaber taber alle
- Konsoller har stadig én stor fordel, og det skader pc-spil
- Hvordan et viralt bodycam-spil narrede internettet til at tro, at det var ægte optagelser
Marc Whitten, senior vicepræsident og general manager for Unity Create, siger, at "den store mangfoldighed og variation af pc-konfigurationer, som spil vil blive spillet på... helt sikkert kan afsløre uventede problemer." Whitten peger også på "forskellige operativsystemer og nye driveropdateringer, varme og latency og brugertilpasning" som faktorer, der kan spille ind i problemet.
Det er det svar, jeg er sikker på, som de fleste mennesker antager er forklaringen.
Men problemet er ifølge Whitten ikke mangel på test i sig selv. Han hævder, at spil "generelt testes grundigt gennem udviklingen." Problemet kommer ned til omfanget af forskellige konfigurationer, som udviklere skal teste, samt variabler, de ikke kan tage højde for til.
Som et tankeeksperiment, lad os sige, at en udvikler har fastgjort 100 forskellige pc-konfigurationer for at teste, varierende CPU, GPU, vædder, og harddisk mellem dem. For ordens skyld er dette et tal, jeg bare trækker frem, ikke noget, som en udvikler faktisk refererede til som et realistisk mål. Tag nu alle disse konfigurationer og gange dem med snesevis af yderligere faktorer: Hvilket OS bruger du? Hvilken version af det OS? Hvad med driverversionen? Hvilke BIOS-indstillinger er aktiveret? Har du noget software, der kører i baggrunden som Razer Synapse eller Corsair iCue?
Omfanget af mulige konfigurationer rækker langt ud over, hvad CPU og GPU du har i dit system, og disse faktorer kan nemt formere sig til titusindvis af scenarier, som udviklere simpelthen ikke kan tage højde for til. I en ideel verden kan udviklere løse de største problemer for de mest populære pc-konfigurationer med de nyeste driver- og OS-opdateringer, hvilket kun efterlader små, specifikke problemer at løse efter lanceringen.
Whitten er heller ikke alene i denne følelse. John Johanas, spildirektør for Hi-Fi Rushog The Evil Within 2, siger, at "det er ret urealistisk at tro, at du kan lave et produkt, der vil køre fejlfrit på hvad føles som en ubegrænset konfiguration af CPU'er, GPU'er, hukommelse og mere sandsynligt, hvad der kører i baggrund."
Hideyuki Miyashita, systemprogrammør på Hi-Fi Rush, aftalt, men pegede specifikt på omkostningerne ved at optimere et spil til enhver mulig konfiguration: “In med hensyn til pc-ydeevne, hvilket gør hver grafikfunktion skalerbar til forskellige konfigurationer ideel; dog sætter udviklingsomkostningerne et øvre loft over realistisk skalerbarhedsunderstøttelse."
Dette er ikke en ny historie. Det store udvalg af pc-konfigurationer er den almindelige synder i alt fra hvor svært det er at optimere spil på pc til hvorfor vi ikke har set Xbox's Quick Resume vises i Windows. Spørgsmålet er, hvad udviklere kan gøre på trods af den begrænsede tid og penge, de har. Fordi pc'er ikke bliver nemmere, og spil ankommer stadig på platformen i stykker.
Hvad du kan gøre rigtigt
Vi har mange eksempler på spil, der understøtter pc forkert i år. En prime eksempel er Star Wars Jedi: Survivor, som pt sidder på en "Blandet" anmeldelsesstatus på Steam på trods af at det er et af årets mest roste spil. Den øverste anmeldelse lyder: "Et enkelt nedbrud beskadigede min 140-timers 99,8% NG+-gemmefil." Yikes.
Jeg kontaktede udviklingsteamet for at få en idé om, hvad der gik galt, og selvom de i starten var modtagelige, trådte EA ind og holdt op med at returnere mine e-mails. Så i stedet for at se på, hvilke spil der gør forkert på pc, skal vi se på, hvad udviklere gør rigtigt.
Hi-Fi Rush er et førsteklasses casestudie. Det er et nyt spil fra et AAA-studie, og det bruger den berygtede Unreal Engine 4. Du tror måske, det er at sammenligne æble med appelsiner imellem Hi-Fi Rush og et spil som Star Wars Jedi: Survivor, men de har mere til fælles, end du måske tror. Som Johanas påpeger, "... vil det faktum, at spillet har en tegneserieæstetik, give nogle brugere en opfattelse af, at spillet ikke burde være et problem at køre på nogens pc. Realistisk set gør spillet mange ting for at opnå det udseende, vi gik efter og konstant bevægende verden, der er meget belastende... Jeg vidste det, da jeg gik ind og sørgede for, at vi prøvede at ramme dem forventninger."
At sætte det mål fra starten virkede vigtigt for Hi-Fi Rush's stabilitet. Udviklerne bemærker, at det var et designmål fra begyndelsen at opretholde mindst 60 billeder i sekundet (fps) på grund af det faktum, at det både er et rytmespil og et actionspil, hvor det ville forårsage "hikke [der] kunne resultere i en desynkronisering fra musik og en opfattet dårlig gameplay-oplevelse", ifølge Johanas.
Hvordan klarede holdet hos Tango Gameworks det? Det koger bredt ned til tre hovedpunkter: omhyggelig VRAM-overvågning, asynkrone operationer og PSO-cache.
Ifølge Kosuke Tanaka, ledende grafikprogrammør for Hi-Fi Rush, teamet overvågede VRAM-brug gennem hvert trin i udviklingen. Det inkluderer selvfølgelig overvågning af hvert niveau, men også hver kunstsektions VRAM-brug, og beder kunstnere om at sænke tekstur eller mesh-hukommelsesforbrug for at passe inden for spillets budget. Dette er heller ikke ualmindeligt i spiludvikling.
Hvad virker i Hi-Fi Rush's fordel er dens stærke kunstneriske retning. Som Tanaka påpeger: "Vores kunststil hjalp os lidt, fordi vi ikke kræver traditionelle PBR-teksturer såsom normale kort, ruhed kort eller metalliske kort." Det er et vidnesbyrd om at arbejde med kreative begrænsninger, og hvordan det kan påvirke stabiliteten i finalen produkt. Johanas siger, at det ikke var et spørgsmål om et mindre omfang - det var et spørgsmål om at have "intet behov for at gå stort uden grund."
Jeg spurgte holdet, hvad det lærte af Hi-Fi Rush at det kunne føre til større, bredere projekter, men det er ikke præcis sådan, Tango tager ved lære af spillet. Faktisk fortalte udviklingsteamet mig, at det lærte meget mere om optimering fra Ghostwire: Tokyo, som passer ind i mere af den traditionelle AAA-form, og den førte disse ideer ind Hi-Fi Rush, ikke omvendt.
"Vi lærte meget af vores viden om, hvordan man håndterer in-game stammen Hi-Fi Rush fra vores erfaring med at optimere Ghostwire: Tokyo,” fortalte Miyashita mig. En stor del af det var Pipeline State Object (PSO) caching. Dette er en funktion tilgængelig i Unreal Engine 4, der hjælper med at reducere stammen ved at prækompilere shaders, før du kører spillet.
Hovedproblemet er, at Unreal Engine 4 ikke gør dette automatisk, hvilket fører til situationer, hvor shaderne skal kompilere, mens du spiller spillet, hvilket forårsager en hakken. Miyashita siger "dette resulterede i, at nogle postprocesser og VFX forårsagede stammen." Programmøren siger også, at PSO-caching er valgfrit, så det skal være et specifikt fokus for udvikleren.
Caching løser dog ikke alle problemer, og det er her, asynkrone operationer kommer ind. Det Hi-Fi Rush team brugte asynkron kompilering - hvor shaders kompileres separat fra spiltråden - men det var også et stort fokus i betragtning af, at spillet kørte på Unreal Engine 4.
Som vi har set med andre Unreal Engine 4-spil som Star Wars Jedi: Survivor og Rødfald, motoren er ikke særlig god til at skalere til de mange tråde, der er tilgængelige på moderne CPU'er. Som Miyashita forklarer: "Hvor svært det kan være at understøtte multi-threading afhænger i høj grad af den brugte motors arkitektur. Desværre kommer UE4 lidt til kort i denne henseende."
Især Unreal Engine 4 placerer ifølge udvikleren skuespiller- (objekter/karakterer) og widget-skabelse (UI og overlay) på den samme CPU-tråd som spillet. Det betyder, at når spillet f.eks. vil indlæse en ny karakter, prioriteres det i tråden. Miyashita siger "dette kan resultere i, at kompleks skuespiller- og widgetoprettelse blokerer spiltråden i lang tid." Det er en stamme.
Løsningen er asynkrone operationer. Miyashita siger, at holdet bruger analyseværktøjer til at lokalisere, hvad CPU'en gør, når objekter bringes ind, og at de gør sig umage med at flytte de opgaver til forskellige tråde, så spillet ikke går langsommere ned. Denne specifikke målretning kan også hjælpe med indlæsning af ressourcer. Flytning af disse operationer til en parallel struktur kan undgå faldgruberne ved streaming-stamming, der findes i spil som f.eks Dead Space.
Vejen frem for pc-porte
De spil, der udkommer i katastrofale tilstande i dag, begyndte deres udvikling for år siden, så selvom jeg er håbefuld at pc-udgivelser vil blive bedre, som året fortsætter, kan der gå flere år, før vi ser disse kerneproblemer adresseret.
Whitten siger, at "udviklere er lige så bekymrede for ydeevne som spillere", og det er en følelse, jeg har hørt flere gange. Der er måder at optimere pc-udgivelser på, fra pre-caching shaders til asynkrone operationer til validering på en lang række hardware. Men virkeligheden er, at udviklere ikke kan redegøre for alt, på grund af tid eller penge, og normalt begge dele.
Vejen frem her er enkel. Lad først udgiverne af disse spil vide, at du hellere vil se en forsinkelse end et ødelagt spil. At råbe til udviklere vil ikke gøre meget - de kender allerede problemet, og de vil sikkert gerne have det løst lige så meget som dig. For det andet skal du være forsigtig med at hente et nyt pc-spil på udgivelsesdagen. Det er svært at være tålmodig, når man ser frem til noget (tro mig, jeg ved det), men venter med at købe et spil, indtil problemer er blevet rettet, sender et stærkt signal til udgivere om at investere mere tid og ressourcer i at sikre, at spil er poleret på pc.
Det er let at glemme, at dette stadig er ukendt territorium. Nu mere end nogensinde kommer spil til pc samme dag, som de ankommer til konsoller, meget i modsætning til for et par år siden, hvor pc-porte ankom måneder (eller endda år) senere. For to konsolgenerationer siden blev de fleste spil kun sendt samme dag til én platform; i den forrige generation var det to. Nu forventes udviklere at sende til mindst tre platforme på samme dag, og nogle gange op til fem, hvis de har en sidste generations version.
Det er ikke svært at se, hvorfor der er problemer på pc i den sammenhæng, men forhåbentlig er mere polerede udgivelser på vej.
Denne artikel er en del af ReSpec – en løbende klumme hver anden uge, der inkluderer diskussioner, råd og dybdegående rapportering om teknologien bag pc-spil.
Redaktørens anbefalinger
- Jeg forsøgte at genopleve den glemte arv fra Halo som en Mac-franchise - og det var en katastrofe
- De værste pc-porte nogensinde - og hvorfor de var så dårlige
- Star Wars Jedi: Survivor bliver anmeldelse-bombet på Steam som en 'total crap' pc-port
- Hvordan Unreal Engine 5 tackler det største problem inden for pc-spil
- AI kommer til dine pc-spil, men du bør være spændt, ikke bekymret