Videojuegos, C/C++ y SDL
Rubén Darío Orozco Zapata
[email protected]
2008
Esta obra está bajo una licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5
Colombia de Creative Commons. Para ver una
licencia, visite
http://creativecommons.org/licenses/by-nc-sa/2.5/co/ o envie una carta a Creative Commons, 171
Second Street, Suite 300, San Francisco, California 94105, USA.
copia de
esta
Creative Commons License Deed
Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5
Colombia
Usted es libre de:
• copiar, distribuir y comunicar públicamente la obra
• hacer obras derivadas
Bajo las condiciones siguientes:
• Reconocimiento. Debe reconocer los créditos de la obra de la manera
especificada por el autor o el licenciador (pero no de una manera que
sugiera que tiene su apoyo o apoyan el uso que hace de su obra).
• No comercial. No puede utilizar esta obra para fines comerciales.
• Compartir bajo la misma licencia. Si altera o transforma esta obra, o
genera una obra derivada, sólo puede distribuir la obra generada bajo una
licencia iéntica a ésta.
• Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la
licencia de esta obra.
• Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del
titular de los derechos de autor
• Nada en esta licencia menoscaba o restringe los derechos morales del
autor.
Advertencia
Este resumen no es una licencia. Es simplemente una referencia práctica para entender el Texto Legal (la
licencia completa) es un redactado inteligible por cualquiera de algunos de los términos clave de la licencia.
Se trata de una interficie amigable del Texto Legal que hay debajo. Este resumen por si mismo no tiene
valor legal, y su contenido no aparece en la auténtica licencia.
Creative Commons no es un bufete de abogados y no ofrece servicios legales. La distribución, la muestra, o
el enlace de este Resumen no crea ningun vínculo abogado-cliente.
Los derechos derivados de usos legítimos u otras limitaciones reconocidas por ley no se ven
Esto es un resumen fácilmente legible del texto legal (la licencia completa).
afectados por lo anterior.
A todos los desarrolladores de videojuegos,
desde el “pequeño” desarrollador,
a las famosas empresas,
Y a todos los jugadores
de videojuegos del mundo
Gracias por darme una diversión,
que disipa odio que hay en el mundo…
Agradecimientos
A Martin Richards, KenThompson, Dennis Ritchie por que gracias a ellos nació el lenguaje
de programación C, a Bjarne Stroustrup por desarrollar C++, a los desarrolladores y
colaboradores de la librería SDL por su magnifico trabajo, sin todos ellos hoy no tanta
diversión. A mis amigos que siempre dan alegría a la vida y a mi familia por aguantarme
tanto y hacerme la vida agradable y más fácil de soportar.
Introducción ------------------------------------------------------------------------------------------- 1
Capítulo 1 Algo de historia ----------------------------------------------------------------------- 2
1.1 Historia de los videojuegos ----------------------------------------------------- 2
1.2 Sobre SDL --------------------------------------------- ----------------------- 2
1.3 Otras Librerías -------------------------------------------------------------------- 3
Capítulo 2 Un Videojuego --------------------------------------------------------------------- 5
2.1 ¿Qué necesito para mi videojuego? ------------------------------------------- 5
2.2 El corazón del videojuego ------------------------------------------------------- 6
Capítulo 3 Comenzando con SDL ------------------------------------------------------------ 8
3.1 Manos a la obra --------------------------------------------------------------------- 8
Capítulo 4 Imágenes y Eventos ---------------------------------------------------------------- 20
4.1 Eventos -------------------------------------------------------------------- 20
4.2 Técnicas de Video ------------------------------------------------------------------- 21
Capítulo 5 Creando el diminuto Motor ------------------------------------------------------- 35
Capítulo 6 La Herencia de un Actor ------------------------------------------------------ 47
Apéndice A Instalación y Configuración de SDL --------------------------------------------- 56
A.1 Agregar SDL a Dev-C++ ----------------------------------------------------- 56
A.2 Agregar SDL a Visual C++ ------------------------------------------------------ 58
Apéndice B Valore de SDLKey y mod ------------------------------------------------------ 61
Apéndice C Conceptos de gráficos 2D ----------------------------------------------------- 62
Apéndice D Algunas Funciones de SDL ------------------------------------------------------ 64
Apéndice E Recursos ---------------------------------------------------------------- 65
Bibliografía ------------------------------------------------------------------------------------------- 66
Introducción
1
El presente texto, es una guía para los que están interesados en el mundo de la
programación y más en la programación de videojuegos, con esto no quiero decir que sea
un libro extenso sobre la programación de videojuegos, ni que trate todos los temas que
hay sobre ellos y de cómo desarrollar un excelente videojuego, ni las mejores técnicas de
desarrollo para realizar un videojuego.
Lo que pretendo con este texto es presentarles unas bases para que se encaminen en
este maravilloso mundo lleno de imaginación y creatividad, para esto parto de dos ejes
fundamentales para que puedan seguir este texto, estos ejes son, la programación en
lenguaje C/C++ y el manejo de una librería que nos facilitara la programación gráfica y
muchas cosas más que tengan que ver con los videojuegos, esa es la librería
multiplataforma SDL (Simple Directmedia Layer).
Supondré que el interesado o sea tu ya posees conocimientos básicos de programación
estructurada y orientada a objetos, así que no me centrare mucho en detalles extensos
sobre la programación, además también supondré que sabes que es un videojuego, algo
de su historia, etc. así que no entrare en muchos detalles sobre esto tampoco, lo
primordial de este texto es encaminarte un poco sobre la programación de un videojuego
utilizando una librería como SDL para facilitar un poco las cosas, valga aclarar que este es
un corto camino de los muchos y más extensos que hay en el mundo del desarrollo de
video juegos, pero por algo se comienza.
Espero que este texto le agrade y les sea de utilidad, hay de antemano pido disculpas si
no doy a entender todo, parte o algo de lo que se encuentra en este texto, pero si tienen
alguna duda, comentario, sugerencia o critica háganmela saber, escribiendo a
[email protected], pues me interesa mucho su opinión y aporte ya que la
realimentación es la que nos ayuda a identificar los problemas.
Videojuegos, C/C++ y SDL
Algo de Historia
Capítulo 1 2
Algo de historia e información
técnica
“Los secretos de nuestras épocas están
codificados en nuestros juegos”
No me acuerdo del autor, disculpas.
interactivo en un aparato electrónico, eran solo dos
1.1 Historia de los videojuegos
¿De donde nacen los videojuegos?, pues como muchas cosas buenas que hay en este
mundo, que nacen de algo tenebroso y oscuro, los videojuegos nacen a partir de la guerra
fría por hay en los cincuenta, Willian o Willy Nighinbotthan en 1958, creo la primera forma
de entretenimiento
líneas
rudimentarias y una “pelota”, esto era una especie de tenis, después apareció Steve
Russell, creo un jueguito de naves en un maravilloso PDP llamado “spacewar” y gracias a
este personaje es que tenemos el poder en nuestra manos el maravilloso y todo poderos,
el control de mando, si, esa cajita con botones y cursor que utilizas en tu XBOX,
PlayStatio, etc. y luego viene Ralph Baer y crea la primera consola casera la “magnavox
odyssey”, después Nolan Bushnell funda en 1972 la empresa Atari, este personaje fue el
que creo el negocio del videojuego “y por ello, los videojuegos son tan caros ja ja ja” (una
pequeña broma?). Bueno creo que hasta aquí lo de la historia, creo que hay que destacar
algunos juegos que aparecieron como famoso PONG (Al Alcorn), Space invader todo un
clásico, Pac-MAN el primer héroe, el entretenido e intelectual Tetris.
1.2 Sobre SDL
SDL (Simple DirectMedia Layer), es una API creada por Sam Lantinga de Locky Games
para el desarrollo de videojuegos, demos, emuladores, reproductores y más, algo de lo
que te permite hacer SDL es establecer un modo de video y utilizar la memoria de video o
de sistema para trabajar con gráficos, que en términos de SDL se conocen como
superficies (Surfaces), te permite el manejo o detección de eventos para saber si se movió
el mouse o se presiono alguna tecla del teclado
Comentarios de: Videojuegos, C/C++ y SDL (0)
No hay comentarios