Categorías: Tutoriales

Curso programación de videojuegos con SDL – ¿Qué es SDL?

En la Wikipedia encontramos que: ”LibSDL es un conjunto de librerías desarrolladas con el lenguaje C que proporcionan funciones básicas para realizar operaciones de dibujado 2D, gestión de efectos de sonido y música, y carga y gestión de imágenes. SDL es una abreviatura en inglés de Simple DirectMedia Layer.

Resaltar como podéis ver que se trata de un conjunto de librerías para C encargada de todos los aspectos que a la hora de crear un juego faltan en las librerías básicas de C. Con ella podemos controlar las pulsaciones sobre el teclado, cargar imágenes, mover sprites o reproducir un sonido. Usando SDL tendremos toda la libertad del mundo para desarrollar un juego tal como nos parezca. SDL se convierte sólo en la herramienta básica para hacer todo aquello que necesitamos, pero a un nivel que no interviene más que en eso.

Un inconveniente de SDL puede ser su naturaleza de librería(s) para C. Muchos preferirán quizás otro lenguaje o directamente una herramienta más gráfica, pero la potencia que se consigue así no se puede conseguir de otra manera. Para todos aquellos que no conozcáis C ni C++, quizás sea la oportunidad de aprender C usando SDL. Además existen los llamados bindings de SDL a otros lenguajes por lo que no tendréis problemas en la inmensa mayoría de los lenguajes de programación modernos.

Componentes adicionales

Existen campos en los que el núcleo de SDL no ofrece soluciones y el programador de videojuegos necesita una funcionalidad. Alrededor de SDL se han desarrollado una serie de librerías adicionales, que completan aquellos campos que no cubre la librería “madre”. En el ejemplo que desarrollaremos a lo largo del artículo no haremos uso de ninguna de ellas, pero os presento al menos a las más importantes:

  • SDL_Mixer: Mayor capacidad para reproducción y gestión de música. Soporta gran cantidad de formatos de audio, incluidos los más populares MP3, OGG y WAV.
  • SDL_Image: Al igual que SDL_Mixer mejora la capacidad con la música, SDL_Image hace lo propio pero con las imágenes. Soporta también gran cantidad de formatos, PNG, JPEG, BMP, GIF…
  • SDL_Net: Hoy en día gracias a Internet la mayor parte de los juegos ofrecen opciones multijugador a través de la red. Este componente nos permite desarrollar funcionalidades de este tipo para nuestros juegos.
  • SDL_ttf: Nos permite usar fuentes True Type en nuestra aplicación.

Existen muchos más componentes, ya desarrollados o en fase de desarrollo que amplían aún más las posibilidades de SDL. Podéis encontrarlos en el sitio web de SDL en el apartado “Libraries”: http://www.libsdl.org/libraries.php.

Bindings

La Simple DirectMedia Layer fue diseñada en un principio en C para ser usada en C. Por esta razón también funciona sin problema en C++. Los que prefieran usarla con otros lenguajes lo tienen fácil gracias a los llamados bindings que nos permiten hacer uso de la librería desde otros lenguajes. La lista completa está en: http://www.libsdl.org/languages.php. A continuación os dejamos una enumeración de los bindings más famosos:

Sin duda la más famosa de todas ellas es PyGame que junto con la implementación original en C/C++ es la más usada para hacer juegos para GNU/Linux en la actualidad.

F. Javier Carazo Gil

Cofundador de CODECTION, empresa especializada en WordPress, autor de un libro sobre WordPress (el primero en español) y multitud de artículos (en medios físicos y virtuales) sobre el tema. Participa en la comunidad WordPress de forma activa siendo parte del equipo organizador de la WordPress Meetup de Córdoba, dando charlas en diferentes WordCamp y siendo autor y coautor de multitud de plugins libres y premium para WordPress de gran éxito.

Ver comentarios

  • Veamos que puedes enseñarnos, he usado PyGame y me ha gustado mucho, hice juegos MUY pequeños y graciosos XD..

  • @dgmvecuador: Lo verás en las próximas entregas, a lo largo de este mes las iré publicando, quizás sufra un pequeño parón mientra estoy de vacaciones, pero aparte de eso, creo que podré publicar a buen ritmo.

    Espero que tenga buena aceptación y os guste.

  • @Carazo gracias por esta entrega del curso, intentaremos abrir hueco en nuestra cabeza para tanto curso jeje aunque siempre podremos tenerlo a modo consulta

    salu2

Entradas recientes

DeepSeek

2 días hace

Contacto

2 semanas hace

Smart-tv mute

2 semanas hace

STEAM OS

3 semanas hace

2025

1 mes hace

El podcast de Linux Hispano – #072 – El hardware libre debe consolidarse como el software libre

https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.

1 mes hace