Postmortem: programando videojuegos como en 1984 (GameGiving 2014)

West Duel: Juego de Ejemplo del taller de Programación en BASIC como en 1984
West Duel: Juego de Ejemplo para Programar en BASIC

El pasado viernes, 11 de abril de 2014, estuvimos disfrutando y aprendiendo a programar videojuegos como en 1984 en la GameGiving 2014. Con 12 puestos de ordenadores Dentro del Palau Comptal de Cocentaina organizamos 4 divertidas sesiones del Taller-Reto de programación en Locomotive BASIC 1.0. para Amstrad CPC. A continuación os resumimos todo lo que hicieron los más de 50 asistentes empezando desde 0, y os dejamos todo el material del taller para que podáis hacerlo vosotros también, junto con todas las fotos que tomamos durante el evento.

Empezando a programar videojuegos

Muchos futuros programadores concentrados en el taller
Muchos futuros programadores concentrados en el taller

No hay nada mejor para aprender a programar videojuegos que ponerse a programarlos directamente. Con esta idea organizamos el Taller-Reto “Programando videojuegos como en 1984”: damos a los asistentes una muy rápida introducción al Amstrad CPC, cómo funciona, las órdenes básicas y cómo se hace un programa. 15/20 minutos son suficientes para aprender a cargar juegos hechos en BASIC y empezar a modificarlos.

Desde el principio, todos toman contacto con el ordenador y comienzan a probar y experimentar: viendo cómo se comporta el Amstrad ante órdenes básicas como MODE, CLS, PEN, PRINT, PAPER, BORDER… En unos pocos minutos ya se sabe cómo pintar cosas en pantalla, cambiar de color y cambiar de modo. Lo siguiente es ver cómo se introduce un programa (usando líneas de código), como se lanza y como se guarda en disco.

A partir de aquí, el taller va directo al grano: los asistentes reciben un disco con 4 videojuegos y una lista de retos por nivel y puntuación. Cada reto consiste en modificar alguno de los 4 juegos: cambiar colores de personajes, dibujar marcadores, aumentar las vidas, crear nuevos personajes, añadir nuevos comportamientos, etc. En menos de 30 minutos, todos los participantes están concentrados leyendo código BASIC de videojuegos reales (sencillos, pero reales), entendiéndolo y modificándolo.

4 videojuegos de ejemplo

Programando videojuegos en BASIC
Programando videojuegos en BASIC

Estos son los 4 videojuegos hechos en BASIC, de dificultad incremental, pensados para que puedan ser leídos, entendidos y modificados. En los materiales del taller tenéis los retos de modificación, por si queréis intentarlos.

ASCII

Se trata de un dibujo hecho por @Dardalorth utilizando únicamente MODE, PEN, PAPER, PRINT y CHR$. Es una sencilla introducción sobre cómo dibujar cosas en la pantalla.

Magic Door

Es una versión muy muy simplificada del clásico juego West-Bank para Amstrad CPC. Hay una puerta que se abre y puede aparecer un enemigo o una bolsa de dinero. Hay que disparar (pulsar espacio) contra el enemigo y no disparar a la bolsa de dinero. Se aprende WHILE, LOCATE, STRING$, BORDER, TIME, RND, INT, INKEY, IF/THEN/ELSE, GOTO y sencillo uso de variables.

Programando en BASIC: Logro 1-2, desbloqueado
Programando en BASIC: Logro 1-2, desbloqueado

Alien Shooter

Un sencillo juego de manejar una nave y disparar para matar a un Alien. La nave se maneja con las flechas izquierda y derecha, y el espacio para disparar. A lo ya aprendido se añade uso más general de variables, CHR$(15) para sustituir a PEN, Control de animación, pintado, borrado y repintado, uso general de IF/THEN/ELSE, bucle principal del juego.

West Duel

Un clásico duelo del oeste para 2 jugadores. Cada jugador juega con 1 tecla solo (J1=TAB, J2=ENTER): pulsando la tecla su personaje se preparar para disparar, y soltándola dispara. Cuanto más tiempo esté el jugador en espera o preparándose, mayor será la precisión del disparo. En este juego ya se añade el uso de subrutinas con GOSUB/RETURN, la definición de nuevos sprites (caracteres) con SYMBOL, el uso del modo transparente de sprites (CHR$(22)+CHR$(1)) y usos de cadenas de texto para definir sprites.

Logros conseguidos

Pequeño aprendiz de programador superando retos
Pequeño aprendiz de programador superando retos

En las 4 sesiones impartidas del taller los asistentes estuvieron entre 1 y 2 horas cada uno intentando los retos de programación propuestos. Muchos de ellos consiguieron superar algunos retos del nivel 1 (ASCII), mientras que algunos consiguieron algunos retos del nivel 2 (MDOOR). Teniendo en cuenta que todos los asistentes empezaron completamente de 0 (ni siquiera conocían el Amstrad CPC), sólo podemos decir que estamos muy contentos de ver lo que fueron capaces de hacer en tan poco tiempo, y que esperamos que continúen para completar todos los demás logros.

Con los puntos obtenidos, por los asistentes que presentaron sus logros como retos superados, elaboramos una pequeña tabla de clasificación que quedó así:

  1. David_______85 puntos (4 logros)
  2. Jhonatan____45 puntos (3 logros)
  3. Robert______45 puntos (3 logros)
  4. KRALL_______45 puntos (3 logros)
  5. Ismael______32 puntos (4 logros)
  6. Iván________20 puntos (2 logros)

Materiales

Estos son todos los materiales que se utilizaron en el taller (presentación, disco de juegos, emulador WinAPE, referencia de BASIC y hoja de retos). ¿Os atrevéis a superar los retos?

Galería de imágenes

2 comentarios en “Postmortem: programando videojuegos como en 1984 (GameGiving 2014)

  1. Primero enhorabuena por el curso fue todo un gusto participar en el , ademas de aprender y divertido sirve para mucho y segundo me podrías enviar una foto sin el difuminado? Gracias !

    • Me alegro mucho de que te gustara el curso. A ver si pronto nos enseñas lo que has aprendido y podemos comentar algún juego hecho por ti en el blog :).

      Te enviamos las fotos por correo.

Deja un comentario