Con Steam Machine, Steam Phone è molto indietro? | Hard Philosophy

ifanr si concentra sui "prodotti di domani" e la sua rubrica "Hard Philosophy" cerca di eliminare la patina di tecnologia e parametri per esplorare l'elemento umano nella progettazione dei prodotti.

Per i giocatori più accaniti su PC, l'offesa più grave non è necessariamente essere chiamati "EZ" dopo una partita, ma ricevere una domanda durante una discussione di gioco:

Posso giocare a questo gioco sul mio telefono?

Questo profondo divario tra PC e telefoni cellulari esiste da oltre un decennio. In Europa e in America, il mercato dei videogiochi vede almeno la partecipazione delle console, ma nel mercato interno, dove le console non sono molto popolari, questo divario ha dato vita a una semplice gerarchia di disprezzo: i giochi per PC sono semplicemente migliori di quelli per dispositivi mobili .

Ma le barriere non sono permanenti.

Che si tratti di uno sviluppatore di giochi che persegue il profitto o di uno sviluppatore indipendente che desidera che più persone giochino al proprio lavoro, tutti sperano di espandere i propri giochi su più piattaforme e raggiungere più giocatori.

▲Animal Well

Tra questi rientrano Steam, attualmente la più grande piattaforma di vendita di giochi per PC, e Valve, la società che la gestisce.

In realtà, le ambizioni di Valve vanno ben oltre. Sebbene il trio di Steam Machine, uscito il mese scorso, sia ancora presentato nella consueta versione "console", ciò che Valve spera davvero è di permettervi di giocare ai titoli tripla A per PC sul vostro cellulare .

Libera Windows dalla sua gabbia

Come Steam Deck, Steam Machine è una console, ma funziona su un vero PC. La differenza principale tra questa e un computer Windows è il sistema operativo: SteamOS, basato su Arch Linux.

▲ SteamOS 3 su Arch Linux

Tuttavia, la posizione consolidata di Windows, costruita nel corso di decenni, non è facilmente scossa e la sfida più grande nel giocare su Linux è che i giochi stessi non sono compatibili.

Per risolvere questo problema, Valve si è impegnata fin dall'inizio, incoraggiando gli sviluppatori a creare versioni Linux separate oltre a quelle per la piattaforma Windows. Tuttavia, ha dimostrato che aspettarsi che gli sviluppatori di videogiochi si adattino proattivamente a un numero limitato di piattaforme utente è come aspettarsi la neve a Guangzhou .

▲ Immagine | Geek delle istruzioni

Pertanto, durante lo sviluppo di Steam OS per Steam Deck, Valve, pur rimanendo fedele al percorso Linux, ha adottato un approccio completamente diverso:

Dato che gli sviluppatori non si stanno adattando in modo proattivo, svilupperò un livello di compatibilità sufficientemente buono. Finché l'esperienza di gioco non verrà compromessa, ai giocatori non importerà se il gioco gira su Windows o Linux.

Questo livello di compatibilità, che "consente a Linux di offrire un'esperienza di gioco paragonabile a Windows", è Proton, sviluppato da Valve. Traduce le API richieste dai giochi Windows nel linguaggio Linux in modo praticamente lossless, consentendo ai giochi già disponibili su Steam di funzionare sullo Steam Deck .

▲ Immagine|Reddit

Ma i piani di Valve non si fermano a Steam Deck e Linux. Il visore Steam Frame, lanciato insieme a Steam Machine, anticipa un'altra rivoluzione.

Sebbene la funzione principale dello Steam Frame sia quella di visore VR per lo streaming, Valve sta effettivamente testando la sua capacità di eseguire giochi in locale .

▲ Immagine|CNET

A differenza del visore Galaxy VR che abbiamo visto il mese scorso, Valve non ha scelto il processore Snapdragon AR comunemente utilizzato nei visori. Ha invece optato direttamente per uno Snapdragon 8 Gen 3 , lo stesso processore utilizzato nello Xiaomi 14, consentendo a Steam Frame non solo di trasmettere in streaming, ma anche di eseguire giochi Windows in modo indipendente tramite SteamOS.

