Il Microsoft-pensiero lo conosceremo il prossimo 21 gennaio 2015... fino ad allora queste sono solo speculazioni. O forse no.

Il 21 gennaio 2015 si terrà un importantissimo evento in casa Microsoft, focalizzato sulla presentazione del nuovo sistema operativo Windows 10 che ridisegnerà l’intero ambiente, sia di sviluppo e sia fruitivo, atto a migliorare considerevolmente la vita degli utenti. Conosciuto inizialmente come Threshold, la nuova incarnazione di Windows ha nel kernel e nella scalabilità il suo punto di forza: sarà un SO in grado di adattarsi ad ogni hardware, ad ogni client passando dai PC ai tablet, dagli smartphone a Xbox One.

Questo garantirà tutta una serie di vantaggi, primo fra tutti la possibilità di eseguire le cosiddette App Universali sulle varie piattaforme senza nessuna limitazione tecnica. Se vi piace un programma lo potrete utilizzare tanto sul vostro personal computer quanto sulla vostra console e, se siete fuori casa, anche sui dispositivi mobile, tenendo tutto sincronizzato grazie al Cloud di Microsoft, quindi condividere fogli di lavoro, immagini, cartelle, documenti senza distinzione tra un formato e un altro, partendo da dove si è lasciato il lavoro a metà, ad esempio.

Uniformità e semplicità d’uso, in poche parole. Il cuore di Windows 10 si adatterà dunque ad ogni evenienza, in base anche al client di riferimento. Il SO sarà “scalabile” e si configurerà in base all’hardware dove dovrà girare. Per scalabile si intende proprio la malleabilità di Windows che si potrà installare su terminali di fascia bassa o super PC per trarre il massimo beneficio dai vari sistemi.

Con Windows 10 arriveranno anche le famigerate DirectX 12 che, come per il sistema operativo, uniformeranno lo sviluppo dei giochi sulle tre piattaforme (appunto Win 10, Win Phone e Xbox One) rendendo più semplice la vita dei programmatori che avranno accesso a delle API universali che consentiranno porting immediati e semplici sfruttando al tempo stesso l’hardware su cui gireranno i vari titoli. Si avrà così un ambiente unico, come abbiamo già detto, sia sotto il profilo utente che di sviluppo vero e proprio. Anche le DX12 saranno scalabili, girando quindi al meglio in base alla piattaforma di riferimento.

DirectX-121
Anche le DX12 saranno scalabili.

Come ben saprete poi, le nuovi API, che saranno disponibili dalla primavera del 2015 per i dev, saranno ottimizzate per la gestione del multithreading (carico di lavoro bilanciato su più core della CPU), riduzione delle chiamate, low-metal su PC, “migliore gestione” di chip di scarico su Xbox One con annessa ESRAM e DME, sblocco del dual rendering sulla console di Microsoft, codice sorgente adattabile sui tre SO che, con piccole modifiche lato software, potrà girare indistintamente sui vari client.

Questo risalta anche il motivo per cui la Xbox One utilizzi un SO completamente virtualizzato, che si “adatta” in base ai nuovi aggiornamenti, sia di sistema che di kernel vero e proprio (da qui la possibilità di far girare una versione apposita di Win 10 sulla console).

Quali sono quindi i benefici che introdurranno le nuove API? Andiamo ad analizzare. Con le precedenti DirectX 11 si può vedere nello slide ufficiale di Microsoft l’assenza del multithreading e del carico di lavoro incentrato su di un solo core della CPU:

dx12a
Con le precedenti DirectX 11 si può vedere nello slide ufficiale di Microsoft l’assenza del multithreading.

Con le DirectX 12 il lavoro viene diviso equamente in base al numero di core che possiede la CPU:

dx12b
Con le DirectX 12, il tempo è dimezzato, con il calcolo che richiede appena 4 ms per essere elaborato.

Un calcolo gestito con le DirectX11 richiede ben 9ms di tempo per essere elaborato in un ciclo completo. Con le DirectX 12 invece, il tempo è dimezzato, con il calcolo che richiede appena 4 ms per essere elaborato. Questo è l’overheading, enormemente sceso con le API di nuova generazione. Ovviamente un miglioramento “reale” dipenderà fortemente sia dallo sviluppatore e sia di come concepirà il gioco.

