10.07.2015 Views

[ebook]Programacion de videojuegos con SDL

[ebook]Programacion de videojuegos con SDL

[ebook]Programacion de videojuegos con SDL

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!