In altre parole, a partire da Steam Frame, Valve non solo ha colmato il divario tra le risorse di gioco su Windows e Linux, ma ha anche colmato il divario tra la piattaforma x86 e ARM, rendendo realmente possibile per i dispositivi ARM eseguire senza problemi giochi per PC basati su Linux .

Da x86 nativo a ARM nativo

Anche la tecnologia che consente a Steam Frame di eseguire giochi per PC utilizzando Snapdragon 8 Gen 3 è un livello di compatibilità, ma non è nota quanto Proton; il suo nome è FEX.

▲ Immagine|GitHub

Per consentire ai giochi nella libreria Steam, originariamente scritti per la piattaforma Windows x86, di funzionare in modo nativo sulla piattaforma ARM SteamOS (Linux), Proton e FEX devono lavorare insieme, ed è esattamente ciò che fa Steam Frame.

Questo processo può essere semplificato come segue:

  • FEX funziona innanzitutto creando un ambiente di istruzioni x86 sul processore ARM, consentendo così a SteamOS di avviarsi normalmente.
  • Dopo aver eseguito l'accesso a SteamOS, usa Proton per tradurre i giochi Windows in giochi Linux e infine apri e gioca normalmente.

Poiché Linux utilizza principalmente le API grafiche OpenGL e Vulkan, mentre quasi tutti i giochi sviluppati per Windows utilizzano l'API grafica DirectX di Microsoft, il compito principale di Proton è tradurre le richieste di rendering basate su DirectX nel gioco in Vulkan e poi trasmetterle alla CPU e alla GPU per generare le immagini.

▲The Witcher 3

In realtà esistono molti "strumenti di traduzione" simili, come Wine, su cui si basa Proton. Tuttavia, ciò che consente veramente a SteamDeck, in quanto dispositivo portatile a basso consumo, di eseguire giochi nativi per Windows non è solo la traduzione, ma una traduzione efficiente.

La capacità di Proton di tradurre in modo efficiente DirectX e Vulkan non si basa solo sul DXVK esistente in Wine, ma anche su due nuovi standard sviluppati sotto la guida di Valve: VKD3D-Proton e Ntsync.

La funzione principale di VKD3D-Proton è tradurre le più recenti API grafiche Direct3D 12 in Vulkan , il che significa che SteamOS può eseguire i più recenti giochi ad alto budget sviluppati negli ultimi anni. Allo stesso tempo, può anche supportare ray tracing, Reflex e FSR4 in ambiente Linux, ottenendo molteplici vantaggi.

▲ Ad esempio, grazie a DX12, Steam Deck ora supporta la tecnologia a bassa latenza Nvidia Reflex.

Ntsync, d'altra parte, è una tecnologia rivoluzionaria per il gaming su Linux. Si tratta di un driver kernel Linux di basso livello in grado di comprendere in modo nativo la semantica di sincronizzazione di Windows NT in modo pressoché privo di perdite.

In breve, Ntsync riduce al minimo il consumo di CPU quando Linux emula un ambiente Windows , con conseguenti miglioramenti significativi per gli scenari di gioco che richiedono un uso intensivo della CPU (ad esempio in presenza di folle dense e vegetazione).

▲Cyberpunk 2077 V: Il condominio al piano inferiore richiede un utilizzo intensivo della CPU.

In questo modo, SteamOS utilizza DXVK per tradurre le vecchie API, VKD3D-Proton per tradurre in modo efficiente le nuove API e Ntsync per ridurre al minimo il consumo di CPU, consentendo in definitiva agli sviluppatori di giochi di eseguire giochi Windows in modo nativo su SteamDeck senza dover adattare attivamente.

Tuttavia, SteamDeck utilizza ancora un processore x86 di livello desktop, mentre Steam Frame utilizza un processore mobile basato su ARM. Come possono i giochi Windows funzionare in modo nativo in un ambiente ARM?

▲ Prototipo trasparente di Steam Frame di Valve | PC Gamer

La risposta rimane la simulazione . Tuttavia, tradurre semplicemente il linguaggio Windows in Linux all'interno di Proton non è sufficiente; è necessario un altro strumento per tradurre le istruzioni x86 in istruzioni ARM, e questo strumento è il recente sviluppo di FEX.