Fatto sta che le DirectX 12 dovrebbero rappresentare il più grande salto prestazionale e generazionale per chi ne farà uso, come non si vedeva da anni.

Tuttavia sarà un processo lento e non imminente (serviranno almeno due anni interi prima che i dev entrino nell’ottica delle nuove API) dato che la maggior parte dei motori grafici non sono “pronti” per l’utilizzo delle DX12, e andranno riaggiornati/ottimizzati per l’occasione.

È appurato infatti che tanto le DirectX 12 quanto le Mantle sono ambienti di sviluppo completamente diversi da quanto conosciuto fino ad oggi e le nuove opportunità di realizzare qualcosa di incredibile un fatto più che concreto: starà alle software house adeguarsi al nuovo corso di sviluppo e molte sembrano già pronte al salto evolutivo, come Epic con l’Unreal Engine 4, EA con il Frostbite e Crytek con il CryEngine. Ciò che fondamentalmente accade oggi nei giochi è un rendering per frame e quindi applicare una serie di effetti di post-processo ad esso.

Con le DX 12/Mantle il discorso cambia radicalmente, lasciando allo sviluppatore più libertà d’azione

Con le DX 12/Mantle il discorso cambia radicalmente, lasciando allo sviluppatore più libertà d’azione tutto a vantaggio della grafica finale che risulterà ancor più vicina ai filmati prerenderizzati.

Ora la domanda da un milione di dollari: che impatto avranno le DX12 su Xbox One? Sarà equiparabile al risultato che sarà possibile ottenere sui moderni PC?

La risposta è “sì” anche se bisogna sottolineare un paio di cose prima: Xbox One è una console, una scatola chiusa dove le chiamate sono già “vicine al metallo”, come si dice in gergo, questo perché l’hardware è già ottimizzato e bilanciato per trarre il massimo dalle API che ci girano sopra.

Le DX12 impatteranno positivamente su One riducendo ad esempio, proprio come su PC, l’overheading, aggiungendo il multithreading e rendendo possibile una migliore gestione dei vari SPP di contorno contenuti nel SoC della console, più, ed è una cosa da non dimenticare, l’introduzione delle Tiled Resource e una migliore “comunicazione” tra CPU e GPU.

wardelldx12
La sentenza di Brad Wardell.

Inoltre le DX12 per Xbox One godranno di una ottimizzazione ulteriore per il suo chipset, cosa che, allo stato attuale, non godono nemmeno le ultime DX 11.3, ancor peggio con le DX 11.X (Vanilla Code) rese disponibili al lancio della console, cosa suggerita anche dal dev di 4A Games:

“Digital Foundry: Nella nostra ultima intervista eri eccitato dalle possibilità offerte dalle console next-gen. Ora avete rilasciato i vostri primi giochi su Xbox One e PlayStation 4. Sei ancora elettrizzato dal potenziale di queste console?”

“Oles Shishkovstov: Credo che ciò che abbiamo ottenuto con le nuove console sia veramente ottimo visto il poco tempo che abbiamo avuto con i kit di sviluppo nello studio, appena quattro mesi di esperienza pratica su Xbox One e sei con PlayStation 4 (credo che i problemi che abbiamo avuto per far arrivare i kit di sviluppo all’ufficio di Kiev siano ormai noti)”.

phildx12
Uno scambio di tweet tra Phil Spencer e un suo follower.

Ergo poco tempo per l’ottimizzazione ed ecco spiegati i 912p della versione One di Metro: Redux.

Oles poi prosegue:

“Il fatto è che non abbiamo ancora cominciato a utilizzare appieno tutta la potenza di calcolo che abbiamo a disposizione. Ad esempio non abbiamo utilizzato contesti di calcolo parallelo a causa della mancanza di tempo e dello stato ‘alpha’ del supporto sulle console al tempo. Ciò significa che c’è molto potenziale ancora da utilizzare, che dovrebbe tradursi in visuali e gameplay migliori una volta che avremo preso confidenza con l’hardware”.

