Por qué Vulkan es la revolución silenciosa de los videojuegos que llegará a iOS y macOS

Vulkan, el estándar de la industria

Estamos en plena revolución silenciosa en el mundo de los videojuegos. Casi sin darnos cuenta, ya que no se ha publicitado mucho, la industria ha pasado por encima de Apple y Microsoft, y sin preguntarles, han conseguido crear unas herramientas que tras muchos años, ofrecerán un estándar gráfico de facto para el desarrollo de videojuegos. Y esta vez iOS y macOS estarán a la altura de otros sistemas como Windows o las consolas de sobremesa. Vamos a ver por qué.

Hace tan solo unos días, nuestro compañero Miguel López anunciaba en un artículo que Valve, la compañía tras la plataforma Steam y grandes éxitos como Portal, Counter Strike o DOTA 2, volvía al mundo del desarrollo tras varios años sin sacar nada. Y además, quería hacerlo a lo grande con un juego de cartas ambientado en el universo de DOTA 2 llamado “Artifacts”.

Hasta aquí, una buena noticia para los amantes de los videojuegos. Y hubiera quedado ahí si no fuera porque Gabe Newell, CEO de Valve, comunicaba además que su nuevo juego “Artifacts” llegaría también a las plataformas móviles como iOS o Android. Exactamente el mismo juego que estaría disponible para PC, Linux y Mac. Un juego que, aunque sea de cartas, tendrá una carga gráfica y calidad nunca vistos en dispositivos móviles. ¿Cómo? Gracias a Vulkan. Pero empecemos la historia desde el principio.

En busca del estándar gráfico

En el año 1992, Silicon Graphics era una compañía puntera, a la vanguardía del incipiente mundo de las estaciones de trabajo y herramientas para crear infografía y 3D. Pero en aquellos primeros años del 3D, había un problema de base: cada compañía que creaba las denominadas tarjetas gráficas (placas con procesadores gráficos) las hacía como quería, sin seguir un estándar. Y por lo tanto, cuando se programaba algo en 3D era una locura pues solo funciona en tal o cual marca e incluso modelo.

Por lo tanto, desde Silicon Graphics se planteó la creación de una API de desarrollo (una librería) que abstrayera la comunicación con el hardware de cada placa gráfica usada, de forma que el controlador para cada sistema se encargaría de traducir las llamadas desde la API hacia las instrucciones específicas de cada hardware. Y así vio la luz OpenGL como una API única y uniforme.

La arquitectura OpenGL y su evolución, pasaron a depender de un consorcio de empresas llamado ARB, entre las que estaba incluida Apple y que estaba también formado por la antigua ATI, Dell, IBM, Intel, NVIDIA, la propia SGI o Sun Microsystems. Incluso Microsoft también estaba ahí, aunque se salió en 2003.

Ordenador Silicon Graphics Indigo, un precursor de las estaciones de trabajo gráficas Ordenador Silicon Graphics Indigo, un precursor de las estaciones de trabajo gráficas

Durante los 14 años siguientes, ARB veló por el estándar hasta que en 2006, en la necesidad de crear más estándares abiertos dentro de la industria, se formó el grupo Kronos. Un consorcio nuevo de empresas que absorbió a ARB y las competencias de OpenGL, creando un grupo de trabajo encargado de las especificaciones abiertas de estándares tan importantes para la industria como OpenCL (cálculo computacional a través de procesadores gráficos) o el formato abierto Collada de objetos 3D.

Pero justo en ese momento, fue cuando las plataformas móviles empezaban a despuntar y se creó la necesidad de tener un estándar común a toda esa incipiente industria a nivel gráfico, que no podía ser OpenGL porque la potencia gráfica de los dispositivos móviles en 2006, no era la misma que tienen ahora (que puede compararse o incluso superar en algunos casos a dispositivos gráficos de ordenador). Así que se vieron en la necesidad de crear "una versión reducida" de OpenGL que llamaron OpenGL ES, que adaptaba el estándar a las capacidades más restringidas de los dispositivos móviles.

Symbian, Android o iOS, han soportado OpenGL ES desde su fundación y este es el estándar de facto que ha llegado hasta nuestros días, motivo por el que un juego desarrollado en Unity o Unreal Engine puede ser ejecutado por igual en Android, iOS o cualquier otra plataforma móvil: porque usan la misma API gráfica para su ejecución: OpenGL ES.

OpenGL ES es el estándar gráfico para móviles, pero se quedó pequeño enseguida para responder a la evolución de los mismos

El problema es que las capacidades gráficas de las plataformas móviles ha crecido exponencialmente desde 2006, y de pronto OpenGL ES se quedó pequeño sin que el grupo Kronos fuera capaz de ofrecer una solución que pudiera solucionar esta nueva problemática.

