Usuario anónimo
Iniciar sesión | Regístrate gratis
Especial

API o Librerías gráficas, qué son y para qué sirven

Conozcamos un poco al héroe silencioso que ayuda a programadores y jugadores por igual.

Por / 28 comentarios
API o Librerías gráficas, qué son y para qué sirven Las interfaces de programación de aplicaciones (API) o librerías gráficas/bibliotecas gráficas, llevan con nosotros mucho tiempo y han facilitado la labor de programadores desde su creación. En ocasiones hemos hablado sobre ellas, pero nunca hemos escrito sobre sus cualidades y características. Ese precisamente es el objetivo de este especial, dar a conocer la razón de ser de uno de los elementos que articulan el desarrollo de las obras o videojuegos que tanto disfrutamos.

I. El puente entre el hombre y la máquina Las librerías gráficas no son más que un compendio de herramientas que permiten a un programador hacer uso de los recursos que ofrece el hardware en una plataforma a través de un software. En el caso de los videojuegos, que es el que nos compete, una librería se encargará de facilitar al programador la labor de pedirle al hardware los recursos para renderizar gráficos y efectos en tu dispositivo y generar así imágenes.


Ejemplo de lenguaje de ensamblador (parte izquierda del texto). Ejemplo de lenguaje de ensamblador (parte izquierda del texto).

La ayuda que ofrecen viene del nivel de abstracción con respecto al lenguaje de la máquina, al que podríamos llamar "el idioma que hablan tus componentes" por entenderlo de alguna forma. Cada ensambladora usa el suyo propio, pero la librería permite trabajar con ellos independientemente del lenguaje que usen, haciendo de puente entre usuario y componente.



II. "Sr. procesador, no entiendo una palabra de lo que me dice" Siendo más precisos, el lenguaje de máquina es un sistema de códigos e instrucciones que un circuito microprogramable (como un procesador) entiende de forma directa. Tienen su base en el lenguaje binario, y resultan terriblemente obtusos para un humano que no los conozca y estudie a fondo.


API o Librerías gráficas, qué son y para qué sirven

Por eso hablábamos antes de idiomas. Entendiéndolo de forma abstracta, nosotros nos comunicamos en una lengua diferente y de un modo diferente a, por ejemplo, un procesador. Y aquí es donde entran las librerías, que hacen precisamente eso, abstraer el frío y lógico lenguaje de máquina para hacerlo más cercano, humano y fácil de trabajar con él. Una suerte de traductor o intérprete de dos lenguajes (o un compilador).



Cuando estas herramientas se alejen más del lenguaje de la máquina y se parezcan más a algo que podamos reconocer fácilmente, estaremos hablando de lenguaje de alto nivel, refiriéndose al nivel de abstracción del lenguaje. Por el contrario, hablaremos de lenguaje de bajo nivel cuanto menos abstracto y más parecido al lenguaje original de la máquina sea el modo de operar de las librerías.



III. De arriba abajo Como hemos dicho, las librerías de alto nivel son más sencillas de utilizar para una persona y permiten llevar instrucciones a diversas plataformas independientemente del lenguaje que utilicen, pero esto trae consigo un inconveniente.


API o Librerías gráficas, qué son y para qué sirven

Volvamos a la metáfora del idioma y el traductor. Imaginad una mesa llena de objetos y a una persona pidiendo uno de estos a otra en orden, pero muy rápidamente y en un idioma muy diferente al suyo propio a través de un tercero que hace de intérprete ¿Cómo sería la escena? Habrá intérpretes más rápidos y más lentos, pero seguro que todos hemos pensado en el típico parón entre lo que dice uno y lo que hace finalmente el otro.


Con las API sucede lo mismo, cuanto mayor es la abstracción más tiempo necesita nuestro hardware para entender que debe hacer cuando se lo requerimos. Sin embargo, las librerías de bajo nivel hablan un idioma más parecido al suyo, reduciendo la información que debe pasar de un lenguaje a otro, por lo que se tarda menos tiempo en procesar una orden y se realiza más rápido y con menos recursos.


Vulkan, una de las API más conocidos del momento.Vulkan, una de las API más conocidos del momento.

A pesar de esto, la dificultad añadida de la que hemos hablado con los lenguajes de bajo nivel existe y es más difícil trabajar con ellos. Actualmente, las librerías de bajo nivel están viviendo un desarrollo importante en el mundo de los videojuegos, y algunas de ellas como DirectX 12 o Vulkan tienen herramientas que permiten trabajar más fácilmente a bajo nivel sin perder esa eficiencia extra.


Además de estas dos ya mencionadas, merecen una mención librerías como OpenGL, Mantle o GNM/GNMX. OpenGL fue la primera gran librería multiplataforma, aún hoy enormemente extendida. Mantle fue la precursora de la actual Vulkan, una propuesta de AMD que, si bien no llegó a cuajar, sembró junto a OpenGL la semilla de lo que conocemos actualmente como Vulkan. GNM y GNMX tal vez suene menos, pero se trata de las librerías usadas para la consola de Sony, algo así como su equivalente a DirectX 12 para Xbox One.



IV. ¿Están relacionadas con los motores gráficos?Por supuesto, un motor gráfico es una plataforma diseñada especialmente para videojuegos, y está preparada para usar de forma sencilla los recursos de los que requieren los mismos. Los motores gráficos se apoyan en las librerías para funcionar correctamente, y le añaden una capa más de abstracción a la hora de operar con ellas.


Las Blueprint de Unreal Engine 4 aplican una interfaz gráfica a los scripts. Un nivel de abstracción altísimo con respecto al lenguaje de máquina.Las Blueprint de Unreal Engine 4 aplican una interfaz gráfica a los scripts. Un nivel de abstracción altísimo con respecto al lenguaje de máquina.

Sea como fuere, esperamos que esta pequeña entrada haya conseguido el objetivo que se proponía, que es acercar un poco conceptos como librerías gráficas a usuarios que desconocen esos nombres y aún así les influyen hasta cierta medida. Es una entrada sencilla y escueta, pero es la naturaleza con la que ha sido concebida y esperamos que os haya gustado ¡Hasta la próxima!


Más sobre: Librerías gráficas, Directx y Vulkan.