“Ovviamente [PS4 e Xbox One] non sono dotate dell’hardware più avanzato che si possa comprare oggi (anche se a prezzi folli) per PC, ma sono delle macchine ben bilanciate e superiori in termini di prestazioni a ciò di cui sono in possesso la maggior parte delle persone”.

“Digital Foundry: DirectX 11 vs GNMX vs GNM: qual è la tua opinione su punti di forza e debolezze delle API a disposizione degli sviluppatori per Xbox One e PlayStation 4? In prossimità del lancio ci sono state alcune lamentele nelle prestazioni dei driver di Xbox One e overhead della CPU su GNMX”.

In generale non capisco perché abbiano scelto le DX11 come punto di inizio per la console

“Oles Shishkovstov: Mettiamola così: abbiamo visto scenari in cui un singolo core della CPU è arrivato a pieno carico solo gestendo le draw-call (sicuramente a causa del driver ‘mono’ con l’utilizzo di parecchie chiamate ad alta velocità). Su PS4, negli stessi scenari è stato difficile trovare quelle draw-call nei grafici di profilazione perché impiegano pochissimo tempo e sono quindi appena visibili”.

“In generale non capisco perché abbiano scelto le DX11 come punto di inizio per la console. È una console! Perché preoccuparsi di un elemento obsoleto? Su PS4 la maggior parte dei comandi della GPU sono appena alcune DWORD scritte nel command buffer, diciamo qualche ciclo di clock della CPU. Su Xbox One il tutto potrebbe essere un milione di volte più lento a causa di tutte le operazioni di registro eseguite dalle API.

Microsoft però non sta dormendo. Ogni XDK rilasciato prima e dopo il lancio di Xbox One ha portato con sé draw-call sempre più veloci. Sono state aggiunte molte funzionalità con cui aggirare le limitazioni delle DX11. Hanno perfino reso disponibile delle API in stile DX12/GNM, che però non abbiamo utilizzato in Redux a causa dei limiti di tempo”.

“Digital Foundry: Qual è il vostro approccio a DirectX 12 e Mantle? È tutta una questione di collegare maggiormente lo sviluppo di videogiochi per PC a quello per Xbox One e PlayStation 4?"

“Oles Shishkovstov: Oltre a comunicare molto più da vicino con l’hardware, queste rappresentano un cambiamento nel design delle API. Le DX 11 erano come un ‘terrò traccia di tutto per te’. Le DX 12 dicono ‘ora è una tua responsabilità’, quindi potrebbe essere una barriera molto più sottile. Per quanto riguarda Mantle, secondo la mia opinione sono delle API temporanee”.

DXXboxOne
"Le DX 11 erano come un ‘terrò traccia di tutto per te’. Le DX 12 dicono ‘ora è una tua responsabilità’".

“Digital Foundry: In che misura le DX12 si dimostreranno utili su Xbox One? Non c’è già una bassa overhead della CPU nella gestione della GPU? In che misura le DX12 si dimostreranno utili su Xbox One?”. “Oles Shishkovstov: No, sono importanti. Il tracciamento di tutte le dipendenze richiede una grossa fetta della potenza di calcolo della CPU. Se parliamo della generazione di comandi multi-threaded, il modello DX 11 è stato essenzialmente un ‘flop’, mentre quello delle DX 12 dovrebbe essere giusto”.

Grazie a questo stralcio di intervista di fuga ogni dubbio sull’inadeguatezza delle attuali API per Xbox One, anche se la situazione è andata via via migliorando, ma è solo con le DX12 che si sfrutterà tutto il potenziale, ancora inespresso, della console di Microsoft.

Ma quale sarà la risposta di Sony? Ovviamente molto dipenderà dall’arrivo delle OpenGL 5 di nuova concezione anche se, come ha sottolineato uno sviluppatore di Valve, il gap sarà ancora molto elevato e le prossime Open GL potrebbero risultare già obsolete se paragonate con le avveniristiche Direct3D 12. Le sue parole sono inequivocabili:

