Programación de Juegos

Por Nacho Cabanes Ultima modificación: 23-Jun-2008  /   English Version 
Últimas novedades...

¿Por qué este apartado?

Una de las dudas que recibo con más frecuencia de la gente que ya tiene una cierta soltura programando es "Me gustaría crear un juego, ¿cómo lo hago?"

No es algo fácil, y de hecho los juegos actuales son desarrollados por grandes grupos de personas: programadores, grafistas, expertos en sonido, etc.

Aun así, puede ser interesante tener las nociones básicas, para poder crear cada uno "sus propios juegos", más sencillos que los juegos comerciales, pero con mucho más valor emocional... y a veces incluso más entretenidos que los caros juegos comerciales.

Por eso, he recopilado los cursos que conozco, que estén relacionados con la programación de videojuegos.


Cursos disponibles

  • IPJ (Introducción a la programación de juegos), actualizado a 23-Jun-08, por Nacho Cabanes, en español, en formato HTML, centrado en lenguaje C y C++, con comentarios sobre la conversión a Pascal (ya disponible) y a Java (apenas comenzada). La intención es crear juegos sencillos para Windows, Linux y Dos. El contenido lo puedes ver un poco más abajo. Disponible la versión 0.21, en formato CHM (Ayuda de Windows 98) comprimida en un fichero ZIP de 406 Kb de tamaño. Tienes también la versión 0.13 convertida a formato PDF, comprimida en un fichero ZIP de 467 Kb de tamaño, sólo recomendable si no usas Windows. Este curso está en plena remodelación, lo estoy revisando desde el primer tema y procurando que todos los ejemplos (o casi) funcionen en C, Pascal y Java, ya desde el primer apartado. Si quieres ver cómo avanza esta versión, la puedes consultar en línea (incluye 8 apartados por ahora).
  • El CPV (Curso de Programación de Videojuegos), creado por Jesús Angel Sánchez Mena y Benjamín Moreno Palacios. Está en español y diseñado para MsDos. Utiliza lenguaje Pascal, e incluye fragmentos en ensamblador y algunas rutinas C. Están disponibles las entregas 1 a 5 en formato HTML para consultar en línea, y para descargar en un fichero ZIP de 219 Kb . En la págin a de Paco Priego se puede descargar el curso original (6 entregas), así como un visor para Windows creado por él.
  • PcGPE es la PC Games Programmer Encyclopedia (enciclopedia del programador de juegos), con información sobre cómo trabajar en modo gráfico, cómo leer el ratón y el joystick o cómo crear muchos efectos, como fuegos, rotaciones, perspectivas, sombreados, etc. Orientado a MsDos. La mayoría de los fuentes están en Pascal, con rutinas en ensamblador (incluye una pequeña introducción a este último lenguaje). En inglés. Está comprimido en un fichero ZIP de 720 K de tamaño.
  • El curso "Programación de juegos con Java 2D" te enseña a crear un Space Invaders en 29 pasos. Lo tienes en www.planetalia.com/cursos
  • También tienes el curso "Programación de juegos para móviles con J2ME" para consultar on-line en www.programac ion.com/java/tutorial/ags_j2me, o bien en formato PDF en la web de su autor www.agserrano.com/publi.html
  • En Código Verde (www.codigoverde.com) también tienes un Space Invaders desarrollado paso a paso, junto con otros juegos para descargar con sus fuentes y enlaces sobre programación de juegos.
  • Un curso de programación de juegos con Div Games Studio se puede encontrar en eltutor.iespana.es/eltutor/secciones/prog/juegos
  • El libro "Java Graphics and Gaming" (en fase beta) se puede descargar en fivedots.coe.psu.ac.th/~ad/jg/
  • El curso (incompleto) "Java Game Development Tutorial" está en www.javacooperation.gmxhome.de/TutorialStartEng.html
  • El libro "Programming Linux Games" está disponible en formato PDF en www.overcode.net/~overcode/writing/plg/
  • Si quieres información sobre programación de juegos en Pascal (en inglés), puedes mirar también en www.pascalgamedevelopment.com (apoyada en Free Pascal y en Delphi).

Contenido de mi curso

Toma de contacto:

¿Por qué este curso? Condiciones de uso.¿Cómo puedo colaborar?
¿Qué herramientas emplearemos?

