Aviso: Desde el 14/12/2020, se eliminó el enlace. Motivos, en una entrada posterior.
¡Pues aquí está! Pero quisiera contar su historia... Sin extenderme demasiado.
La idea de aprender a programar, aunque fuera sólo una afición, provino de mi amigo Daniel Robledo, quien me comentó que Python era un lenguaje de uso público que era fácil de manejar... No le faltaba razón, aunque es incompleto, incluso considerando módulos orientados a la creción de juegos como Pygame.
Thrylos es desde el principio un juego de plataformas del género cinemático, que engloba los juegos cuya física suele ser realista: los personajes no pueden variar su dirección en el vacío, suelen ser humanos o una especie similar y la acción suele ser breve, normalmente un impacto significa la muerte.
Ejemplos bien conocidos son el clásico Prince of Persia, Abe's Oddysee y su secuela Abe's Exoddus, y Another World. Me basé en estos juegos porque quería desde el principio que la protagonista fuera una muchacha normal y corriente, en oposición de que fuera princesa o tuviera orígenes mágicos (muchas veces, ambos hechos están relacionados).
Ahora bien, como la cantidad de juegos que he llegado a conocer es extensa, tengo otras dos influencias:
-De Snow Bros he cogido el concepto de niveles de una sola pantalla, sin scroll, aunque no descarto que en el futuro introduzca un buen scroll.
-Más importante, el juego va a contar con diversos personajes que están a la vez en la pantalla y cuyo control se cambia. Es decir, a diferencia de lo que ocurre en otros juegos, donde esto sólo sucede si sale el personaje del principio, estos personajes siempre van a estar ahí y deben avanzar todos juntos.
Fuera de estos detalles, pensé en un modelo tradicional: The Escape of the Slave Girl, juego lineal, en el que a la chica que huye de la esclavitud se le unen diversos personajes a lo largo de la aventura por diversas razones. Estos compañeros iban a ser tres, lo que sumaba cuatro personajes. No obstante, en ese momento se topó en mi camino un tuitero que se llama Agorer (@LatveriasDoom), quien enlazó un juego freeware llamado Like a Clockwork. En sí, es una crítica a lo tópico que se han vuelto los juegos de rol japoneses, pero me inspiró la idea de que tuviera diversos itinerarios y diversos finales.
Tiempo después, empecé a pensar que, como los diversos finales que he ido pensando no siempre cumplen lo anunciado en el título original, debía el proyecto tener otro nuevo título y se me ocurrió que Thrýlos, "leyenda" en griego, era una buena idea porque me baso, aunque sea con muchas libertades, en la mitología griega.
Esta historia es mayormente fiel a la realidad, aunque hay que considerar que algunas veces interrumpí y reempecé el proyecto cuando asuntos personales o incluso cursos de programar me fueron forzando a considerar otros puntos de vista (muy especialmente, mis nulos conocimientos de programar al empezar, miren). Casi conseguía la colaboración de un dibujante, a propósito, pero no cuajó.
Pero como la práctica hace al maestro, he mejorado bastante y he alcanzado este prototipo, que comparto por Drive. No obstante, mayormente está incompleto, pero tiene algunos de los elementos que he comentado más arriba. Eso sí, necesita varias mejoras, entre estas:
-Los proyectiles, en general, van demasiado rápido. Todavía no me he preocupado en exceso de la actualización, que se limita a 60 ticks por segundo. De todos modos, quiero mejorar cómo se produce la interacción entre estos y los personajes.
-Quiero introducir plataformas de las que dejan pasar si el personaje sube, pero son un obstáculo si cae, con una animación especial que muestre cómo suben.
-Mejorar la IA, que es muy limitada. Hasta ahora usaba un sistema de "banderas", que marcaba en diversos puntos del escenario qué debía hacer un NPC si por allí pasaba y según su comportamiento... Pero este sistema es bastante aburrido de implementar si el escenario cambia, porque también la bandera debe cambiar su posición. Así que, inspirado para la solución que he encontrado para un movimiento-el cual no aparece por las razones a continuación nombradas-, he decidido que reaccionen de acuerdo con las plataformas del propio escenario.
-Quiero introducir plataformas de las que dejan pasar si el personaje sube, pero son un obstáculo si cae, con una animación especial que muestre cómo suben.
-Mejorar la IA, que es muy limitada. Hasta ahora usaba un sistema de "banderas", que marcaba en diversos puntos del escenario qué debía hacer un NPC si por allí pasaba y según su comportamiento... Pero este sistema es bastante aburrido de implementar si el escenario cambia, porque también la bandera debe cambiar su posición. Así que, inspirado para la solución que he encontrado para un movimiento-el cual no aparece por las razones a continuación nombradas-, he decidido que reaccionen de acuerdo con las plataformas del propio escenario.
-En general, todos los movimientos necesitan repaso. Uno de ellos ha debido incluso de ser eliminado porque mostraba un fallo molesto y tampoco es necesario de momento. Y, esto es imprescindible, necesito sprites de distinguir entre los personajes, porque pocos de Open Game Art me parecen apropiados para el juego. También relacionado con esto, hay que darle mayor personalidad a cada escenario.
-Añadir una configuración de controles. ¡Qué menos! A no todos nos gusta jugar de la misma manera.
-Esta no se nota al jugar, pero es importante: cambiar algunos de los datos, porque, primero, a veces dan problemas derivados de que en Python los booleanos se pueden confundir con números enteros y, segundo, un cambio en cómo se guardan podría facilitar el juego fuera editable, cosa que suele gustar.
-Añadir una configuración de controles. ¡Qué menos! A no todos nos gusta jugar de la misma manera.
-Esta no se nota al jugar, pero es importante: cambiar algunos de los datos, porque, primero, a veces dan problemas derivados de que en Python los booleanos se pueden confundir con números enteros y, segundo, un cambio en cómo se guardan podría facilitar el juego fuera editable, cosa que suele gustar.
Hay otras mejoras pendientes, pero primero me concentraré en estas, que saldrán para el siguiente prototipo. Y sin más preámbulos, el ELIMINADO donde se puede descargar... Por supuesto, también está en la columna lateral (que debo actualizar estos días).