“Mantle e D3D12 stanno per lasciare indietro nuovamente le Open GL dietro! Non bisognerà più preoccuparsi di riscrivere l'intera pipeline di rendering per usare batch intensivi. Le GL saranno trattate come un cittadino di seconda classe e il porting di destinazione fino a quando l'API è modernizzata e notevolmente semplificata. Uno dei presunti vantaggi delle Open GL è il supporto per le estensioni. Io sostengo che le estensioni in realtà danneggiano l'API globale, e se ne può fare a meno”.

Su Xbox One i giochi vedranno migliorare le prestazioni, e porteremo la stessa API per tutte le piattaforme di Microsoft - Anuj Gosalia

Lo stesso Anuj Gosalia aveva sostenuto come le DX12 porteranno effettivi miglioramenti sulla nuova console di Microsoft:

“Su Xbox One i giochi vedranno migliorare le prestazioni, e porteremo la stessa API per tutte le piattaforme di Microsoft”. "In primo luogo le DX 12, forniscono un livello inferiore di astrazione hardware, consentendo ai giochi di migliorare in modo significativo il multithread e l'utilizzo della CPU. Inoltre, i giochi potranno beneficiare di una riduzione del carico GPU tramite funzioni come le tabelle dei descrittori e gli oggetti di stato delle pipeline”.

"E questo non è tutto - Direct3D 12 introduce anche una serie di nuove caratteristiche tra cui pipeline di rendering in grado di migliorare notevolmente l'efficienza degli algoritmi quali trasparenze su più livelli, rilevamento delle collisioni, e il geometry culling". Da notare poi come le DX12 miglioreranno anche il supporto alle GPU messe in SLI o Crossfire (e, su One, il Dual Rendering).