Poiché il processo di traduzione FEX-Emu è più complesso, coinvolgendo conversioni in set di istruzioni CISC e RSIC, ottimizzazione dell'ordine di memoria e traduzione di librerie, può essere semplicemente interpretato come FEX che converte istruzioni x86 in istruzioni ARM tramite compilazione Just-In-Time (JIT). Il processo di traduzione è più automatizzato e la sua adattabilità e velocità sono molto più efficienti rispetto ad altre soluzioni di traduzione .

▲ God of War 4 in esecuzione su Risa Starry O6 (piattaforma ARM) con l'aiuto di FEX | Interfacciamento Linux

Inoltre, quando FEX e Proton lavorano insieme, FEX traduce solo il codice del gioco. Quando il gioco richiama un'API grafica (come Vulkan o DX12), l'esecuzione passa al codice ARM nativo.

Ciò significa che la perdita di prestazioni causata dall'emulazione FEX di x86 è limitata alla parte CPU della logica di gioco, mentre la parte di rendering grafico della GPU funziona quasi a piena velocità, rendendo possibile a Steam Frame di eseguire giochi Windows con un solo Snapdragon 8 Gen 3.

▲ Immagine|Strade verso la realtà virtuale

È interessante notare che Steam Frame non è compatibile solo con i giochi Windows su Steam, ma anche con alcune app Android, tutte implementate in SteamOS, basato su Arch Linux. Il livello utilizzato per eseguire il software Android è essenzialmente un livello di compatibilità simile.

La cosa geniale è che, nonostante FEX sia un progetto open source, Valve in realtà fornisce silenziosamente finanziamenti e supporto tecnico al progetto fin dal 2018.

▲ Foto|FOSS

In un'intervista con The Verge, l'architetto di SteamOS Pierre-Loup Griffais ha dichiarato:

Dal 2016, Valve recluta e finanzia sviluppatori open source per affrontare il problema dei giochi Windows eseguiti su ARM. Valve non vuole che gli sviluppatori perdano tempo a convertire i loro giochi; punta invece a utilizzare la tecnologia per rendere le librerie di giochi per PC esistenti direttamente compatibili con le future architetture hardware.

FEX è l'"approccio tecnico" scelto da Valve: invece di far lavorare gli sviluppatori per diverse piattaforme, è meglio utilizzare uno strumento universale che consenta a diverse piattaforme di comprendere in modo efficiente il codice dei giochi Windows . In un certo senso, può anche essere considerato una forma di "ingegneria dei fattori umani".

Steam Phone è molto indietro?

Sempre nell'intervista di The Verge a Pierre-Loup Griffais, alla fine dell'intervista, il direttore Sean Hollister ha posto a Pierre-Loup Griffais una domanda interessante:

In futuro ci saranno telefoni con SteamOS?

La risposta di Pierre-Loup Griffais è stata alquanto ambigua:

Abbiamo effettivamente fatto qualche tentativo nel settore mobile tramite l'app Steam Link, ma non so se "sviluppare contenuti locali" o "sviluppare SteamOS per questi tipi di dispositivi (telefoni)" diventeranno i nostri obiettivi principali in futuro.

A giudicare solo dalle risposte, Valve attualmente posiziona i telefoni cellulari principalmente come dispositivi di streaming e ha scarso interesse nello sviluppo di contenuti per SteamOS mobile o persino per Android nativo.

Ma come accennato in precedenza, con il supporto di Proton e FEX-Emu, SteamOS è di fatto completamente pronto per eseguire e supportare i giochi Windows su hardware mobile .

In effetti, ci sono stati alcuni casi di appassionati che hanno creato SteamOS sui loro telefoni, ma a causa della mancanza di supporto di base, il danno è spesso ingente. Va bene per scopi dimostrativi, ma se vuoi davvero far girare un gioco, preparati a subirne le conseguenze.

▲ Immagine|DualShockers

In realtà, essendo un'azienda commerciale matura, Valve deve aver valutato internamente l'idea di portare SteamOS sui dispositivi mobili, trovandosi di fronte a un mercato globale degli smartphone che superava i 500 miliardi di dollari. Tuttavia, l'ostacolo probabilmente non era il costo o la tecnologia, ma piuttosto qualcosa di molto familiare ai videogiocatori su PC:

