Attila, Tierra quemada

Después de terminar el proyecto Numbers Swap, hoy empiezo un nuevo proyecto que me gustaría ir explicando paso a paso desde la idea de proyecto hasta su publicación. Creo que a veces para las personas que empiezan es difícil ver la magnitud que tiene un proyecto ya que nos focalizamos en las partes que más nos gustan o nos interesan.



Attila, Tierra quemada es un juego de estrategia basado en el movimiento del caballo del ajedrez. En mi época de estudiante jugaba a este juego de lógica con una hoja cuadriculada y un bolígrafo. Hacía un cuadrado de 8x8 y llenaba los cuadritos interiores con números haciendo el salto del caballo del ajedrez.

El problema del caballo ha despertado el interés de muchos matemáticos a lo largo de la historia. Uno de los más famosos que halló solución al enigma fue el mejor matemático del siglo XVIII, el suizo Leonhart Euler. 

Este problema matemático consiste en recorrer un tablero de ajedrez recorriendo todas las casillas utilizando un caballo de ajedrez sin poder repetir ninguna. Podemos empezar por la casilla que queramos, pero debemos pasar por todas las casillas del tablero.


A partir de este problema querría desarrollar un juego de estrategia por niveles donde a partir de un punto inicial debemos recorrer las máximas casillas posibles antes de quedarnos atascados o llenar todo el tablero. Cada avance nos reportará puntos que iremos acumulando. 

A partir de un nivel encontraremos elementos/casillas con propiedades particulares que modificaran de alguna manera la mecánica del juego (ciudades, ríos, montañas, suministros, …) permitiendo ganar más puntos, eliminar/poner casillas,  deshacer movimientos, etc. Además no todos los tableros serán de 8x8 y rectangulares. Podremos encontrar tableros con otras formas y tamaños que nos permitan ajustar la dificultad del juego en función de la etapa.


A través de un conjunto de niveles con dificultad progresiva iremos avanzando por la historia de conquista de los ejércitos de Atila, has llegar a Roma si conseguimos terminar el juego con un nivel final que sería el desafío de Euler con la opción de recrear el reto original del reto del caballo.

Atila, rey los hunos, llevo su ejército de jinetes desde la estepa rusa hasta las puertas de Roma y Constantinopla. En el juego querría representar el movimiento del ejército huno a través de la Europa oriental proponiéndole al jugador objetivos en cada etapa que condicionen el juego en etapas posteriores bajo la premisa que nunca podrá pasar dos veces por la misma casilla. 

Parte de la historia de Atila es desconocida por los historiadores ya que sólo han llegado a la actualidad básicamente textos romanos de la época, con lo cual tenemos mucha libertad creativa para construir la historia como queramos.

El juego busca por un lado el contraste ente una mecánica muy simple para un juego de estrategia (el caballo del ajedrez y la no repetición de casillas) y un trasfondo ficcional de la construcción de una historia a través de objetivos en cada nivel que el jugador debe cumplir para seguir con la aventura.

Básicamente hay un solo personaje activo en el juego, el caballo que representa el ejército de los hunos. Este ejército tiene unas propiedades que reflejan las necesidades básicas de cualquier ejército (agua, comida, efectivos, armas, oro).

El resto de elementos son elementos sobre el tablero que interactúan con el personaje cuando el caballo pasa por una casilla con otro elemento interactuarle y pueden alterar las propiedades del caballo de Atila.

En el juego podremos encontrar elementos pasivos que modelan nuestro camino como elementos naturales o elementos activos que modificaran las propiedades del ejército y que forman parte del objetivo de la etapa actual del juego. 

Algunos ejemplos: 
  • Ciudades. Podemos saquearlas para obtener recursos si nuestro ejército es superior a sus defensas o pagar tributo para cruzar sus fronteras o ser derrotados si perdemos la batalla. 
  • Casillas objetivo. Casillas que debemos pasar obligatoriamente para terminar la etapa.
  • Ejército enemigo. La batalla condicionará cómo evoluciona el juego.
  • Campos. Podemos obtener comida y agua.
  • Ríos y lagos. Podemos obtener agua.
  • Minas y canteras. Podemos obtener oro.

Mecánica básica:
  1. El jugador mueve el caballo
  2. Recoge los recursos de la casilla destino
  3. Interactúa con la casilla si es necesario
  4. Modifica las propiedades en función de la interacción
  5. La casilla de origen se destruye.

Objetivos
El proyecto está en varias fases para garantizar la focalización del esfuerzo en etapas diferentes del proyecto. 
  • El primer objetivo es hacer un esqueleto de aplicación para móviles que contenga los elementos básicos de una aplicación profesional. Configuración del motor para dicho propósito, generar las rutinas de ficheros para gestionar valores de configuración y del juego en formato fichero. Crear el flujo básico de la aplicación.
  • El segundo objetivo es hacer una estructura interna para configurar los niveles: capas, elementos, objetivos y que el engine sea capaz de sobreponer la información sobre el nivel generado a través de tilesets isométricos para tener estructuras internas que reflejen la realidad del escenario.
  • En tercer lugar poner la figura del caballo y dotarle de movilidad por encima del nivel teniendo en cuenta las peculiaridades del movimiento del caballo en el ajedrez.
  • En cuarto lugar, ser capaz de relacionar el movimiento del caballo con la información almacenada del nivel en las estructuras internas. Crear y gestionar los triggers que generen los movimientos en relación al escenario. Destrucción de información dinámica.
  • Seguidamente deberíamos gestionar esos triggers entre el caballo y el escenario en función a los eventos asociados y cómo influyen en las propiedades del ejército del personaje definidas como condiciones de victoria y derrota del nivel.
  • El sexto objetivo es dotar al escenario de elementos de usabilidad de usuario, para el movimiento a través del mapa e interfaz de usuario de las diferentes escenas del proyecto.
  • En séptimo lugar es necesario crear al menos dos etapas de juego para definir la interacción entre ellas y definir el progreso en el juego y mostrar en ellas todas las mecánicas previstas (elementos, eventos, condiciones de victoria/derrota…).
  • En octavo lugar saber definir correctamente una coherencia visual entre todos elementos del juego para tener un producto cerrado y completo. Pantallas de inicio i fin, menús, elementos inter etapas.
  • En noveno lugar colocar los elementos visuales y sonoros, efectos, partículas, shaders que dotan al juego de un envoltorio estético uniforme y funcional.
  • En decimo y último lugar hacer todas la pruebas, análisis del equilibrio y dificultad entre niveles para determinar que el juego es coherente y divertido.

No hay comentarios:

Publicar un comentario

Como hacer copias de tu código de Unity con GitHub

Podriamos escribir un libro entero de las bondades de Git para el trabajo colaborativo y la gestión de versiones en un entorno como Unity. D...