Di articoli sulle DX12 per One ne sono usciti molti e tutti confermano gli iniziali rumor: One godrà di un netto miglioramento in termini di prestazioni, non un miracolo (http://xboxonedaily.com/2014/04/directx-12-doubles-xbox-ones-gpu-performance/ ) ma sicuramente quel boost in più che finalmente metterà giustizia ad un hardware inizialmente bistrattato dai più. E gli ultimi risultati sembrano evidenziare anche l’ottima evoluzione di Xbox One in ambito di performances.

Insomma, le DX 12 saranno un nuovo punto di riferimento per le software house e per gli sviluppatori in generale. Tornando su Windows 10 invece, è interessante notare dagli ultimi leak come effettivamente il nuovo SO sarà un microcosmo collegato con tutti gli altri dispositivi che montano il medesimo kernel, una convergenza verso il sistema unificato.

xbox-app
Un'immagine dalla app Xbox di Windows 10.

Tra le caratteristiche più importanti ritroviamo:

  • Cortana come assistente vocale su PC (in arrivo anche su Xbox One)
  • Uno store unificato (Windows Store), con cui è possibile acquistare Dischi, mp3 singoli, film e giochi (sì, anche per Xbox One).
  • L’app integrata Xbox (mostra le statistiche della propria Gamertag, gli Obiettivi, la lista amici e via discorrendo.
  • Diverse nuove App (universali)
xbox-app2
Sunset Overdrive dà un tocco di colore alla pagina dei feed.

Questi quattro punti fondamentali, mostrano essenzialmente cose che già si ipotizzavano, ed altre invece ancora ignote. Le App universali potranno essere acquistate (un acquisto unico ma da utilizzare sui vari sistemi Windows 10 che si posseggono) e sfruttate sui vari terminali. Ad esempio acquisto l’app Meteo su PC e la stessa la ritroverò già bella e pronta per l’utilizzo anche sul mio smarphone o su Xbox One, senza doverla riacquistare.

Lo stesso varrà per i giochi cross-platform, con un ipotetico Pinball FX 2 che, se acquistato in precedenza su Xbox One, lo potrò utilizzare anche su PC o mobile senza costi aggiuntivi e, perché no, sfidando i miei amici grazie al cross-play.

Gli sviluppatori dovranno solo aggiornare poche righe di codice perché tutte le nuove App e giochi (parliamo di arcade e indie, non AAA games!) conterranno al loro interno parte del Sistema Operativo Windows 10, come oggi già accade su Xbox One dove i videogiochi contengono parte del codice del SO virtualizzato della console.

Ogni cosa acquistata la si potrà godere sul proprio device senza problemi e ulteriori costi

Ecco perché, ad esempio, anche se si ha la console non aggiornata, l’ultimo gioco parte senza richiedere update, al contrario quindi di quanto avveniva su Xbox 360 (con il gioco che richiedeva per forza di cose l’ultima Dashboard altrimenti non partiva). Stesso discorso per i media come musica, film, serie TV: ogni cosa acquistata la si potrà godere sul proprio device senza problemi e ulteriori costi.

Inoltre si parla, al momento più come ipotesi che come certezza, dell’introduzione dello Stream Play dove sarà possibile effettuare lo streaming di un gioco da un device all’altro, similmente con quanto avviene oggi tra PS4 e PS Vita e, dal prossimo anno, potrebbe essere implementato anche su Xbox One via Smartglass, utilizzando la console come fonte e un secondo device in ricezione (un tablet, il pc o lo smartphone) per la fruizione del gioco anche se non si è davanti alla One.

UPDATE: è notizia di ieri che il Microsoft Team Arcadia stia effettivamente lavorando a tale feature e che quindi, con molta probabilità, tale opzione venga inserita in Windows 10 e rispettivi device. Lo Stream Play è anche la risposta di Microsoft al PlayStation Now, ove sarà possibile giocare a vecchi titoli Xbox 360 su Xbox One grazie alla trasmissione del gioco via server, realizzando così una sorta di Retrogaming via Internet.

Vi ricordate ora di una misteriosa demo che vedeva Halo 4 girare in streaming su un Nokia Lumia 520?

halo-4-on-windows-phone
Che ci fa Halo 4 su un Lumia?

Ecco, era una vera e propria “prova su strada”, un po’ come fu la demo della distruzione di un enorme edificio via cloud, cosa inserita poi in Crackdown (per il cloud computing).

Con l’avvento di DX12 e di Windows 10, anche un altro paradigma tenderà a cambiare radicalmente, e sarà quello dei porting diretti tra PC e One e viceversa, cosa facilitata dallo stesso SO e dall’uso delle stesse API e kit di sviluppo.

Questo vorrà dire conversioni più veloci tra i due sistemi e, la cosa importante, la piattaforma Windows ripresa come punto di riferimento per lo sviluppo dei vari titoli, soprattutto quelli multiformato, con la terza scelta di PS4 che non sarà lead-platform nel modo più assoluto, semplicemente perché sarà il formato non standard e “universale”.

Windows-10-Xbox-One-635x356
Windows 10 riassunto in una sola immagine.

Certo, un punto ancora da chiarire, e che non farà felici i possessori di One, è in che modo verranno utilizzate le esclusive e se queste troveranno vita sul PC. Recentemente Microsoft ha aperto un sondaggio che chiedeva agli utenti un parere su un possibile porting di Killer Instinct su PC. Chi favorevole (non possessore di One), chi contrario (le esclusive devono rimanere tali, sennò non c’è logica ad acquistare la console), chi aperto a tale iniziativa a patto che ci sia il cross-play.

Insomma, come vi sentireste ad un annuncio di Sunset Overdrive su PC con cross-play online? Al contrario, come vi sentireste alla notizia che alcune IP in esclusiva PC, ad esempio un Ages of Empire o un Guild Wars possano arrivare su Xbox One?

Microsoft sta studiando la situazione ed è aperta ad ogni evenienza, sta ascoltando i fan e traendo le proprie conclusioni. Difficilmente però titoli imponenti e importanti possano essere “scambiati” tra i due formati, anche se in casa Redmond stuzzica l’idea di avere un ecosistema unico in tutto e per tutto, una sorta di Steam Machine da solotto (la One) con il PC messo su un gradino più alto per via delle configurazioni hardware possibili e un maggior dinamismo (elaborare file Excel, gestire la posta, fare editing video, tutte feature che una console non possiede). Il Microsoft-pensiero lo conosceremo il prossimo 21 gennaio 2015...

Fino ad allora queste sono solo speculazioni. O forse no.

[header_banner]