APIs gráficas para desarrollar videojuegos

APIs gráficas para desarrollar videojuegos
APIs gráficas para desarrollar videojuegos

BBVA API Market

Bloomua / Shutterstock.com

Los sectores que crean productos en torno a la tecnología tienen un campo de batalla marcado en sus agendas desde hace tiempo: el móvil. Uno de esos sectores es el de los videojuegos, que encuentran en los dispositivos más íntimos para el usuario un espacio de negocio. Tanto Apple como Google están en un continuo proceso de lanzamiento, mejora y alianza en torno a APIs gráficas para juegos: Metal en iOS y Vulkan como socio en Android. Además, Apple y Google compiten con Microsoft y otros desarrolladores gráficos.

A mediados de 2014, Apple lanzó su sistema operativo móvil iOS 8, en el que ya incluía 4.000 APIs con las que proponía a los desarrolladores la creación de nuevas aplicaciones. El OS incluía dos marcos de desarrollo como HealthKit y HomeKit, y Metal, una API gráfica que prometía en su estreno exprimir al máximo el procesador A7 de los dispositivos de la manzana. Esa nueva API gráfica de Apple dispone de su propio framework, llamado MetalKit.

Hasta la llegada de esta nueva generación, las APIs gráficas no estaban preparadas para realizar una ordenación eficiente de los datos para su renderización, lo que incluye una serie de subprocesos relacionados con las llamadas entre la unidad de procesamiento gráfico (GPU) y la unidad central de procesamiento (CPU). Eso provoca que la CPU consuma más tiempo y energía, elementos que podrían usarse para mejorar los gráficos, efectos especiales y animaciones 3D de un videojuego. Metal o Vulkan mejoran eso.  

Metal, el control total del dispositivo

Metal proporciona una sola interfaz de programación unificada y un lenguaje para el trabajo en paralelo tanto en gráficos como en computación de datos. Eso permite integrar ambos procesos de forma más eficaz sin necesidad de usar varias APIs a la vez y por separado. El control del hardware del dispositivo es total, lo que permite disminuir la sobrecarga pese a que el número de peticiones para mejorar los gráficos y efectos crece mucho.

Metal ofrece algunas características interesantes para desarrolladores:

– Interfaz con baja sobrecarga: Metal permite eliminar los cuellos de botella “ocultos”, como se les denomina en la documentación de la API. La idea es disponer del control de la unidad de procesamiento gráfico (GPU) de una forma más directa para satisfacer un mayor número de peticiones desde la CPU sin que eso provoque una mayor sobrecarga.

– La memoria y la gestión de recursos. Al final una menor sobrecarga permite un mayor número de llamadas y peticiones a la GPU desde la CPU del dispositivo. Eso se traduce en un mayor rendimiento gráfico: más objetos en pantalla sin necesidad de llevar al límite a la CPU. 

– Soporte integrado para gráficos y operaciones de cálculo. Metal usa las mismas estructuras de datos y recursos tanto para gráficos como para operaciones de cálculo. El framework de Metal permite que los recursos sean compartidos entre la interfaz de tiempo de ejecución, las funciones de cálculo y los shaders gráficos (los procedimientos por los cuáles un desarrollador de videojuegos puede manipular no solo iluminación y sombreado, también la creación de efectos, animaciones).

– Shaders precompilados.

Android recurre a Vulkan contra Apple

Vulkan, una API gráfica desarrollada por Khronos, se basa en un estándar abierto para ganar eficiencia y rendimiento tanto en gráficos como en computación de datos, resolviendo las exigencias de la nuevas unidades de procesamiento gráfico. Igual que con Metal, el objetivo de Vulkan es facilitar un consumo organizado de datos de la GPU en el proceso de renderizado. Eso es lo que permite tener efectos especiales y animaciones 3D de alta calidad.

Características más destacadas de Vulkan:

– Control directo sobre el funcionamiento de la GPU, lo que facilita un descenso de la sobrecarga y un aumento del rendimiento gráfico.

– Tecnología multihilo. Permite ejecutar varios hilos en paralelo en un único procesador. El objetivo final es mejorar el rendimiento general.

– Uso en varios tipos de dispositivos: móviles, escritorio, consolas…

– Arquitectura en capas.

– Drivers más simples. Baja la sobrecarga.

– Sistema de compresión de texturas libre ASTC. Reduce el consumo de memoria y ancho de banda para el procesamiento de texturas gráficas.

– Depuración y robustez en la ejecución de código seguro.

 

DirectX 12, la API gráfica de Microsoft

DirectX 12 es la última evolución de la API gráfica DirectX de Microsoft. Es la interfaz de programación de aplicaciones que se encarga de los aspectos visuales en todos los dispositivos con sistemas operativos Windows, concretamente Windows 10. Sobre todo es una API centrada en el desarrollo gráfico de videojuegos, no sólo para el escritorio, también para otros productos de la compañía de Seattle como móviles o consolas.

Algunas de las características esenciales de esta nueva API:

– Uno de los avances de DirectX 12 con respecto a DirectX 11 es el sistema gráfico en 3D. Direct3D 12 ofrece una abstracción de hardware de bajo nivel, lo que permite a los desarrolladores simplificar todo el proceso de adaptación del código a los distintos hardwares en lo que se ejecutará su producto. La nueva API de Microsoft consigue esto gracias a que permite un acceso más directo a las funciones del hardware.

– Una reconfiguración total de la gestión gráfica.

– Optimización del proceso de llamadas desde la GPU a la CPU. Se eliminan los cuellos de botella y el resultado final es un mayor número de objetos en pantalla cuando un usuario está jugando a un videojuego. Se mejora el rendimiento porque las órdenes de la unidad de procesamiento gráfico son atendidas rápidamente por la CPU

– Multiadaptador de DirectX 12. Facilita a los desarrolladores dividir el procesamiento entre la GPU principal y los gráficos integrados de la CPU. Las partes gráficas más pesadas son parte de las tareas de procesamiento de la GPU, pero otros procesos más sencillos se realizan en paralelo por la CPU. Esto, lógicamente, aumenta el rendimiento.

– La API DirectX 12 es compatible con versiones anteriores como DirectX 11

Si te interesa el mundo de las APIs, puedes descubrir más sobre las APIs de BBVA aquí.

Síguenos en @BBVAAPIMarket

También podría interesarte