[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 LIntroducciónLa imaginación es el motor <strong>de</strong> la creatividad, y la creatividad elmotor <strong>de</strong> la inteligencia.Muchas son las personas que opinan que la programación <strong>de</strong> or<strong>de</strong>nadores esuna ciencia, otros lo ven como una ingeniería, sin embargo, algunos preferimosverla como un arte. Si tienes este libro entre tus manos, es porque te interesala programación y también los vi<strong>de</strong>ojuegos. Si es así, enhorabuena, porqueestás a punto <strong>de</strong> entrar en un mundo realmente fascinante. La programación <strong>de</strong>vi<strong>de</strong>ojuegos es muy diferente a la programación tradicional, requiere <strong>de</strong> una grancreatividad, pero también <strong>de</strong> una gran curiosidad y ganas <strong>de</strong> <strong>de</strong>scubrir y, por que no,inventar cosas nuevas. De hecho, cuando creamos un vi<strong>de</strong>ojuego, estamos creando unmundo nuevo, <strong>con</strong> su propio aspecto y sus propias leyes. En ese sentido el programadores como un dios <strong>de</strong>ntro <strong>de</strong> ese mundo. La mayoría <strong>de</strong> las personas que se <strong>de</strong>dican a laprogramación se han planteado en algún momento el hacer un juego, y sin embargo sonpocos los programadores que se <strong>de</strong>ci<strong>de</strong>n a hacerlo. ¿Hace falta algún don especial parahacer vi<strong>de</strong>ojuegos? Probablemente no, pero hay muy buenos escritores <strong>de</strong> novelas queno son capaces <strong>de</strong> escribir poesía, y viceversa. En programación parece ocurrir lo mismo,hay programadores especialmente dotados para la programación <strong>de</strong> gestión y otros se<strong>de</strong>senvuelven mejor <strong>con</strong> una programación más cercana a la máquina.Supondré que el lector ya posee <strong>con</strong>ocimientos <strong>de</strong> programación, y más<strong>con</strong>cretamente <strong>de</strong>l lenguaje C. En el transcurso <strong>de</strong>l libro, vamos a introducir las técnicasbásicas utilizadas en la creación <strong>de</strong> vi<strong>de</strong>ojuegos <strong>de</strong> forma práctica y a través <strong>de</strong> ejemplos,incluyendo el <strong>de</strong>sarrollo <strong>de</strong> un juego completo. Vamos a utilizar para ello una libreríamultiplataforma llamada <strong>SDL</strong> (Simple Directmedia Layer) que nos va a permitir quenuestros juegos sean portables entre Windows, Linux, Macintosh, BeOs y otros. Tambiénvamos a introducir ciertas características <strong>de</strong> la programación orientada a objetos (POO)que nos ofrece C++, pero no <strong>de</strong>be preocuparse el lector <strong>de</strong>s<strong>con</strong>ocedor <strong>de</strong> la POO,porque <strong>de</strong>dicamos un apéndice completo para familiarizarnos <strong>con</strong> los elementos quevamos a usar <strong>de</strong> dicho lenguaje. La programación orientada a objetos es hoy necesaria ala hora <strong>de</strong> <strong>con</strong>seguir juegos <strong>de</strong> calidad profesional, por ello, introduciremos ciertosaspectos <strong>de</strong> este paradigma <strong>de</strong> programación.Respecto a al grafismo utilizado en el juego <strong>de</strong> ejemplo que <strong>de</strong>sarrollaremos durante ellibro, he utilizado la librería <strong>de</strong> sprites GPL <strong>de</strong> Ari Feldman (http://www.arifeldman.com/),al cual agra<strong>de</strong>zco, y animo a seguir ampliando.Antes <strong>de</strong> acabar, quiero hacer una aclaración. Este no es un libro sobre programacióny uso <strong>de</strong> <strong>SDL</strong>. Es un libro sobre programación <strong>de</strong> vi<strong>de</strong>ojuegos, por lo tanto, no esperesuna exhaustiva referencia sobre <strong>SDL</strong>. Iremos <strong>de</strong>scubriendo los diferentes aspectos <strong>de</strong>esta librería según los necesitemos en nuestro camino a la creación <strong>de</strong> un vi<strong>de</strong>ojuego, espor ello que habrá elementos <strong>de</strong> la librería que no formarán parte <strong>de</strong> los temas cubiertospor este libro.Quiero, finalmente, <strong>de</strong>jar patente el objetivo que siempre he perseguido mientrasescribía el presente texto: Mantener las cosas simples, sin entrar en tecnicismosinnecesarios que distraigan al programador menos formal <strong>de</strong>l objetivo final, que es dotarle<strong>de</strong> las herramientas necesarias para expresar toda su creatividad en forma <strong>de</strong>vi<strong>de</strong>ojuego. No me cabe duda que hay cientos o miles <strong>de</strong> potenciales buenosprogramadores <strong>de</strong> juegos que, aún teniendo los <strong>con</strong>ocimientos <strong>de</strong> programaciónnecesarios, no han podido acce<strong>de</strong>r a una información clara y carente <strong>de</strong> formalismos más4