Especial Vulkan, juegos más rápidos en todas las plataformas
Vulkan es una plataforma de última generación para desarrollo de videojuegos y en general aplicaciones con gráficos 3D. Similar en objetivos al DirectX de Microsoft o al Metal de Apple, proporciona acceso de bajo nivel permitiendo a los programadores exprimir el rendimiento del hardware.
Vulkan es el mayor competidor de DirectX 12 y más allá de sus cualidades técnicas, destaca por su soporte multiplataforma para diversos dispositivos (consolas, ordenadores, tablets, móviles, embebidos…) y plataformas (Linux, Android, OS X, Steam OS o todas las versiones de Windows…), lo que es una gran ventaja frente a las últimas API de Microsoft recordemos exclusivas para Windows 10 (y Xbox One).
Inicios de Vulkan
Hablar de Vulkan es hablar de Mantle, una API creada por AMD en 2013 cuando estaba trabajando en la optimización de las consolas de la actual generación que utilizan sus chips, PS4 y Xbox One.
Mantle fue ofrecido a los desarrolladores con la promesa de creación de juegos más rápidos al proporcionar una capa de gráficos más eficiente. Técnicamente, prometía una menor carga de la CPU y un acceso más directo a las características de hardware de gráficos de bajo nivel.
DirectX 12 y Metal
Microsoft respondió. En 2014 anunció DirectX 12, nueva versión de las librerías multimedia que hoy se utilizan en Windows 10 y en la Xbox One. Una interfaz de programación de aplicaciones (API) utilizadas masivamente en videojuegos y que permite a Windows ser la plataforma de referencia para juegos en ordenadores personales.
Según Microsoft, DirectX 12 se centra en un mayor aumento de rendimiento (en la línea de Mantle), con optimización específica para aprovechar mejor los recursos reales del sistema, incluyendo las CPUs con más de cuatro núcleos de procesamiento y las configuraciones multi-GPU. DX 12 acabaría con las limitaciones de aprovechamiento multihilo que impone DirectX 11 y permitirían aumentos de rendimiento incluso en el caso de los modelos más antiguos y menos potentes.
Apple también anunció en 2014 una tecnología similar llamada Metal limitada a sus propias plataformas. Fue añadida a iPhones y iPads con iOS 8, y para los Mac con OS X 10.11 El Capitan.
Mantle se integra en Vulkan
AMD cambió de rumbo después de la presentación de la última API de Microsoft. Algunos juegos ofrecieron soporte experimental a Mantle pero los beneficios de esta interfaz nunca llegaron al gran público.
AMD anunció que enfocaría sus esfuerzos a DirectX 12 y a la «iniciativa OpenGL de próxima generación», otra importante especificación estándar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D, y que son utilizadas, por ejemplo, en juegos Android y por Apple, antes de la llegada de Metal.
Al tiempo, AMD cedió el código de Mantle al grupo Khronos, un consorcio industrial enfocado a la creación de APIs estándares abiertas y libres de royalties que gestiona OpenGL. El pasado año, el grupo anunció Vulkan como el nombre definitivo para la nueva API, que incluye el «OpenGL-Next Generation» y Mantle.
Ventajas de Vulkan
Y así nació Vulkan, una API con licencia de código abierto que puede funcionar en múltiples plataformas, desde ordenadores Linux de escritorio a móviles Android, en las plataforma de Apple y en las de Microsoft, incluyendo Windows 7 y Windows 8.1 a los que DirectX 12 no soporta.
Y es que Vulkan se puede añadir a prácticamente cualquier plataforma. Los desarrolladores pueden codificar juegos en Vulkan que serían fácilmente portables entre diferentes plataformas, lo cual es una ventaja enorme si cumple sus promesas.
Como decíamos, está destinada a facilitar el desarrollo 3D multihilo, permitiendo diferentes hilos para preparar simultáneamente lotes de comandos que son enviados a la GPU. Esto da a los desarrolladores mayor control a la hora de generar comandos, poniendo tareas como la gestión de la memoria y los hilos en sus manos en lugar de confiar esas tareas a los drivers de vídeo.
El manejo de los shaders es otro aspecto en el cual Vulkan da un giro de 180 grados con respecto a OpenGL, con un enfoque más similar al de Direct3D de Microsoft. Los shaders son compilados en un bytecode interpretable, mientras que en OpenGL era necesario que cada driver incorporase un compilador completo destinado a los shaders, lo que aumentaba la complejidad y la posibilidad de obtener fallos.
Vulkan ya está aquí
El Grupo Khronos lanzó la versión 1.0 de la especificación Vulkan el 16 de febrero de 2016. Tanto NVIDIA como AMD han añadido soporte Vulkan a sus controladores gráficos de Windows y Linux. Intel ha publicado versiones beta de sus controladores con soporte para Vulkan en Windows y Linux y los últimos para el Steam OS de Valve también disponen de ellos.
A nivel de usuario, solo tendremos que actualizar los controladores para trabaja con Vulkan en una gran cantidad de hardware gráfico existente. También en nuevo hardware, porque Google ha anunciado que las futuras versiones de Android incorporarán soporte nativo para Vulkan en el mismo código fuente.
Vulkan también podría aparecer en próximas consolas incluyendo las de Nintendo, porque la compañía japonesa se unió al grupo Khronos en 2015 y podríamos llevarnos sorpresas con los juegos de la nueva NX.
Ahora solo hace falta juegos…. Algunos títulos como The Talos Principle incluyen soporte experimental para Vulkan pero no fueron programados en origen pensando en estas API. Tendremos que esperar a juegos preparados desde cero al igual que los que soportarán DirectX 12 y comprobar la diferencia entre ellos, porque las pruebas hasta ahora son más pensando en el marketing que otra cosa.
Prometedor este Vulkan sobretodo por su concepto multiplataforma y por la apertura de posibilidades para jugar en otros sistemas más allá de Windows y DirectX. Le seguiremos la pista.