Gestione nuova programma nuovo. Un po’ come avviene per i locali come ristoranti, negozi, pub e via dicendo, quando cambiano i vertici cambia anche l’organigramma interno. Lo stesso è avvenuto nella divisione Xbox, con i Mattrick e Whitten che hanno trovato una sistemazione in due importanti aziende americane.
La visione originaria di Xbox One, tutta multimedialità e gaming, è andata ormai perduta e con l’arrivo di Phil Spencer, gamer incallito e affezionato al brand, sono stati già tanti i cambiamenti, anche radicali. È ancora motivo di discussione l’arrivo per giugno di Xbox One senza Kinect; la console sarà così venduta in due versione, una Plus, con console e Kinect sempre a 499 euro, e una standard a 399 euro, contenente solo Xbox One.
Più scelta per il videogiocatore, ennesima inversione da parte di Microsoft, ma c’era da aspettarselo. La stessa casa di Redmond non è mai stata convinta della strategia dell’“all in one” e gli addii eccellenti sono stati solo un primo passo verso il cambiamento radicale.
Xbox One rimane un centro multimediale, con Kinect retrocesso a periferica opzionale, con il futuro incentrato però sul gaming, cosa che poi ci interessa in particolar modo. Kinect che verrà però rilanciato grazie all’arrivo dei Fortaleza Glasses, particolari occhialetti che permetteranno, assieme alla telecamera di rilevamento, di gestire senza problemi la Realtà Aumentata, tecnologia da tempo presente in ambito mobile ma mai sfruttata a dovere: nei piani di Redmond dovrebbe rappresentare lo step successivo della realtà virtuale, visione che non è mai decollata a dovere per via di evidenti limiti tecnici e spaziali. Difficile dire se puntare su realtà aumentata o realtà virtuale, ma Microsoft ha deciso di scommettere sulla prima opzione proprio per un discorso di rilancio del Kinect.
Solo con il Kinect si avrà l’esperienza di gioco definitiva, associando in futuro proprio i Fortaleza Glasses. Il bundle più conveniente sarà, guarda caso, quello da 499 euro: facendo un confronto con la concorrenza, PS4, più PS Cam, più Morpheus costeranno molto di più (un casco di VR è più oneroso di un paio di occhialetti… e la PS Cam non è tecnologicamente in grado di competere con il Kinect). Insomma, il discorso Kinect per Microsoft e i fan di Xbox è tutto fuorché chiuso; solo rimandato di qualche mese, anche se, inutile ribadirlo, la periferica è stata messa in secondo piano.
Decisioni fortemente volute da Spencer che vuole rimettere come focus centrale il gaming su One: per il buon Phil Xbox One è pur sempre una console, tale deve rimanere e videogiochi deve offrire. Tutto il resto è puramente accessorio, anche se ogni aggiunta è pur sempre ben gradita. Parola d’ordine dell’E3: Game On!
Così sarà e per One si tratterà di ripercorrere i passi di Xbox 360, ossia essere una console per hardcore gamer prima di tutto, sistema di intrattenimento multimediale per i meno avvezzi ai videogiochi. Accontentare tutti si può, basta saper prendere le giuste decisioni e Spencer è l’uomo giusto, anche per rilanciare un brand mai stato messo così in discussione sin dalla sua prima apparizione.
Le “bombe” di Halo 5, la rimozione del paywall per i non utenti Gold, l’allineamento del servizio Games with Gold al PlayStation Plus con giochi nuovi e recenti (seppur dati in comodato d’uso, diversamente da quanto accade su 360…) sono arrivate prima dell’E3, evento che si preannuncia essere dannatamente ricco.
Ma ora un piccolo passo indietro: cosa accade ora senza il Kinect non più obbligatorio? Da tempo sappiamo che una porzione della GPU della console riserva un buon 10% delle risorse di sistema per il Kinect:
Xbox One riserva il 10% della GPU per i processi di sistema. Esse vengono utilizzate per Kinect e per il rendering simultaneo di contenuti come la modalità Snap”.
“L’allocazione attuale fornisce un forte isolamento tra il titolo e il sistema, e semplifica lo sviluppo. Questo isolamento implica che il carico di lavoro del sistema, per sua natura variabile, non incide sul rendering del gioco. Pensiamo di offrire in futuro più opzioni agli sviluppatori per accedere a queste risorse della GPU, mantenendo al tempo stesso la piena funzionalità del sistema”.
Tali risorse servono per i compiti GPGPU della periferica e per i calcoli da trasferire a Xbox One su animazioni, junction point dello “scheletro” del giocatore, riconoscimento vocale e gesture. Un dato già confermato nell’intervista agli architetti di Xbox One sul Digital Foundry.
Risorse che prossimamente verranno liberate e dedicate interamente agli sviluppatori per i videogiochi, in modo da avere più RAW force disponibile. Una scelta saggia che offrirà così più potenziale per i developer che non saranno costretti a rinunciare al 10% di risorse, se non interessati al Kinect. Questo rimarrà, per chi lo lascerà collegato, in una sorta di stand-by, con un 1% riservato per comandi vocali e funzioni di base, slegate dall’ambito gaming.
Ma come avverrà lo sblocco di questa piccola parte di risorse? Xbox One, come forse saprete, si basa sulla virtualizzazione dell’intero SO, con due partizioni dedicata una alle app e una ai videogame e una sorta di hypervisor che fa da “ponte” di collegamento tra i due sub-SO.
Praticamente è la stessa Microsoft a decidere a quali risorse possono accedere gli sviluppatori, cosa tenere nascosto e cosa sbloccare, proprio in virtù del fatto che non è presente un Sistema Operativo “vicino al metallo”.
Più in generale possiamo riassumere lo schema di Xbox One nel seguente modo:
-Hardware
-Software
-Cloud Computing
Vediamo più approfonditamente l’aspetto Software, dato che l’hardware l’abbiamo già trattato in passato e anche in maniera approfondita.
Xbox One si basa sulla presenza di un Host OS che è il Sistema Operativo più vicino all’hardware e che gestisce anche le due partizioni virtuali basate su kernell Windows 8, una Shared Partition per le applicazioni e i servizi, una Exlusive Partition dedicata unicamente ai giochi.
Come si può vedere dall’immagine sopra, slide mostrato alla GDC 2014, abbiamo questo Host OS, ossia un RTOS (sarebbe l’acronimo di Real Time Operating System, un sistema complesso adibito per il preciso timing sui vari controller, gestendo priorità e processi entro precisi tempi prefissati e noti a priori) che ha il pieno controllo di tutte le risorse di Xbox One, che comprendono l’intero SoC, CPU e GPU rispettivamente, più tutto il resto dell’hardware, vale a dire i 15 SPP, l’audio e via discorrendo.
L’Host OS si occupa della gestione e della esecuzione effettiva dei vari task (incluso il security layer). Questa partizione rappresenta sinteticamente il sistema operativo di base di Xbox One, e non gestisce l’esecuzione di giochi e app, adibiti invece alle altre due partizioni virtualizzate.
L’Host OS è molto importante proprio perché ospita gli altri due Sub-OS in una modalità non – Hyper-V e sono gli altri due sistemi operativi che si basano su Windows 8, come già detto in precedenza.
Nella Shared Partition trova spazio una versione alleggerita di Windows 8, adibita alla gestione delle funzioni base della console (come anche comandi shell e kinect), alle app condivise (come i Party e gli Amici), le app generiche, le comunicazioni di rete e alcuni elementi legati ai processi audio.
Nella Exclusive Partition abbiamo invece un Exclusive OS che si occupa unicamente di far girare i giochi. Come per la Shared Partition, si tratta di una versione ancor più snella di Windows 8 nelle sue funzioni di base, realizzata per eliminare qualsiasi collo di bottiglia, latenza e inefficienza legati a task extra ludici (Windows 8 deve gestire una mole di dati aggiuntivi, essendo il SO di base dei PC e che deve tenere conto di altri processi attivi quali la posta, il browser, i bridge e via dicendo).
Proprio per questa inedita gestione delle risorse si dice che Xbox One sia un sistema completamente virtualizzato. Più precisamente si tratta di una Host Operating System, ben diversa dalla struttura tipica Bare-Metal Hypervisor Configuration (Hyper-V impiegato in Windows Server 2008 e superiori).
Hyper-V in Windows:
In questa tipologia di virtualizzazione l’hypervisor, che si occupa di ripartire le risorse hardware tra le due virtual machine, opera direttamente all’interno del Sistema Operativo della macchina fisica. Grazie a tale sistema le due partizioni virtuali hanno un accesso più diretto alle risorse fisiche, a tutto vantaggio delle loro performance.
Hyper-V in Xbox One:
Importante anche la gestione della RAM, al momento fissata a 5 GB per la Exclusive Partition (giochi) e 3 GB per la Shared Partinion e Host OS (app e hypervisor). La CPU è invece ripartita in 6 core per la EP e 2 core per SP e H-OS. In futuro, grazie alle ottimizzazioni e all’arrivo delle DirectX 12, è molto probabile che la RAM per la Exclusive Partition possa guadagnare qualcosa, magari passando a 6GB.
I vantaggi di una struttura simile sono evidenti e possono permettere a Microsoft di riallocare le risorse di sistema in ogni momento, senza incidere ad esempio sui giochi che, anche con risorse hardware modificate, non ne compromettono le performance, anzi, in caso ne trarrebbero beneficio! Questo perché il gioco “crede” che il sistema su cui gira sia sempre lo stesso e non c’è bisogno di avere ad esempio la dashboard più aggiornata per far partire i giochi più nuovi o viceversa, come invece accade su Xbox 360 (i giochi nuovi girano solo se il SO è aggiornato alla build richiesta, e contengono all’interno l’eventuale update della dash, cosa che invece non avviene su Xbox One! Per fare un esempio possiamo dire che un gioco di adesso può tranquillamente girare sulle console con vecchia dashboard).
E questo sarà fatto liberando risorse prima dirette al Kinect: un gioco come Titanfall potrebbe girare ancora meglio avendo più risorse, senza che i programmatori rilascino una patch. Il discorso è simile a quello dei PC: il gioco tende a richiedere le risorse di sistema presenti, senza che il codice debba essere riscritto da capo. Più performance più prestazioni in-game.
Ovviamente una patch correttiva potrebbe sfruttare le risorse in maniera più ottimale, ma già così si avrebbe un discreto miglioramento: ora capite anche perché vi siano voci circa un eventuale boost nei giochi solo attraverso un update di sistema, senza patch obbligatoria. E capite bene come sia così possibile effettuare porting diretti di App e giochi da Windows 8-Phone su Xbox One e viceversa.
Riassumendo, nel caso vi foste persi il discorso prettamente tecnico, possiamo dire che Xbox One è strutturata nel seguente modo:
-Un Host OS RTOS
Gli sviluppatori non devono più preoccuparsi della gestione e dell’allocazione delle risorse fisiche della console, lo fa già nel modo ottimale l’Host OS. Questo, essendo un Real Time Operating System, a fronte di qualsiasi richiesta o chiamata lo sviluppatore può conoscere a priori esattamente entro quanto tempo massimo questa verrà presa in carico e portata a compimento.
-App che girano in un SO Windows 8
Una app per Windows 8 può girare senza problemi su Xbox One e viceversa. Le DX12 garantiranno anche una certa scalabilità delle risorse, e con pochi passaggi è possibile portare un gioco pensato per PC con Win 8 su Xbox One o Windows Phone, senza perdere troppo tempo in ottimizzazione e riscrittura del codice.
-Giochi che girano su un SO ottimizzato derivato sempre da Windows 8
Un gioco sviluppato per Windows 8, con piccoli sforzi, può girare su Xbox One e viceversa. Una demo importante è stata fatta con Forza Motorsport 5 su PC, convertito in poche settimane utilizzando le DX12. Una dimostrazione di come i sistemi siano contigui e disegnati sul medesimo kernell e, soprattutto, di come le nuove API renderanno facile la vita degli sviluppatori.
-Virtualizzazione Hosted-based
Tutte le varie chiamate (incluse quelle relative alle DirectX indirizzate alla GPU) non passano più per alcun strato/processo intermedio; vanno direttamente dall’Esclusive OS (il SO per i giochi) all’Host OS (che detiene il controllo esclusivo delle risorse hardware dell’intero sistema), garantendo ai giochi le più alte performance richieste in ogni singolo momento.
Ora capite bene anche l’importanza delle DirectX 12 e di come queste possano rappresentare la chiave di svolta di Xbox One che, a tutti gli effetti, otterrà un poderoso boost delle prestazioni. Grazie allo sfruttamento del multi-threading (ora non possibile a causa delle limitazioni delle DX 11.x), le minori chiamate a CPU e GPU, minore richiesta di risorse per i vari ruoli, lo sblocco delle Tiled Resource, ESRAM, DME e il dual-lane del processore grafico (due CP e due GPC, ribadiamolo, prima GPU a integrare questa feature), il NoC e il cloud computing, Xbox One tra un anno garantirà una potenza mai vista sino ad oggi.
Siamo solo all’inizio, Microsoft ha affilato gli artigli e la rimozione del Kinect andrà tutto a vantaggio dei videogiocatori più esigenti. All’E3 2014 vedrete di cosa sarà in grado di fare il “brutto anatroccolo” di casa Redmond. Sappiate che il rinvio di Halo 5 è stato voluto da Microsoft per dare la possibilità ai 343 Industries di poggiarsi sulle DirectX 12: no, non è un rumor, è una certezza.
Un’ultima cosa: tutto quello che vi diciamo è perché basato su documenti reali, segnalazioni di alcune nostre fonti vicine e interne a Microsoft. Tutto quello che viene trattato in queste rubriche è basato su speculazioni reali, non su fantasiose teorie alla MisterX. Qui trovate speciali sul funzionamento di Xbox One, come la gestione della ESRAM, dei 15 SSP, del cloud computing, dei Data Move Engine, del SO della console. Non riportiamo ipotesi da 10 TFLOPS perché, semplicemente, Xbox One non possiede tutta questa potenza. Si tratta di un hardware solido, rivolto al futuro che utilizza già delle caratteristiche che saranno adottate nei prossimi dispositivi. Parliamo di Microsoft e non di una azienda qualunque. Ma lungi dal prendervi in giro come fanno in altre sedi.
Può capitare che qualche volta alcune teorie possano essere simili e basate sui medesimi concetti, ma qui non troverete mai local cloud, 10 TFLOPS, 128 MB di ESRAM e via discorrendo. Ma che Xbox One sfrutti il dual-lane è cosa risaputa, e con le DX12 tutta la gestione del doppio pipeline grafico sarà utilizzato dai giochi. Bisogna pazientare e 1,31 più 1,31 fa 2,62… ovviamente in dual precision…