Aclarando lo de la UWP y el futuro de Xbox One.

La polémica alrededor de Xbox y la UWP necesita ser aclarada.

Todo empezo con Windows 8 cuya arquitectura general era la siguiente:

Windows8Architecture

Microsoft creo un Windows dentro de Windows pero que carecía por completo de las APIs y librerías donde se ejecutaban la mayoría de aplicaciones de Windows, a ese Windows lo llamo Windows RT y fue un auténtico fiasco comercial, el mayor de Microsoft en su historia.

2626.Win8-WinRT-Architecture_610x431

Cuando Xbox One fue lanzada las aplicaciones funcionaban en dos SO distintos, uno el llamado Exclusive OS y el otro el llamado Shared OS siendo el Shared OS lo mismo que Windows RT y el Exclusive OS el SO de Xbox One que no es el mismo que el de PC y tal y como dice el nombre es exclusivo. El Exclusive OS es donde se ejecutan los juegos de Xbox:

Xbox-One-runs-Windows-8

La parte llamada Windows RT era un Windows universalizado entre las diferentes plataformas pero tenía limitaciones importantes. Pero su mayor falta era la API WIN32, los más expertos y conocedores del tema sabréis que es WIN32 pero lo mejor es explicarlo.

La interfaz de programación de aplicaciones de Windows, cuyo nombre en inglés es Windows API (Windows application programming interface), es un conjunto de funciones residentes en bibliotecas (generalmente dinámicas, también llamadas DLL por sus siglas en inglés, término usado para referirse a éstas en Windows) que permiten que una aplicación corra bajo un determinado sistema operativo.

Debido a su estrecha relación con el desarrollo de software, los programas en sus especificaciones generalmente explicitan la versión de la API del sistema operativo, mediante diversas nomenclaturas tales como la versión específica del sistema operativo (para Windows 98, por ejemplo), o explicitando la versión del conjunto de bibliotecas (Plataforma Win32, etc.).

Las funciones API se dividen en varias categorías:

  • Depuración y manejo de errores
  • E/S de dispositivos
  • Varias DLL, procesos e hilos
  • Comunicación entre procesos
  • Manejo de la memoria
  • Monitorización del desempeño
  • Manejo de energía
  • Almacenamiento
  • Información del sistema
  • GDI (interfaz para dispositivos gráficos) de Windows (tales como impresoras)
  • Interfaz de usuario de Windows

Dicho de otra manera, necesitas las librería dinámicas de la API WIN32 para que los programas clásicos de Windows funcionen y resulta que la parte de “Windows RT” que tenía Xbox One antes de la actualización de Windows 10 no tenía dichas librerías al igual que tampoco la parte exclusiva. El caso es que en Windows 10 la parte Windows RT ha sido aumentada y ampliada en forma de Universal Windows Platform o UWP. ¿Y cual ha sido una de sus novedades? Si miráis en el diagrama de arriba del WinRT veréis que hay una tecnología utilizada por los juegos que es DirectX que no aparece en “Windows RT”, no obstante en la UWP de Windows 10…

03-b2-uwp-diagram

… Aparece DirectX por lo que ahora es posible crear juegos en Windows RT, es más, incluye consigo una serie de tecnologías relacionadas con los servicios que son únicos de Microsoft, podéis leer información al respecto (aquí y aquí), lo que provoca que actualmente existan en Microsoft tres “plataformas” en las que desarrollar juegos:

  1. Windows Escritorio (WIN32)
  2. UWP
  3. Exclusive OS de Xbox One

Dado que el segundo ya tiene las capacidades del tercero es muy probable que Microsoft acabe matando al tercero con el tiempo o integrando las librerías de este en el segundo. Ambos soportan DirectX 12 y el motivo por el cual Microsoft ha desarrollado DirectX 12 en Xbox es este, aunque por el momento los juegos de Xbox utilizan el Exclusive OS pero ya existen dos sabores de Windows compitiendo por el mismo espacio y los mismo recursos.

Es decir, por mucho que Microsoft diga esto:

IC816533.jpeg

En realidad existe un enorme camino hacía la unificación que dar y paso por paso, pero la primera afectada de dicha unificación va a ser la plataforma Xbox. Si Microsoft tiene un sabor de Windows que puede ejecutar juegos de alto calibre entonces no le hace falta construir uno para Xbox en un futuro y por tanto el de “Exclusive OS” de Xbox One caerá en desuso con el tiempo, claro esta que aquí nos encontramos con un problema bastante importante, que es el uso de la la memoria del “Exclusive OS” en Xbox One:

Captura de pantalla 2016-03-06 a las 12.13.12

La consola tiene solo 8GB de RAM donde el exclusive OS se come unos 3GB por lo que la parte UWP que en la última actualización del SO es la que sustituye al “Shared OS” con tal de ser competitiva con la primera tendría que poder utilizar memoria RAM adicional, algo que Xbox One no puede proveer por si sola y es aquí donde entramos en lo que los medios comentaron hace unos días:

Captura de pantalla 2016-03-02 a las 0.54.23

Con la UWP los desarrolladores de videojuegos pueden realizar juegos que funcionen tanto en PC como en Xbox One, el problema es que estos juego atan a los desarrolladores y consumidores a la tienda de aplicaciones de Microsoft por lo que dichos juegos no se distribuirán nunca en formato físico sino en una plataforma al estilo Steam. La idea es que el UWP con el tiempo acabe reemplazando a Xbox y creedme que la Xbox actual no tiene los recursos, sobretodo en memoria RAM. ¿Entonces que es lo que podría hacer Microsoft? Lo que voy a explicar ahora a muchos de los fanboys de Xbox One les pondrá a acusarme de crear FUD pero pienso que Microsoft no tardará en sacar un hardware mixto para ambas plataformas, una nueva Xbox capaz de ejecutar los juegos bajo UWP por un lado y bajo el “Exclusive OS” de Xbox One por otro, habrá un tiempo de transición de Xbox One a la UWP y tras esto Xbox desaparecerá tal y como la hemos conocido hasta ahora para tomar una forma distinta, aunque para el último paso aún tendrán que pasar algunos años con los que la gente fuese pasando de utilizar la “vieja Xbox One” a la nueva Xbox One con la capacidad de ejecutar con soltura los juegos desarrollados bajo la UWP como bajo el Exclusive OS.

Lo importante es tener en cuenta que tanto el Shared OS como el Exclusive OS utilizan espacios de memoria distintos, si Microsoft quiere que el Shared OS tenga acceso las mismas capacidades que el Exclusive OS no le queda otra que aumentar las capacidades del hardware, sobretodo en el tema de la memoria y hacer cambios en el SO Huésped/Host OS.

slide_19

Es decir, la localización de recursos por parte del Hypervisor/Host OS ha de cambiar en la New Xbox One de tal manera que la SRA/Shared OS capaz de ejecutar juegos los pueda ejecutar con soltura pero esos cambios no solo se tienen que realizar a nivel de SO sino también a nivel de hardware y esto necesita un hardware nuevo con algunos cambios, siendo el más obvio el de un aumento de la densidad de la RAM.

No creo que veamos un hardware mas potente en forma de New Xbox One, el cual recordemos sería el hardware de transición y los juegos se distribuirán durante un tiempo en dos versiones (UWP y Exclusive OS). Hacer un salto de ese tipo tan pronto sería un suicidio comercial para ellos pero si que pienso en una versión FinFET 14 o 16nm del SoC de Xbox One con un pequeño cambio, el paso del uso de memoria DDR-2133 a DDR-2133 y con una mayor densidad de memoria con tal de darle más memoria a la parte del Shared OS. Los juegos no verán ninguna mejora visual pero la gente que compre un juego de Xbox One lo más seguro es que consiga gratis la licencia de la versión UWP pero si adquiere el juego a través de la plataforma UWP no va a obtener la versión para el “Exclusive OS”. Esto no solo se hará en versión digital sino también en formato físico, donde lo más seguro los juegos vengan con un código de descarga donde poder bajar la versión del mismo juego para UWP.

La versión UWP no solo funcionara en Xbox One sino también en PCs y configuraciones varias que sean compatibles con el UWP, la distribución de estos juegos se realizará a través de la Windows Store en exclusiva y estarían asociados a una serie de servicios de Microsoft como el Xbox Live. Una vez que el volumen de gente con UWP sea lo suficientemente grande aparecerán las “UWP Machines” al estilo de la Steam Machines para sustituir a la Xbox One actual en el mercado, en estos sistemas solo funcionarán los juegos bajo UWP y no los que estén bajo el Exclusive OS y si que resultaran un salto generacional pero para las UWP machines aún quedarán algunos años y Xbox One tendrá la vida comercial normal de una consola de videojuegos, es decir, habrá un tiempo de transición pero Xbox One no verá reemplazada de un día para otro.

Anuncios