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.

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.
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.

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.

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.
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 Switch, 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.

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
Ver 22 comentarios
22 comentarios
kiskillas
Por barato o fácil que ahora pueda resultar portar juegos entre plataformas, el Mac se enfrenta a dos problemas claros:
1.-Hoy por hoy nadie piensa en Mac para jugar, salvo a juegos ocasionales o "antiguos" con 3-5 años desde que se lanzaron en el resto de plataformas. Esta mentalidad, obviamente, puede cambiar si empiezan a salir juegos simultáneamente, aunque llevará años.
2.-Pero... El gran pero... Es el mal hardware gráfico que tienen los macs. Salvo las gamas altas de mas de 3.000€, que llevan una Radeon Pro 560 (unos 120€) de gama media, ninguno tiene GPUs decentes para mover con soltura juegos actuales, y menos en sus pantalla retina a resolución nativa. Para juegos, están completamente descompensados, pantallas de muchísima resolución con GPUs integradas en el 70% de equipos, y gama media en los equipos mas caros.
Ya se ha dicho muchas veces, un PC de 800-1.000€ es igual o mejor para juegos que un Mac de 2.000-3.000, y esta triste realidad no tiene visos de cambiar. Hasta el ratón de Apple es inútil con videojuegos, y en los iMac viene incluido... Teniendo que comprar otro para juegos. Etc.
Aun así, excelente noticia. Todo lo que sea mejorar y avanzar es bueno. Pero mucho tiene que cambiar Apple para que las empresas inviertan en Mac hablando de videojuegos... Por muy "fácil" que se lo ponga el software.
Usuario desactivado
Sí señor, así da gusto leer.
Un artículo muy bien fundamentado, y con contenido informativo de gran valor.
Gracias
Víctor
Otro pedazo artículo de Julio César Fernandez.
Espero que este tipo de avances mejoren un poco el ecosistema de videojuegos en macOS porque ahora mismo deja mucho que desear.
Me acuerdo de la keynote de presentación de Metal para Mac hace un par de años y como Epic anunciaba que Fortnite usaría Metal. Probándolo el otro día en mi MacBook Pro de 2015 vi como tenía que fijar la resolución en 800x600 para poder jugar decentemente...
La realidad ahora mismo es que para poder jugar bien se necesita un PC decente o una Xbox One X. Consola con la que estoy encantado y me permite jugar a 4K sin ningún tipo de problema.
Basta darse una vuelta por la Mac AppStore y ver la cantidad de problemas que tiene la gente en muchos de los juegos exigentes que se venden... bugs, cuelges, problemas de optimización, etc.
Esperemos que este tipo de avances nos ayuden a poder jugar decentemente en un Mac sin tener que gastarse miles de € en una configuración avanzada.
Silver812
Buen artículo.
matuso
Gran artículo, enhorabuena.
Es esperanzador y cada vez se ven más juegos AA en moviles.
ernestozegarra1
Es artifact, no artifacts; yo usaba mi macbook pro del 2017 para jugar dota 2 y va mal, el juego esta mal optimizado para macos como la mayoría de títulos de steam para mac.
Rodrigo Mariano Villar Vespa
Aunque muchos no lo crean Apple dirige sus productos a todos los tipos de usuarios que hay ya sean gamers,programadores,desarrolladores,en fin a todos PERO deberian mejorar poner mejores graficas en sus equipos como los iMac comunes o el Macbook Pro y ya que son mucho mas baratos que por ejemplo un iMac Pro y estarian al mismo nivel que una PC del mismo precio ya sea de escritorio o portatil
plexus
Muy buena noticia. Lo ideal sería un soporte nativo del OS tal y como hizo apple con openGL en su día (menudo DirectX-wannabe se marcaron con Metal), pero al menos facilitará enormemente las tareas de desarrollo.
Tuve mucha esperanza en Vulkan (sobre todo después de ver Doom) pero pensaba que el apoyo había ido disminuyendo con el paso de los meses. A ver si con esto se le bajan los humos a Microsoft y su directX y apple lo implementa como dios manda a nivel de OS.