Voy a programar un motor de juegos de aventura

Juan Pablo
Programando un motor de juegos de aventura
3 min readOct 7, 2016

Jueves, 6 de octubre de –1986– 2016

Leer el blog de Thimbleweed Park, el próximo juego aventura “estilo clásico” de Ron Gilbert y Gary Winnick –famosos por Monkey Island, Maniac Mansion y muchos otros juegos de Lucas Arts– me ha despertado las ganas dormidas de programar un motor de juegos de aventura de los point-and-click 2D.

No me interesa crear un juego, por que no tengo ni idea de que trataría (y tampoco dibujo muy bien). Lo que a mi me emociona es crear mi propio programa con el que podrían hacerse un juego como Thimbleweed Park.

Esto es lo que quiero ser capaz de hacer (aunque no lo haga)

¿Qué es un motor de juegos de aventura?

Bueno, aunque podrías programar un juego mezclando el código que dibuja en pantalla, con el diálogo y la animación de tu personaje caminando… eso no se hace.

Primero por que es un desorden inmantenible y segundo, por que las habilidades y el estado mental para programar que una animación se muestre en la pantalla y escribir un diálogo gracioso son muy diferentes. Es otro chip, y a veces lo hacen personas diferentes. Separación de responsabilidades y todo eso.

Lo que haces es separar esas partes en (al menos) dos:

  1. El motor, que se encarga de cosas como recibir lo que haces con el mouse y el teclado, pintar en la pantalla, reproducir sonidos y lo más importante: interpretar e implementar la funcionalidad de los scripts.
  2. Scripts escritos en un lenguaje de alto nivel (o sea muy legible), con funciones y “objetos” inventados por ti como “Actor” y “Room”.

Por ejemplo, mientras que en tu script tendrás cosas como:

actor.walk_to(x, y)

Tu motor se encargará de cargar la animación de caminar de tu personaje, calcular la ruta más corta hacia x, y (dentro de las zonas “caminables”) y borrar/redibujar hasta que tu personaje llegue al punto indicado.

3. Herramientas. Aunque (1) y(2) son el juego corriendo, definir las coordenadas de las zonas donde puede caminarse en una escena 2D, al ojo, no es divertido. Para eso y varias cosas por el estilo necesitas herramientas gráficas básicas que editen el script por ti y que IMHO forman parte del motor del juego.

El plan

Tengo una vida, esposa, hijo, un trabajo, otros proyectos y cuatro gatos que les gusta dormirse encima del teclado… así que a menos que haga un Kickstarter, este proyecto avanzará con MUCHA calma (o sea lento… muy lento… pero seguro… quizás).

Espera, ¡¿tienes cuatro gatos?!… digo ¿Por qué haces esto?

Bueno, le decimos a la gente que dos son de mi esposa y dos son míos así que no cuenta y… ¿En que iba? ¡Ah si! Hago esto por que:

  • Me encantan los juegos de aventura de los 80's/90's, como los Monkey Island, The Dig o Indiana Jones. Y siempre me dije que iba a hacer uno algún día… pero era el motor lo que me interesaba.
  • He trabajado en web los últimos X años y quiero probar algo completamente nuevo. Además ahora si soy capaz de hacerlo.
  • Así puedo aprender como se hace realmente un motor de juegos de aventura, y puedo escribir al respecto 😃.
  • Faltan como cuatro meses antes de que pueda jugar Thimbleweed Park.

Mira detrás de ti: ¡Un mono de tres cabezas!

--

--