Temas ya preparados:

      1. Preparando las herramientas (cómo instalar DJGPP y Allegro).
      2. Entrando a modo gráfico y dibujando (y su versión en Pascal y en Java).
      3. Leyendo del teclado y escribiendo texto.
      4. Nuestro primer juego: Ahorcado.
      5. Creando programas para Windows.
      6. Evitemos esperar al teclado. Segundo juego: motos de luz.
      7. Cómo crear figuras multicolor que se muevan.
      8. Mapas. Tercer juego: MiniSerpiente.
      9. Más sobre la paleta de colores.
      10. Cuarto juego: Serpiente.
      11. Cómo crear juegos para Linux.
      12. Utilizando el ratón.
      13. Quinto Juego: Puntería.
      14. Temporizadores con Allegro.
      15. Un poco de matemáticas para juegos.
      16. Sexto Juego: TiroAlPlato.
      17. Distintas resoluciones sin cambiar el programa.
      18. Cómo reproducir sonidos.
      19. Séptimo juego: SimeonDice.
      20. Formatos de ficheros de imágenes más habituales.
      21. Cómo leer imágenes desde ficheros.
      22. Varios movimientos simultáneos. Imágenes "animadas": UnMarciano.
            a) Leyendo las imágenes desde un fichero.
            b) Moviendo un enemigo que cambia de forma.
            c) Moviendo una nave y un enemigo a la vez con velocidades distintas.
            d) Añadiendo la posibilidad de disparar.
      23. Moviendo varios "enemigos" a la vez. MataMarcianos.
            a) Varios enemigos que se mueven.
            b) Eliminando parpadeos: doble buffer.

Temas previstos para las próximas entregas (el orden puede variar):

      24. La aproximación orientada a objetos. (*)
            a) Cómo plasmarlo en C++. (*)
            b) Cómo plasmarlo en Java. (*)
            c) Cómo plasmarlo en Objects Pascal. (*)
      25. Ampliando el matamarcianos: nuestros enemigos disparan. (*)
      26. Ampliando el matamarcianos: varias vidas y dificultad creciente. (*)
      27. Creando una pantalla de presentación sencilla. (*)
            a) La opción fácil: una imagen estática. (*)
            b) Animaciones sencillas mientras esperamos. (*)
      28. Guardando y recuperando records y configuraciones. (*)
      29. Completando el matamarcianos con todo esto... (*)
            a) Versión en C++. (*)
            b) Versión en Java. (*)
            c) Versión en Objects Pascal. (*)
      30. Inciso 1: un clásico fácil de programar: Columns. (*)
      31. Cómo redefinir las teclas con las que jugaremos. (*)
      32. Manejo del joystick. (*)
      33. Inciso 2: Otro clásico sencillo y adictivo: Tetris (*)
      34. Como saber qué modos gráficos tenemos disponibles. (*)
      35. Empleando distintos tipos de letra. (*)
      36. Enemigos "inteligentes": PicMan. (*)
      37. Otro clásico: MiniAsteroides. (*)
      38. Pantallas con elementos y obstáculos distintos. (*)
      39. Otro clásico: NBert. (*)
      40. Un primer "arcade": MiniMiner. (*)
      41. Otro clásico más: LaRana. (*)
      42. Y otro más: Multipede. (*)
      43. Introducción a los Scrolls. (*)
      44. Un primer juego de scroll horizontal, MiniMarianoBros. (*)
      45. Introducción a las figuras 3D: representación, movimiento y rotación. (*)
      46. Creando una pantalla de bienvenida animada en 3D. (*)
      47. Figuras 3D con texturas. (*)
      48. Un juego con figuras 3D: StarFighting. (*)
      49. Imágenes en varios planos. (*)
      50. Un matamarcianos con scroll vertical y varias capas: Nevious. (*)
      51. Compactando varios ficheros de datos en uno. (*)
(...)

Cambios en esta página

