Ir al contenido principal

Back to work!

¡Hola! Estoy emocionado de anunciar que he retomado la actividad en mi blog "Jugando Haciendo Juegos" después de una pausa. En esta nueva etapa, el blog se centrará en proporcionar información valiosa desde dentro de la industria de los videojuegos, incluyendo trucos, curiosidades, herramientas, recursos y consejos sobre cómo crear videojuegos desde la comodidad de tu habitación utilizando Unity. El blog ya cuenta con varios artículos útiles que pueden servir como recursos iniciales. Por ejemplo, hay guías detalladas sobre cómo hacer copias de seguridad de tu código de Unity con GitHub, lo que es crucial para la gestión de versiones y el trabajo colaborativo. También encontrarás tutoriales sobre el diseño de interfaces de usuario, el desarrollo de controladores de personajes y cómo crear un PressKit para tu juego. Mi objetivo es compartir conocimientos prácticos y experiencias personales para ayudar tanto a principiantes como a desarrolladores más avanzados a mejorar sus hab

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.

Comentarios

Entradas populares de este blog

El diseño de la interfaz de usuario

El estudio del diseño de interfaz de usuario en videojuegos es un tema que se ha estudiado en profundidad pero que muchos desarrolladores que empiezan no prestan mucha atención centrando su energía en las mecánicas del juego y especialmente el arte ya que muchas veces el éxito o el fracaso de un juego dependen de ello. Pero más lejos de la realidad la capacidad lúdica de un juego muchas veces también viene determinada por el diseño de la interfaz que hace de dialogo entre el jugador y el juego. Uno de los mejores análisis de las interfaces de usuario en videojuegos lo encontramos en los estudios realizados por Anthony Stonehouse y Marcus Andrews . El diseño de la interfaz de usuario en los juegos difiere de otro diseño de interfaz de usuario porque implica un elemento adicional: la ficción. La ficción involucra un avatar del usuario real, o jugador. El jugador se convierte en un elemento invisible, pero clave de la historia, como un narrador en una novela o película. Esta ficc

GitHub y Unity

Para el proyecto que estoy desarrollando voy a utilizar GitHub como repositorio de archivos y versiones. Aunque muchas veces uso el propio sistema de Unity, por el motivo que sea también vamos a utilizar un sistema general ampliamente utilizado por los desarrolladores de software. En primer lugar debemos tener una cuenta GitHub que nos podemos hacer gratuitamente. Una vez hecha vamos a utilizar un programa de gestión de versiones como es Sourcetree para gestionar el flujo de las versiones, ramas, etc. de nuestro juego. Una vez tenemos la cuenta de GitJub, si queremos utilizar SourcreTree necesitas una cuenta de Atlassian Bitbucket. Sin no disponemos de ella la podemos crear en el momento de la instalación o previamente a través de su página web. A partir de aquí solo tenemos que ejecutar Sourcetree y enlazar las cuentas. En el vídeo tenéis todo el proceso completo. Una vez tenemos en enlace hecho debemos enlazar con la cuenta de GitHub con la opción de Edit account

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. De hecho hay mucha literatura en internet para aprender a utilizar Git en todo tipo de entornos de programación. Así mismo para aquellos que empiezan seguramente lo primero que deberían aprender como hacer una copia de seguridad periódica de sus proyectos.. y ya habrá tiempo para, poco a poco aprender todo el potencial de una herramienta como esta. En su momento hice un tutorial para usar Git con una interfaz gráfica como SourceTree como punto de entrada al mundo de Git, pero en esta ocasión me gustaría explicar, paso a paso como utilizar GitHub para hacer copias de seguridad de tu proyecto en Unity. Para iniciar este proceso se deben hacer tres pasos: 1.- Crear una cuenta en GitHub En la pantalla principal de GitHub debemos crear una cuenta nueva (Sign up) y seguir el asistente para tener una cuenta gratuita con los parametros por defecto que nos