SDL

Posted by Jose on domingo, 11 de abril de 2010

SDL son las siglas de Simple DirectMedia Layer, una serie de librerías escritas en el lenguaje de programación C y pensadas para el diseño de videojuegos, sobretodo 2D, por medio de la incorporación de rutinas de gestión de imágenes (cargar imágenes, desplazarlas por la pantalla, interacción entre varias...), sonido (cargar sonidos, reproducción de los mismos...), eventos (creación de una programación orientada a eventos, siendo capaz de detectar acciones sobre el teclado y ratón y realizando gestión de esos eventos realizando acciones a nuestra elección) y tiempo (también timers, para que el tiempo no dependa de la máquina a emplear).

SDL fue creado por Sam Lantinga de la empresa Loki Software (también Loki Entertainment Software) en aras de proporcionar una herramienta que fuera capaz de abstraer al programador/diseñador de videojuegos de las "tediosas" gestiones de bajo nivel de los dispositivos hardware (gestión de ratón, teclado, tarjeta de red, tarjeta de sonido) y de otras rutinas repetitivas y también de bajo nivel como la gestión de archivos (imágenes, audio...), y así permitir que éste se centrara más en la parte de desarrollo del videojuego que sobre la gestión de la propia máquina sobre la que trabajaba.

La consecuencia más clara de lo expuesto antes es que SDL permitía la portabilidad entre máquinas y sistemas operativos, es decir, al abstraer SDL la programación del juego de la arquitectura del sistema, siempre que nuestro sistema "entendiera" esta serie de librerías, podríamos "ejecutar" nuestro videojuego. Esto, en resumidas cuentas, significa que utilizando la programación estándar del lenguaje C (es decir, eliminando instrucciones del tipo llamadas al sistema) y con las librerías SDL, podemos desarrollar y ejectuar cualquier aplicación en una gran cantidad de plataformas: PC (con Windows, Linux...), MAC, consolas como PSP, Dreamcast y un largo etcétera.

Una de las aplicaciones más conocidas de esta herramienta es la máquina virtual ScummVM, herramienta que permite ejecutar cualquiera de las aventuras gráficas basadas en el motor gráfico Scumm (e incluso algunas que no utilizan ese motor), el cual fue creado por LucasArts y empleado en sus aventuras gráficas, permitiendo que, por ejemplo, podamos ejecutar el Maniac Mansion (videojuego que, para PC, fue publicado el año 1988) en un ordenador con un procesador con varios núcleos y más de algún gigahertzio de potencia.

Sin embargo, y como ocurre con todo, este sistema tiene sus pegas: mientras que para desarrollar una pequeña aplicación con este sistema se requieren ciertos conocimientos tanto de programación en general como de las librerías SDL en particular, existen ciertos entornos de tipo WYSIWYG (siglas de What You See Is What You Get, filosofía de aplicaciones en las que, normalmente, se interactúa con un entorno gráfico y se crean aplicaciones por medio "golpes de ratón") en los que eso no es necesario y el desarrollo de una aplicación es mucho más rápido, sacrificando ciertas características como suele ser la portabilidad de aplicaciones o el mayor control de nuestra aplicación.

Por último, destacar que, aunque se ha hecho referencia todo el tiempo al lenguaje C, aunque estas librerías están realmente programadas en ese lenguaje, existen "migraciones" a otros lenguaje, como son Python, Pascal o Java (entre otros muchos), para aún así expandir más su ya de por sí gran alcance.

3 comentarios:

Ruro dijo...

Ostia, pero si con esto se pueden hacer juegos a lo Deus ex!

Jose dijo...

Que cabrón, ya tardabas... xD. Veremos en el propio post del Deus Ex cómo acaba el tema de los comentarios...

Ruro dijo...

Prepárate para saber lo que es un flame XDDDDDDDDDDDDDDDDD

Publicar un comentario