Kada gledate u stanje PC izdanja u 2023., lako je početi upirati prstom. Igra nije optimizirana (što god to značilo), ili ju je izdavač prebrzo izbacio, ili grafičke kartice koje nam Nvidia prodaje dolaze s premalo VRAM-a. No te su optužbe, u većini slučajeva, polovične i drske, a iako nagovještavaju stvarnost, ne govore cijelu priču.
Sadržaj
- U čemu je problem?
- Što možete učiniti kako treba
- Put naprijed za PC priključke
Preporučeni videozapisi
Htio sam znati što se zapravo događa, pa sam sjeo s nekoliko programera da shvatim stanje PC igara i zašto je toliko izdanja stiglo s tako velikim problemima. Što je još važnije, želio sam znati što programeri i izdavači mogu učiniti da riješe te probleme, i iako put naprijed nije jasan, postaje očito da programeri znaju da postoji problem.
U čemu je problem?
Prvo, moramo identificirati temeljni problem s računalom, posebno kada se igre isporučuju u stanju za igranje (ako ne i savršenim) na konzolama, ali stignu užasno pokvarene na računalu. Na visokoj razini, problem s računalom kao platformom je upravo ono što ga čini tako primamljivim na prvom mjestu: fleksibilnost.
Povezano
- Uz ekskluzivna PC partnerstva, svi gube
- Konzole još uvijek imaju jednu veliku prednost, a ona šteti PC igranju
- Kako je virusna igrica bodycam prevarila internet da pomisli da se radi o pravoj snimci
Marc Whitten, viši potpredsjednik i generalni direktor Unity Create, kaže da "čista raznolikost i varijabilnost PC konfiguracija na kojima će se igre igrati... definitivno može izložiti neočekivane probleme.” Whitten također ukazuje na "različite operativne sustave i nova ažuriranja upravljačkih programa, toplinu i latenciju te prilagodbu korisnika" kao faktore koji mogu utjecati na problem.
To je odgovor, siguran sam, za koji većina ljudi pretpostavlja da je objašnjenje.
Ali problem, prema Whittenu, nije sam nedostatak testiranja. On tvrdi da se igre "općenito opsežno testiraju tijekom razvoja." Problem se svodi na opseg različitih konfiguracija koje programeri trebaju testirati, kao i varijable koje ne mogu uzeti u obzir za.
Kao misaoni eksperiment, recimo da je razvojni programer odredio 100 različitih konfiguracija računala za testiranje, mijenjajući CPU, GPU, radna memorija, i tvrdi disk između njih. Za zapisnik, ovo je broj koji upravo iznosim, a ne nešto što je programer naveo kao realan cilj. Sada uzmite sve te konfiguracije i pomnožite ih s desecima dodatnih faktora: Koji OS koristite? Koja verzija tog OS-a? Što je s verzijom upravljačkog programa? Koje postavke BIOS-a su omogućene? Imate li neki softver koji radi u pozadini poput Razer Synapse ili Corsair iCue?
Opseg mogućih konfiguracija daleko nadilazi ono što CPU i GPU imate u svom sustavu ti se faktori lako mogu umnožiti u desetke tisuća scenarija koje programeri jednostavno ne mogu uzeti u obzir za. U idealnom svijetu, programeri mogu riješiti najveće probleme za najpopularnije konfiguracije osobnog računala s najnovijim ažuriranjem upravljačkog programa i OS-a, ostavljajući samo male, specifične probleme za rješavanje nakon pokretanja.
Ni Whitten nije sam u ovom osjećaju. John Johanas, direktor igre Hi-Fi Rushi Zlo unutar 2, kaže da je "prilično nerealno misliti da možete napraviti proizvod koji će besprijekorno funkcionirati na čini se kao neograničena konfiguracija CPU-a, GPU-a, memorije i vjerojatnije onoga što se izvodi u pozadina.”
Hideyuki Miyashita, sistemski programer na Hi-Fi Rush, složio, ali je posebno ukazao na trošak optimizacije igre za svaku moguću konfiguraciju: “In U smislu performansi računala, svaka grafička značajka bi bila skalabilna za različite konfiguracije idealan; međutim, troškovi razvoja postavljaju gornju gornju granicu realne podrške skalabilnosti.”
Ovo nije nova priča. Velik niz konfiguracija računala zajednički je krivac za sve, od toga koliko je teško optimizirati igre na računalu do toga zašto nismo vidjeli Xboxov Quick Resume prikazuje se u sustavu Windows. Pitanje je što programeri mogu učiniti unatoč ograničenom vremenu i novcu koji imaju. Jer računala ne postaju ništa jednostavnija, a igre i dalje stižu na platformu pokvarene.
Što možete učiniti kako treba
Ove godine imamo mnogo primjera igara koje krivo rade podršku za PC. Jedan premijer primjer je Ratovi zvijezda Jedi: Preživjeli, koji trenutno ima status pregleda "Mješoviti". na Steamu unatoč tome što je jedna od najhvaljenijih igara godine. Glavna recenzija glasi: "Jedno jedino rušenje oštetilo je moju 140-satnu 99,8% NG+ datoteku za spremanje." Jao.
Obratio sam se razvojnom timu kako bih dobio ideju o tome što je pošlo po zlu, i iako su u početku bili spremni, EA je uskočio i prestao mi vraćati e-poštu. Dakle, umjesto da gledamo što igre rade pogrešno na računalu, moramo pogledati što programeri rade ispravno.
Hi-Fi Rush je vrhunska studija slučaja. To je nova igra iz AAA studija, a koristi ozloglašeni Unreal Engine 4. Možda mislite da je to usporedba jabuke i naranče Hi-Fi Rush i igra poput Ratovi zvijezda Jedi: Preživjeli, ali imaju više zajedničkog nego što mislite. Kao što Johanas ističe, “… činjenica da igra ima estetiku crtića dat će nekim korisnicima percepciju da igrica ne bi trebala predstavljati problem za pokretanje na bilo čijem računalu. Realno, igra čini puno stvari kako bi postigla izgled koji smo željeli i konstantan pokretni svijet koji je vrlo naporan … znao sam da ulazim i pobrinuo se da ih pokušamo pogoditi očekivanja.”
Postavljanje tog cilja od početka se činilo važnim Hi-Fi Rushstabilnost. Programeri napominju da je cilj dizajna od početka bio održavati najmanje 60 sličica u sekundi (fps) zbog činjenice da je to i ritmička igra i akcijska igra, gdje bi pad ispod te oznake uzrokovao "štucanje [koje] bi moglo rezultirati desinhronizacijom glazbe i percipiranim lošim iskustvom igranja", prema Johanas.
Kako je tim iz Tango Gameworksa to uspio? Općenito se svodi na tri glavne točke: pažljivo praćenje VRAM-a, asinkrone operacije i PSO predmemoriranje.
Prema Kosukeu Tanaki, vodećem grafičkom programeru za Hi-Fi Rush, tim je pratio korištenje VRAM-a tijekom svakog koraka razvoja. To uključuje praćenje svake razine, naravno, ali i korištenje VRAM-a svakog umjetničkog odjeljka, tražeći od umjetnika da smanje upotrebu teksture ili mrežaste memorije kako bi se uklopili u proračun igre. Ovo također nije neuobičajeno u razvoju igara.
Što radi u Hi-Fi RushNjegova prednost je njegovo snažno umjetničko usmjerenje. Kao što Tanaka ističe: "Naš umjetnički stil nam je malo pomogao jer ne zahtijevamo tradicionalne PBR teksture kao što su normalne karte, hrapavost karte ili metalne karte." To je dokaz rada s kreativnim ograničenjima i kako to može utjecati na stabilnost finala proizvod. Johanas kaže da se nije radilo o manjem opsegu - radilo se o tome da "nema potrebe da idete na veliko bez razloga".
Pitao sam tim što je naučio Hi-Fi Rush koje bi mogao prenijeti u veće, šire projekte, ali to nije baš način na koji Tango izvlači lekcije iz igre. Zapravo, razvojni tim rekao mi je da je naučio mnogo više o optimizaciji od Ghostwire: Tokio, koji se više uklapa u tradicionalni AAA kalup i prenosi te ideje Hi-Fi Rush, ne obrnuto.
“Naučili smo puno našeg znanja o tome kako se nositi s mucanjem u igri Hi-Fi Rush iz našeg iskustva u optimizaciji Ghostwire: Tokio”, rekao mi je Miyashita. Velik dio toga bio je Predmemoriranje objekta stanja cjevovoda (PSO).. Ovo je značajka dostupna u Unreal Engine 4 koja pomaže u smanjenju zastajkivanja prethodnim kompajliranjem shadera prije pokretanja igre.
Glavni problem je što Unreal Engine 4 to ne radi automatski, što dovodi do situacija u kojima se shaderi trebaju kompilirati dok igrate igru, što uzrokuje zastajkivanje. Miyashita kaže da je "to rezultiralo nekim naknadnim procesima i VFX-om koji su uzrokovali zastajkivanje." Programer također kaže da je PSO predmemoriranje izborno, tako da to mora biti poseban fokus za programera.
Međutim, predmemoriranje ne rješava svaki problem i tu na scenu dolaze asinkrone operacije. The Hi-Fi Rush Tim je koristio asinkronu kompilaciju — gdje se shaderi kompiliraju odvojeno od niti igre — ali to je također bio veliki fokus s obzirom da je igra radila na Unreal Engineu 4.
Kao što smo vidjeli s drugim Unreal Engine 4 igrama poput Ratovi zvijezda Jedi: Preživjeli i Redfall, motor nije baš dobar u skaliranju na mnoge niti dostupne na modernim CPU-ima. Kao Miyashita objašnjava: “Koliko teška može biti podrška multi-threadingu uvelike ovisi o korištenom motoru arhitektura. Nažalost, UE4 malo zaostaje u tom pogledu.”
Konkretno, Unreal Engine 4, prema developeru, smješta stvaranje glumca (objekti/likovi) i widgeta (UI i sloj) na istu CPU nit kao i igra. To znači da kad god igra želi, na primjer, učitati novi lik, on ima prioritet u niti. Miyashita kaže da "to može rezultirati stvaranjem složenih glumaca i widgeta koji dugo blokiraju nit igre." To je mucanje.
Rješenje su asinkrone operacije. Miyashita kaže da tim koristi alate za analizu kako bi odredio što CPU radi dok se objekti donose i da se trude premjestiti te zadatke u različite niti kako se igra ne bi usporila dolje. Ovo specifično ciljanje također može pomoći pri učitavanju resursa. Premještanjem tih operacija u paralelnu strukturu mogu se izbjeći zamke zastajkivanja strujanja prisutne u igrama poput mrtav prostor.
Put naprijed za PC priključke
Igre koje danas izlaze u katastrofalnim državama započele su svoj razvoj prije mnogo godina, pa iako se nadam da će se izdanja za računala poboljšavati kako godina odmiče, može proći nekoliko godina prije nego što uočimo te ključne probleme obratio se.
Whitten kaže da su "programeri jednako zabrinuti za performanse kao i igrači", a to je mišljenje koje sam čuo nekoliko puta. Postoje načini za optimizaciju izdanja za računala, od prethodnog predmemoriranja shadera do asinkronih operacija do provjere valjanosti na velikom broju hardvera. Ali stvarnost je da programeri ne mogu uzeti u obzir sve, zbog vremena ili novca, a obično oboje.
Put naprijed ovdje je jednostavan. Prvo, obavijestite izdavače ovih igara da biste radije vidjeli kašnjenje nego pokvarenu igru. Vikanje na programere neće puno pomoći - oni već znaju problem i vjerojatno bi željeli da ga riješi jednako kao i vi. Drugo, budite oprezni pri preuzimanju nove PC igre na dan izlaska. Teško je biti strpljiv kada se nečemu veseliš (vjeruj mi, znam), ali čekaš da kupiš igricu do Problemi su riješeni šalje snažan signal izdavačima da ulože više vremena i resursa u osiguranje da su igre uglađene na računalu.
Lako je zaboraviti da je ovo još uvijek neistraženo područje. Sada, više nego ikad, igre stižu na računala istog dana kada stignu na konzole, za razliku od prije nekoliko godina kada su priključci za računala stigli mjesecima (ili čak godinama) kasnije. Prije dvije generacije konzola, većina igara isporučena je istog dana samo na jednu platformu; u prethodnoj generaciji bila su dva. Sada se od programera očekuje isporuka na najmanje tri platforme istog dana, a ponekad i više od pet ako imaju verziju posljednje generacije.
Nije teško vidjeti zašto postoje problemi na PC-u s obzirom na taj kontekst, ali nadamo se da su na putu dotjeranija izdanja.
Ovaj je članak dio ReSpec – dvotjedna kolumna u tijeku koja uključuje rasprave, savjete i detaljna izvješća o tehnologiji koja stoji iza PC igara.
Preporuke urednika
- Pokušao sam ponovno proživjeti zaboravljenu ostavštinu Haloa kao franšize za Mac - i to je bila katastrofa
- Najgori PC priključci svih vremena — i zašto su bili tako loši
- Star Wars Jedi: Survivor bombardiran je recenzijama na Steamu kao 'totalno sranje' PC port
- Kako Unreal Engine 5 rješava najveći problem u PC igricama
- AI dolazi za vaše PC igre, ali trebali biste biti uzbuđeni, a ne zabrinuti