Por ese motivo, en 2014, Apple lanzó Metal. Una API de gráficos 3D propia, compatible con sus sistemas iOS que luego ha ganado compatibilidad como librería gráfica de bajo nivel para todos sus sistemas. Y lo más importante, sustituyendo a OpenGL en el Mac y a OpenGL ES en iOS, tvOS o watchOS como una única librería unificada. No obstante, OpenGL sigue funcionando, obviamente, como estándar que es y por retrocompatibilidad.

Comparativa de carga de OpenGL contra Metal Comparativa de carga de OpenGL contra Metal

El principal motivo de la creación de Metal fue el comentado: OpenGL ES y OpenGL han envejecido mal, las capacidades gráficas de los sistemas han aumentado mucho (sobre todo en el móvil) y el controlador que transforma las llamadas hacia el hardware, tiene mucho peso para el sistema y además está limitado en cuanto a capacidades, sobre todo, en el uso de shaders, la magia de cálculo computacional que crea los efectos realistas en gráficos 3D que tanto nos sorprenden al jugar a los juegos.

Básicamente Metal suple tanto a OpenGL como estándar gráfico, como a OpenCL como API de cálculo computacional para permitir a un procesador gráfico realizar cálculos matemáticos que no tengan que ver directamente con contenido gráfico.

Demasiadas APIs. Vulkan, la solución.

Tras la salida de Metal y su fulgurante progresión hasta Metal 2, donde incluso el conjunto de instrucciones del mismo está impreso en el hardware del procesador gráfico del A11 Bionic, se ha creado un pequeño gran problema para la industria creadora de contenidos: hay demasiadas APIs, cada una de su padre y de su madre (literalmente).

Por lo tanto, si queremos desarrollar videojuegos o alguna app gráfica que funcione en todos los sistemas, hoy día tenemos que depender de OpenGL como estándar retrocompatible en sistemas, con DirectX en Windows y con Metal en macOS o iOS. Además, que si es móvil hay que usar OpenGL ES y si es escritorio OpenGL, cuyas versiones van cada una por donde quieren. De hecho, Apple nunca se ha caracterizado por dar un buen soporte de controlador de OpenGL en macOS, donde tardó bastante en soportar (por ejemplo) la versión 4 del estándar.

Comparativa de rendimiento entre OpenGL y Vulkan en escritorio Comparativa de rendimiento entre OpenGL y Vulkan en escritorio

Pero la solución a todo este problema se empezaría a gestar en 2013. AMD es la empresa tras el chip gráfico para las consolas Playstation 4 y Xbox One y dichos procesadores, necesitaban una API de bajo nivel que diera más capacidad a las consolas y soportara todas las nuevas funciones que tienen hoy día los motores gráficos, como los comentados shaders, cálculo computacional y demás.

Así que AMD creó una API propia llamada Mantle. Una API de gran calidad desarrollada con la colaboración de DICE (subsidiaria de Electronic Arts, responsable del motor Frostbyte y la saga Battlefield o Star Wars Battlefront). Esta nueva API es mucho más potente y moderna en su arquitectura de desarrollo que OpenGL. Así que en el intento de Kronos Group por poner orden en el caos y con la inminente salida de DirectX 12 que cerraba aún más Windows al desarrollo de videojuegos, en 2016 AMD donó Mantle como código abierto a Kronos Group (del que forma parte) y esta API se convirtió en Vulkan.

Vulkan es una especificación multiplataforma, que funciona tanto en móvil como ordenador, no como sucedía con OpenGL que tenía diferentes versiones

Una API de bajo nivel que además tiene una especificación multiplataforma y por lo tanto soporta y no distingue entre escritorio o móvil, o arquitectura x86 o ARM.

Vulkan, además, también permite la gestión de gráficos de aplicaciones 2D, por lo que puede servir como motor gráfico de sistemas. Y su capacidad gráfica de bajo nivel mucho más pegado al hardware que se hace hoy día le da un mayor rendimiento y eficiencia.

Por lo tanto, desde 2016 tenemos 3 posibles APIs de bajo nivel gráfico: Metal, creada por Apple, DirectX, de Microsoft con su versión 12 solo para Windows 10 y Vulkan que se ha establecido como API para Linux y Android con controladores oficiales que permiten un gran rendimiento. Por ejemplo, un sistema Linux con una gráfica nVidia de buena calidad es capaz de correr juegos como el último DOOM a 60 imágenes por segundo sin despeinarse.

El problema es que los motores de creación de videojuegos que usa toda la industria, ya no solo Unity o Unreal, sino aquellos que cada compañía usan, sean abiertos o no, como CryEngine, Frostbyte, Source 2 y muchos otros, si quieren tener compatibilidad con todos los sistemas posibles, tienen que crear traducciones para cada sistema o conformarse con seguir usando OpenGL. Imaginen un motor como Unity que es capaz de generar un mismo proyecto para hardwares tan dispares como Windows, Mac, iOS, Android, Nintendo Swift, Xbox One e incluso dispositivos de realidad virtual como el Gear VR, Oculus o HTC Vive. Un lío bastante grande de traducciones y un peso acumulado en los juegos muy grande.