Anti-imbroglio.

Infatti, per non parlare dell'inesistente Steam Phone, anche su SteamDeck, una parte significativa dei giochi che non funzionano correttamente è dovuta in realtà al fatto che le misure anti-cheat integrate non possono essere eseguite nell'ambiente SteamOS Linux , piuttosto che al fatto che il codice del gioco non è traducibile.

Il motivo è che gli attuali strumenti anti-cheat più diffusi, come BattleEye, EAC e Vanguard, devono essere tutti caricati nel kernel di Windows (Ring 0). Tuttavia, Proton, in quanto "strumento di traduzione", non è responsabile dell'emulazione del kernel, il che fa sì che questi software anti-cheat determinino che l'ambiente non è sicuro e si rifiutino di avviare il gioco.

▲ BattleEye (sinistra) e EAC (destra)|PCGamesN

Inoltre, FEX, responsabile della traduzione delle istruzioni x86 e ARM, funziona tramite compilazione della memoria in tempo reale. Questo meccanismo di traduzione dinamica è pressoché identico alla logica dei cheat (iniezione, hooking, modifica delle istruzioni) agli occhi dei software anti-cheat. Questo metodo di compromettere l'integrità del codice attiverà direttamente l'allarme dei software anti-cheat.

Questa contraddizione, che si manifesta simultaneamente nei livelli di autorizzazione non uniformi (Ring 0 e Ring 3), nell'ambiente kernel non attendibile e nel conflitto tra il meccanismo di rilevamento e la logica di traduzione, rappresenterà un problema insanabile a meno che i fornitori di software anti-cheat non prendano l'iniziativa di fare marcia indietro e fornire versioni Linux/ARM di software anti-cheat che non dipendano dai driver del kernel. In caso contrario, basandosi esclusivamente sull'attuale soluzione di emulazione di Valve, si tratterà di un problema insanabile.

▲ Foto|Dexerto

Di fronte a questo problema, l'unica soluzione potrebbe essere quella per Valve di sfruttare la propria posizione di mercato per spingere i fornitori di anti-cheat a implementare una certificazione whitelist speciale per l'ambiente Proton + FEX, trattando Steam Machine, Steam Frame e Steam Phone in modo diverso.

Tuttavia, questa soluzione è disponibile solo per i produttori disposti a collaborare. Per i giochi che richiedono una forte protezione del kernel (come un gran numero di titoli Riot), questo approccio non è ancora praticabile.

Tuttavia, "difficoltà" non significa "impossibile". Dopotutto, i problemi che Steam Phone sta affrontando oggi sono esattamente le stesse sfide che SteamDeck ha dovuto affrontare in passato. Dato che Valve è riuscita a promuovere alcuni giochi con funzionalità anti-cheat integrate per ottimizzarli per SteamDeck, non è impossibile promuovere la progettazione di nuove funzionalità anti-cheat per Steam Phone.

▲ Immagine|CNET

Inoltre, anche se Steam Phone non riesce a ottenere il 99% dei giochi online multigiocatore a causa della sua incapacità di caricare misure anti-cheat, l'ampia gamma di giochi per Windows di Steam offre comunque innumerevoli titoli eccellenti che non dipendono da Internet né richiedono misure anti-cheat.

Con la memoria, i dischi rigidi, le schede grafiche e persino Windows stesso che diventano sempre più costosi, Valve esplorerà senza dubbio mercati oltre i PC . Steam Frame è solo il primo passo; Steam Phone non è certo lontano.

Mettendo da parte tutto il resto, immaginare quando potrò giocare a giochi come RimWorld, VA-11 Hall-A, Night in the Woods o persino Disco Elysium in qualsiasi momento e ovunque sul mio Steam Phone sarebbe un'esperienza fantastica.

▲ Immagine|Community Steam

#Benvenuti a seguire l'account WeChat ufficiale di iFanr: iFanr (ID WeChat: ifanr), dove vi verranno presentati contenuti ancora più interessanti il ​​prima possibile.

ifanr | Link originale · Visualizza commenti · Sina Weibo