[ebook]Programacion de videojuegos con SDL
[ebook]Programacion de videojuegos con SDL
[ebook]Programacion de videojuegos con SDL
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
P R O G R A M A C I Ó N D E V I D E O J U E G O S C O N S D LSistemas Operativos o la torre <strong>de</strong> BabelEl or<strong>de</strong>nador PC, comercializado por IBM en el año 1982, ha pasado por varias etapas <strong>de</strong>existencia. Aquellos primeros PCs iban equipados <strong>con</strong> el sistema operativo PC-DOS, que noera más que una versión <strong>de</strong> IBM <strong>de</strong>l MS-DOS <strong>de</strong> Microsoft. En los tiempos <strong>de</strong>l MS-DOS laprogramación <strong>de</strong> vi<strong>de</strong>ojuegos era bastante compleja, hacían falta gran<strong>de</strong>s <strong>con</strong>ocimientos <strong>de</strong>lenguaje ensamblador y <strong>de</strong> la estructura interna <strong>de</strong> la máquina, así como <strong>de</strong> la tarjeta <strong>de</strong> vi<strong>de</strong>oy <strong>de</strong> sonido. Toda la programación se hacía directamente sobre el hardware. Es fácil imaginarlos in<strong>con</strong>venientes, había que preparar el juego para que funcionara <strong>con</strong> muchos mo<strong>de</strong>los <strong>de</strong>tarjeta gráfica y también para los diferentes mo<strong>de</strong>los <strong>de</strong> tarjetas <strong>de</strong> sonido (Adlib, GravisUltrasound (GUS), Sound Blaster). Es <strong>de</strong>cir, hacer un juego, por simple que éste fuera,requería un esfuerzo muy alto, sin <strong>con</strong>tar <strong>con</strong> que no siempre toda la información necesariapara acce<strong>de</strong>r al hardware estaba al alcance <strong>de</strong> todo el mundo.La llegada <strong>de</strong> Windows tampoco mejora <strong>de</strong>masiado el panorama, ya que no permite unacceso directo al hardware y su rendimiento gráfico es pobre. El acceso a los recursos <strong>de</strong>lsistema también varía <strong>de</strong> un Sistema Operativo a otro. Se hace imprescindible, pues, crearuna interfaz común para el <strong>de</strong>sarrollo <strong>de</strong> vi<strong>de</strong>ojuegos que permita el acceso estandarizado y<strong>con</strong> una interfaz común a los recursos <strong>de</strong>l sistema. Algunas <strong>de</strong> estas propuestas son OpenGLy DirectX (éste último sólo para sistemas Windows).En el caso <strong>de</strong> OpenGL, se nos ofrece una interfaz multiplataforma, sin embargo, se limita aofrecernos una interfaz <strong>de</strong> acceso a gráficos (especializada en 3D, aunque <strong>con</strong> posibilida<strong>de</strong>s<strong>de</strong> 2D) y no nos permite el acceso a otros recursos <strong>de</strong>l sistema (teclado, sonido, joystick,timmers, etc...).DirectX, sin embargo, está compuesto por varias sub-interfaces <strong>con</strong> el SO y el hardware,como DirectDraw (Gráficos 2D), Direct3D (Gráficos 3D), DirectInput (Entrada y Salida),DirectPlay (Capacida<strong>de</strong>s <strong>de</strong> comunicación en re<strong>de</strong>s TCP/IP), DirectSound (Acceso ahardware <strong>de</strong> sonido) y algún que otro componente más. Como vemos, DirectX tiene grancantidad <strong>de</strong> capacida<strong>de</strong>s, pero presenta dos in<strong>con</strong>venientes. El primero es que sólo es válidopara sistemas Windows, y el segundo es que por la propia naturaleza <strong>de</strong> la programación enWindows, su uso es algo engorroso y no apto para programadores <strong>con</strong> poca experiencia <strong>con</strong>las APIs <strong>de</strong> Windows y más <strong>con</strong>cretamente <strong>con</strong> la interfaz COM+.Afortunadamente, la empresa Loki Games, ante la necesidad <strong>de</strong> hacer portables los juegos<strong>de</strong> Windows a Linux y a otros sistemas operativos, crean una librería multiplataforma llamada<strong>SDL</strong> (Simple Directmedia Layer), que nos ofrece acceso a los recursos <strong>de</strong> la máquina(gráficos, sonido, entrada/salida, timming, etc...) mediante una interfaz coherente ein<strong>de</strong>pendiente <strong>de</strong>l SO. <strong>SDL</strong>, a<strong>de</strong>más, nos permite utilizar la interfaz OpenGL para gráficos 3D.8