Si no puedes con el enemigo, pégate a él con Vulkan

Así que Kronos Group se ha remangado y, sin tener en cuenta a Apple, ha creado su propia y brillante solución: crear un controlador que traduzca las llamadas de interfaz de Vulkan directamente contra Metal de manera nativa, incluso los shaders, al lenguaje propio de Metal. Han creado un controlador que han liberado y hecho completamente gratuito y abierto (sin licencias comerciales de ningún tipo) llamado MoltenVK. Este controlador (liberado hace menos de un mes), es capaz de ejecutar un desarrollo hecho con la API Vulkan con la misma velocidad que si hubiera sido desarrollado para Metal.

¿Qué supone esto? Pues que los juegos que llegarán a partir de ahora para iOS o macOS, al usar este nuevo controlador, van a aumentar exponencialmente su capacidad gráfica, rendimiento y eficiencia. Para que se hagan una idea: DOTA 2, sobre el controlador MoltenVK sobre Vulkan en macOS, en la misma máquina, tiene una mejora de rendimiento de más del 50%, pasando de tasas de 40fps a 70 u 80. En la misma máquina, solo cambiando el controlador gráfico sobre el que se genera el juego.

MoltenVK es la magia que va a permitir llevar el estándar Vulkan a todas las plataformas, independientemente de las capacidades nativas de las APIs como Metal o DirectX y que permitirá usar un estándar real y de facto tanto para plataformas de escritorio como móvil. Un estándar que permitirá juegos de una calidad nunca vista hasta ahora en móvil u ordenador (en este caso de Apple) y que permitirá que los desarrollos hechos en cualquier motor como Unity, Unreal o cualquier otro, sean más ligeros para los sistemas, más fluidos, consuman menos recursos, menos batería y tengan mucha mejor calidad.

Y además permitirá que motores que hasta ahora no habían soportado iOS como el motor Source 2 de Valve, comiencen a tener soporte. Motivo por el que “Artifacts” saldrá para iOS. Un juego de cartas que NO será free to play y que pretende conquistar los corazones de millones de jugadores y crear competiciones eSports sin precedentes hasta ahora. Con un entorno que permitirá jugar con jugadores de todo el mundo sin importar la plataforma en que juegan. Y sí, también podríamos llegar a ver en iOS o tvOS otros clásicos como Portal o Counter Strike.

No por nada, también se anunció no hace mucho que Fortnite Battle Royale llegará a iOS con las mismas capacidades del juego que en ordenador o consolas.

Gracias a estos nuevos controladores que hemos comentado que abren una nueva era en el sector de los videojuegos para plataformas Apple, principalmente porque ponen orden y dan una única API de alto nivel para desarrollar y sacar lo máximo de todas las plataformas.

Esquema de Vulkan para plataformas Apple, iOS y macOS Esquema de Vulkan para plataformas Apple, iOS y macOS

Por lo tanto, y como conclusión, tenemos una pequeña gran revolución silenciosa que llegará casi sin darnos cuenta. Revolución por la que la calidad de los videojuegos, su rendimiento y la capacidad de los motores para generarlos mejorará exponencialmente, exprimiendo cada elemento de cada hardware. Que por cierto, los motores de creación de videojuegos (como aplicaciones para crearlos) también mejorarán exponencialmente su rendimiento al usar Vulkan en vez del actual OpenGL.

Todo a través de un único estándar gráfico que los unirá a todos y creará, por fin después de tantos años, una homogeneización de los desarrollos lúdicos multiplataforma de los que los primeros beneficiados serán los desarrolladores y por consiguiente, los usuarios. Un cambio importante que viene de la mano de cómo Vulkan se pegará a las librerías nativas (como Metal) y tendrá un peso específico mucho mejor para el mismo hardware que OpenGL.

Bienvenidos al primer día de la revolución de los videojuegos, donde ahora sí (porque nunca había sucedido) Apple también cuenta. Y sí, cuenta sin que Apple haya hecho nada por ello. Ni Microsoft. Han sido las compañías tras los chips gráficos y los videojuegos los que se han puesto de acuerdo para hacerse la vida más fácil y por consiguiente, a nosotros.

En Applesfera | Valve usará su motor Source2 para lanzar su juego de cartas Artifact en iOS

También te recomendamos

Plague Inc, extermina a la humanidad

Cómo ver nuestras historias archivadas en Instagram

Las ventas de videojuegos para iOS y Android ya superan a las de las portátiles de Sony y Nintendo

-
La noticia Por qué Vulkan es la revolución silenciosa de los videojuegos que llegará a iOS y macOS fue publicada originalmente en Applesfera por Julio César Fernández .




Fuente: Applesfera
Enlace: Por qué Vulkan es la revolución silenciosa de los videojuegos que llegará a iOS y macOS

Comentarios