Quando si guarda il stato delle versioni per PC nel 2023, è facile iniziare a puntare il dito. Il gioco non è ottimizzato (qualunque cosa significhi), o l'editore lo ha lanciato troppo in fretta, o le schede grafiche che Nvidia ci ha venduto arrivano con poca VRAM. Ma queste accuse, nella maggior parte dei casi, sono incomplete e presuntuose, e sebbene accennino alla realtà, non raccontano tutta la storia.
Contenuti
- Qual è il problema?
- Cosa puoi fare bene
- La via da seguire per le porte PC
Video consigliati
Volevo sapere cosa stava realmente accadendo, quindi mi sono seduto con alcuni sviluppatori per capire lo stato dei giochi per PC e perché sono arrivate così tante versioni con problemi così grandi. Ancora più importante, volevo sapere cosa potevano fare sviluppatori ed editori per risolvere questi problemi, e sebbene il percorso da seguire non sia chiaro, sta diventando ovvio che gli sviluppatori sanno che c'è un problema.
Qual è il problema?
Innanzitutto, dobbiamo identificare il problema principale con il PC, specialmente quando i giochi vengono spediti in condizioni giocabili (se non perfette) su console ma arrivano orribilmente rotti su PC. Ad alto livello, il problema con il PC come piattaforma è esattamente ciò che lo rende così allettante in primo luogo: la flessibilità.
Imparentato
- Con partnership esclusive per PC, tutti perdono
- Le console hanno ancora un grande vantaggio e sta danneggiando i giochi per PC
- Come un gioco virale di bodycam ha indotto Internet a pensare che fosse un filmato reale
Marc Whitten, vicepresidente senior e direttore generale di Unity Create, afferma che "l'assoluta diversità e variabilità delle configurazioni dei PC su cui verranno giocati i giochi... può sicuramente esporre problemi imprevisti”. Whitten indica anche "diversi sistemi operativi e nuovi aggiornamenti dei driver, calore e latenza e personalizzazione dell'utente" come fattori che possono giocare nel problema.
Questa è la risposta, ne sono certo, che la maggior parte delle persone presume sia la spiegazione.
Ma il problema, secondo Whitten, non è la mancanza di test in sé. Afferma che i giochi sono "generalmente ampiamente testati durante lo sviluppo". Il problema si riduce a la scala delle diverse configurazioni che gli sviluppatori devono testare, così come le variabili che non possono tenere conto per.
Come esperimento mentale, supponiamo che uno sviluppatore abbia individuato 100 diverse configurazioni di PC da testare, variando CPU, GPU, RAMe disco rigido tra di loro. Per la cronaca, questo è un numero che sto solo tirando fuori, non qualcosa a cui uno sviluppatore ha effettivamente fatto riferimento come obiettivo realistico. Ora, prendi tutte queste configurazioni e moltiplicale per dozzine di fattori aggiuntivi: quale sistema operativo stai utilizzando? Quale versione di quel sistema operativo? E la versione del driver? Quali impostazioni del BIOS sono abilitate? Hai qualche software in esecuzione in background come Razer Synapse o Corsair iCue?
L'ambito delle possibili configurazioni va ben oltre la semplice CPU e GPU che hai nel tuo sistema e questi fattori possono facilmente moltiplicarsi in decine di migliaia di scenari che gli sviluppatori semplicemente non possono tenere conto per. In un mondo ideale, gli sviluppatori possono risolvere i problemi più grandi per le configurazioni di PC più popolari con i driver più recenti e gli aggiornamenti del sistema operativo, lasciando solo piccoli problemi specifici da affrontare dopo il lancio.
Anche Whitten non è solo in questo sentimento. John Johanas, direttore del gioco di Alta fedeltàE Il male dentro 2, afferma che “è piuttosto irrealistico pensare di poter realizzare un prodotto che funzioni perfettamente su cosa sembra una configurazione illimitata di CPU, GPU, memoria e, più probabilmente, cosa è in esecuzione nel file sfondo."
Hideyuki Miyashita, programmatore di sistemi su Alta fedeltà, concordato, ma in particolare ha sottolineato il costo dell'ottimizzazione di un gioco per ogni possibile configurazione: “In in termini di prestazioni del PC, rendere ogni caratteristica grafica scalabile per diverse configurazioni sarebbe ideale; tuttavia, i costi di sviluppo pongono un tetto massimo su un supporto di scalabilità realistico".
Questa non è una nuova storia. L'ampia gamma di configurazioni del PC è il colpevole comune in tutto, da quanto sia difficile ottimizzare i giochi su PC al motivo per cui non abbiamo visto Il Quick Resume di Xbox viene visualizzato in Windows. La domanda è cosa possono fare gli sviluppatori nonostante il tempo e il denaro limitati che hanno. Perché i PC non stanno diventando più semplici e i giochi continuano ad arrivare sulla piattaforma non funzionanti.
Cosa puoi fare bene
Abbiamo molti esempi di giochi che quest'anno non supportano il PC in modo corretto. Un numero primo esempio è Star Wars Jedi: Sopravvissuto, che attualmente si trova in uno stato di revisione "Misto". su Steam nonostante sia uno dei giochi più acclamati dell'anno. La recensione in alto recita: "Un singolo arresto anomalo ha danneggiato il mio file di salvataggio NG+ al 99,8% di 140 ore". Accidenti.
Ho contattato il team di sviluppo per avere un'idea di cosa fosse andato storto e, sebbene inizialmente fossero ricettivi, EA è intervenuta e ha smesso di rispondere alle mie e-mail. Quindi, invece di guardare a quali giochi fanno male su PC, dobbiamo guardare a cosa fanno bene gli sviluppatori.
Alta fedeltà è un ottimo caso di studio. È un nuovo gioco di uno studio AAA e utilizza il famigerato Unreal Engine 4. Potresti pensare che stia confrontando la mela con le arance tra Alta fedeltà e un gioco come Star Wars Jedi: Sopravvissuto, ma hanno più cose in comune di quanto tu possa sospettare. Come sottolinea Johanas, "... il fatto che il gioco abbia un'estetica da cartone animato darà ad alcuni utenti la percezione che il gioco non dovrebbe essere un problema da eseguire sul PC di nessuno. Realisticamente, il gioco fa molte cose per ottenere l'aspetto che cercavamo e costantemente mondo in movimento che è molto faticoso... lo sapevo entrare e mi sono assicurato che provassimo a colpirli aspettative”.
Stabilire quell'obiettivo dall'inizio sembrava importante Alta fedeltàla stabilità. Gli sviluppatori notano che fin dall'inizio era un obiettivo di progettazione mantenere almeno 60 fotogrammi al secondo (fps) poiché è sia un gioco ritmico che un gioco d'azione, in cui il mancato rispetto di tale segno causerebbe "singhiozzi [che] potrebbero provocare una desincronizzazione dalla musica e una percepita scarsa esperienza di gioco", secondo Johannes.
In che modo il team di Tango Gameworks ce l'ha fatta? Si riduce ampiamente a tre punti principali: attento monitoraggio della VRAM, operazioni asincrone e memorizzazione nella cache PSO.
Secondo Kosuke Tanaka, capo programmatore grafico per Alta fedeltà, il team ha monitorato l'utilizzo della VRAM in ogni fase dello sviluppo. Ciò include il monitoraggio di ogni livello, ovviamente, ma anche l'utilizzo della VRAM di ogni sezione artistica, chiedendo agli artisti di ridurre l'utilizzo della trama o della memoria mesh per rientrare nel budget del gioco. Anche questo non è raro nello sviluppo di giochi.
Cosa funziona Alta fedeltàIl favore di è la sua forte direzione artistica. Come sottolinea Tanaka: "Il nostro stile artistico ci ha aiutato un po' perché non abbiamo bisogno di texture PBR tradizionali come mappe normali, rugosità mappe o mappe metalliche. È una testimonianza del lavorare con limiti creativi e di come ciò possa influenzare la stabilità del finale Prodotto. Johanas afferma che non si trattava di una portata più piccola: si trattava di non avere "nessun bisogno di fare le cose in grande senza motivo".
Ho chiesto alla squadra da cosa ha imparato Alta fedeltà che potrebbe portare a progetti più grandi e più ampi, ma non è esattamente così che Tango sta prendendo lezioni dal gioco. In effetti, il team di sviluppo mi ha detto di aver imparato molto di più sull'ottimizzazione da Filo fantasma: Tokyo, che si adatta più al tradizionale stampo AAA e ha portato quelle idee dentro Alta fedeltà, Non il contrario.
"Abbiamo imparato molte delle nostre conoscenze su come gestire la balbuzie in-game Alta fedeltà dalla nostra esperienza di ottimizzazione Filo fantasma: Tokyo”, mi ha detto Miyashita. Gran parte di quello era Memorizzazione nella cache PSO (Pipeline State Object).. Questa è una funzionalità disponibile in Unreal Engine 4 che aiuta a ridurre la balbuzie precompilando gli shader prima di eseguire il gioco.
Il problema principale è che Unreal Engine 4 non lo fa automaticamente, portando a situazioni in cui gli shader devono essere compilati mentre stai giocando, il che causa una balbuzie. Miyashita afferma che "questo ha portato alcuni post-processi e VFX a causare balbuzie". Il programmatore afferma inoltre che la memorizzazione nella cache PSO è facoltativa, quindi deve essere un obiettivo specifico per lo sviluppatore.
Tuttavia, la memorizzazione nella cache non risolve tutti i problemi ed è qui che entrano in gioco le operazioni asincrone. IL Alta fedeltà team ha utilizzato la compilazione asincrona, in cui gli shader sono compilati separatamente dal thread del gioco, ma è stato anche un grande obiettivo considerando che il gioco girava su Unreal Engine 4.
Come abbiamo visto con altri giochi Unreal Engine 4 come Star Wars Jedi: Sopravvissuto E Redfall, il motore non è molto adatto per il ridimensionamento ai numerosi thread disponibili sulle moderne CPU. Come Miyashita spiega: “Quanto può essere difficile supportare il multi-threading dipende fortemente dal motore utilizzato architettura. Sfortunatamente, UE4 non è all'altezza sotto questo aspetto."
In particolare, Unreal Engine 4, secondo lo sviluppatore, colloca la creazione di attori (oggetti/personaggi) e widget (UI e overlay) sullo stesso thread della CPU del gioco. Ciò significa che ogni volta che il gioco vuole, ad esempio, caricare un nuovo personaggio, ha la priorità sul thread. Miyashita afferma che "questo può comportare la creazione di attori e widget complessi che bloccano il thread del gioco per molto tempo". Questa è una balbuzie.
La soluzione sono le operazioni asincrone. Miyashita afferma che il team utilizza strumenti di analisi per individuare ciò che la CPU sta facendo mentre gli oggetti vengono portati in e che si sforzano di spostare tali attività su thread diversi in modo che il gioco non rallenti giù. Questo targeting specifico può aiutare anche con il caricamento delle risorse. Spostare queste operazioni in una struttura parallela può evitare le insidie della balbuzie dello streaming presente in giochi come Spazio morto.
La via da seguire per le porte PC
I giochi che stanno uscendo in stati disastrosi oggi hanno iniziato il loro sviluppo anni fa, quindi anche se sono fiducioso che le versioni per PC miglioreranno nel corso dell'anno, potrebbero passare diversi anni prima di vedere questi problemi fondamentali affrontato.
Whitten afferma che "gli sviluppatori sono preoccupati per le prestazioni quanto i giocatori" e questo è un sentimento che ho sentito diverse volte. Esistono modi per ottimizzare le versioni per PC, dagli shader di pre-caching alle operazioni asincrone alla convalida su un'ampia varietà di hardware. Ma la realtà è che gli sviluppatori non possono tenere conto di tutto, a causa del tempo o del denaro, e di solito entrambi.
La via da seguire qui è semplice. Innanzitutto, fai sapere agli editori di questi giochi che preferiresti vedere un ritardo piuttosto che un gioco rotto. Gridare agli sviluppatori non servirà a molto: conoscono già il problema e probabilmente vorrebbero che fosse risolto tanto quanto te. In secondo luogo, sii cauto nel raccogliere un nuovo gioco per PC il giorno del rilascio. È difficile essere pazienti quando non vedi l'ora di fare qualcosa (credimi, lo so), ma aspettare di acquistare un gioco fino al i problemi sono stati risolti invia un segnale forte agli editori affinché investano più tempo e risorse per assicurarsi che i giochi siano perfezionati su PC.
È facile dimenticare che questo è ancora un territorio inesplorato. Ora più che mai, i giochi arrivano su PC lo stesso giorno in cui arrivano su console, a differenza di qualche anno fa in cui le porte per PC arrivavano mesi (o addirittura anni) dopo. Due generazioni di console fa, la maggior parte dei giochi veniva spedita lo stesso giorno solo su una piattaforma; nella generazione precedente erano due. Ora, gli sviluppatori dovrebbero spedire almeno tre piattaforme lo stesso giorno, e talvolta fino a cinque se hanno una versione last-gen.
Non è difficile capire perché ci siano problemi su PC dato quel contesto, ma si spera che siano in arrivo versioni più raffinate.
Questo articolo fa parte di Rispec – una colonna bisettimanale in corso che include discussioni, consigli e rapporti approfonditi sulla tecnologia alla base dei giochi per PC.
Raccomandazioni della redazione
- Ho provato a rivivere l'eredità dimenticata di Halo come franchise per Mac, ed è stato un disastro
- I peggiori porting per PC di tutti i tempi e perché erano così pessimi
- Star Wars Jedi: Survivor è stato criticato su Steam come porting per PC "schifo totale".
- In che modo Unreal Engine 5 sta affrontando il problema più grande nei giochi per PC
- L'intelligenza artificiale sta arrivando per i tuoi giochi per PC, ma dovresti essere entusiasta, non preoccupato