23/Junio/2008 Prosigue la revisión del curso de videojuegos.
06/Enero/2007 Aplicado a esta página el nuevo cambio de imagen de la Web.
03/Sept./2005 La versión remodelada de la Introducción a la Programación de Juegos, disponible para consulta en línea, incluye ya 8 apartados.
16/Agosto/2005 Corregido el enlace al CPV en formato HTML, que no funcionaba con el cambio de servidor. Comienzan los apartados reescritos de mi curso. Habrá cambios cada día o cada pocos días. Si te interesan, puedes consultar esos cambios aquí.
07/Agosto/2005 Mi curso está en plena remodelación, lo estoy revisando desde el primer tema y procurando que todos los ejemplos (o casi) funcionen en C, Pascal y Java, ya desde el primer apartado. Si quieres ver cómo avanza esta versión, la puedes consultar en línea (por ahora sólo está disponible la introducción). Añadido un enlace sobre programación de juegos en Pascal. Aplicado a esta página el nuevo cambio de imagen de la Web.
07/Mar/2005 Incluida la entrega 0.21 de la Introducción a la Programación de Juegos (sólo en formato CHM, no en PDF), que incluye más efectos básicos para pantallas de presentación, cómo compilar para Windows con Dev-C++, detalles sobre el formato PCX y sobre como mostrar estos ficheros desde Pascal.
07/Mar/2005 Incluida la entrega 0.20 de la Introducción a la Programación de Juegos (sólo en formato CHM, no en PDF), que incluye la primera entrega sobre cómo crear pantallas de presentación.
24/Dic/2004 Incluida la entrega 0.18 de la Introducción a la Programación de Juegos (sólo en formato CHM, no en PDF), que incluye la versión en Java del segundo apartado.
29/Nov/2004 No habia actualizado el enlace a la entrega 0.17. Corregido 0:-)
20/Nov/2004 Incluida la entrega 0.17 de la Introducción a la Programación de Juegos (sólo en formato CHM, no en PDF), que empieza a incluir caracteristicas Orientadas a Objetos.
24/Oct/2004 Incluida la entrega 0.16 de la Introducción a la Programación de Juegos (sólo en formato CHM, no en PDF), que elimina los parpadeos del matamarcianos. Añadido un enlace a otro curso de programación de juegos en Java.
12/Oct/2004 Añadidos SEIS (!!!) nuevos enlaces sobre programación de juegos. Incluida la entrega 0.15 de la Introducción a la Programación de Juegos (sólo en formato CHM, no en PDF), primera versión del matamarcianos que realmente incluye varios marcianos ;-D (apartado 23a).
16/Sep/2004 Incluida la entrega 0.14 de la Introducción a la Programación de Juegos (sólo en formato CHM, no en PDF), con: la cuarta aproximación al juego de marcianos (apartado 22d).
24/Jul/2004 Incluida la entrega 0.13 de la Introducción a la Programación de Juegos (sólo en formato CHM, no en PDF), con: la tercera aproximación al juego de marcianos (apartado 22c). Actualizada la versión en formato PDF a la 0.13.
02/Jun/2004 Incluida la entrega 0.12 de la Introducción a la Programación de Juegos (sólo en formato CHM, no en PDF), con: la segunda aproximación al juego de marcianos (apartado 22b), imagen PCX para la primera aproximación, por si alguien no quiere perder tiempo en crear sus propias imágenes.
21/May/2004 Incluida la entrega 0.11 de la Introducción a la Programación de Juegos (sólo en formato CHM, no en PDF), con: la primera aproximación al juego de marcianos (apartado 22a), sonidos de ejemplo para el juego de "Simon" (por si alguien no tiene ningún editor MIDI o prefiere el trabajo hecho), versión en Pascal del juego de MiniSerpiente, como ejemplo básico de Sprites en Pascal.
24/Abr/2004 Incluida la décima entrega (0.10) de la Introducción a la Programación de Juegos (sólo en formato CHM, no en PDF), con: la solución del juego de "Simon", más detalles sobre cómo resolver la primera aproximación al juego de marcianos (apartados 22a a 22c), versión en Pascal del apartado 3, del juego de Motos de Luz y del Ahorcado.
11/Abr/2004 Incluida la novena entrega (0.09) de la Introducción a la Programación de Juegos (sólo en formato CHM, no en PDF), con notas sobre: Formatos de imágenes más habituales, Cómo leer imágenes desde ficheros.
19/Mar/2004 Incluida la octava entrega (0.08) de la Introducción a la Programación de Juegos (sólo en formato CHM, no en PDF), con notas sobre: como poder usar distintas resoluciones sin cambiar el programa, Cómo reproducir sonidos, versión en Pascal del juego del ahorcado
28/Feb/2004 Incluida la séptima entrega (0.07) de la Introducción a la Programación de Juegos, con notas sobre cómo medir el tiempo, algo de matemáticas aplicadas a juegos y un ejemplo de juego de "tiro al plato". Incluida una versión de mi curso convertida al formato PDF, y una lista de contenido de mi curso.
29/Ene/2004 Incluida la sexta entrega (0.06) de la Introducción a la Programación de Juegos, con notas sobre cómo compilar los juegos para Linux, cómo acceder al ratón y un ejemplo.
30/Jul/2003 Incluida la quinta entrega (0.05) de la Introducción a la Programación de Juegos, con un ejemplo de juego de "la serpiente"
29/Jun/2003 Incluida la cuarta entrega (0.04) de la Introducción a la Programación de Juegos, con notas sobre la paleta de colores.
04/Mar/2003 Incluida la tercera entrega (0.03) de la Introducción a la Programación de Juegos, con información sobre cómo crear figuras multicolor que se muevan y una aproximación al juego de "la serpiente".
13/Feb/2003 Localizada la página oficial del CPV, que ya incluye todos los fuentes -> añadido un enlace.
31/Ene/2003 Incluida la segunda entrega (0.02) de la Introducción a la Programación de Juegos.
15/Ene/2003 Creada la primera entrega de la Introducción a la Programación de Juegos. Añadida la quinta entrega del CPV.
12/Ene/2003 Cambiada la página, para que no acceda únicamente al CPV, sino a todos los cursos relacionados con videjuegos que vaya encontrando. Incluido también un enlace a PCGPE y mencionado IPJ (aún no disponible).

Otros cambios anteriores en toda la Web


(Volver arriba)