Chronicles of the arcane kight
Chronicles of the arcane kight fue una Demo que sirvió a modo de TFG en mi ultimo año cursando DAM y que me sirvió tanto para conseguir un sobresaliente. Como para familiarizarme con los conceptos mas esenciales del desarrollo en conjunto y de como organizar un equipo
5/8/20247 min read
Programación y videojuegos
Sobre el proyecto
El proyecto oficialmente comienza en noviembre de 2023. Cuando nuestro instituto de DAM da luz verde a los alumnos para que comiencen sus proyectos
Como ya hemos establecido este proyecto es un TFG el cual fue desarrollado durante 5 meses y que fue muy bien recibido por la mesa de profesores a finales de Junio de 2024.
Considero este un proyecto clave dentro de mi trayectoria. Ya que, aunque no fue mi primera vez desarrollando en equipo, si que fue el primer proyecto donde me encontraba siendo el que mas experiencia previa tenia entre mis compañeros. También fue el primer proyecto donde tuve que afrontar problemas organizativos como: ideas contradictorias dentro del equipo, compañeros teniendo que dejar el proyecto, migraciones y reorganizaciones a medias del proyecto.
Sobre el juego en si
Este es un shooter de vista isométrica donde controlas a un personaje con varias armas. Cada arma no solo tiene distintos atributos si no que tienen algún efecto especifico en el jugador que te obliga a jugar de distintas maneras. El juego se centra principalmente en la exploración de entornos y en la variedad de escenarios mas que en la progresión del personaje en si mismo.
Demo
Para la demo de este proyecto conseguimos incorporar:
1 Nivel
3 Enemigos
2 Armas
1 Boss final
También conseguimos añadir las siguientes mecánicas
Movimiento completo
Caminar
Salto
Dash
Checkpoints
Sistema de oleadas
Inventario de objetos
Cambios dinamicos de camara
La demo completa se encuentra jugable en nuestra pagina de Itch.io
I had an excellent experience! The service was outstanding.
Happy client
Mis contribuciones
¿Cuales han sido mis aportaciones a este proyecto?
Mecanicas Y sistemas
Diseñar y programar tanto el movimiento como la mayoría de acciones y varios sistemas
UI
Una interfaz sencilla y reconocible junto a un menú de opciones variadas
Visual Tech
Shaders, Post procesado, iluminación.
¡¡Y Mas!!
Mecánicas, Sistemas
Y Mi Implicación
En este apartado voy a contarte sobre mis decisiones a la hora de incorporar las mecánicas pertenecientes al jugador. Al menos las que diseñe yo.
La razón por la que diseñe las mecánicas principales es porque el proyecto se baso en un prototipo que tenia ya bastante tiempo apartado en el fondo de mi repertorio de Unity.
Por supuesto no todas las ideas fueron mías pero el concepto base de un juego en el que "la acción cambie dependiendo de el arma que uses" si que fue un concepto que "puse en la mesa" y que finalmente fue el concepto principal de juego
Mecánicas y Sistemas:
Camara
Las bases tanto del código de la cámara y de como sigue al jugador son bases que construí yo.
Con un sencillo código de seguimiento y usando variables serializadas y ordenadas en Unity conseguí crear una herramienta sencilla donde cualquiera seria capaz de modificar el Offset o inclinación de la cámara sencillamente
Eventualmente le pase esta responsabilidad a uno de mis compañeros que buscaba implementar un sistema por el cual en diferentes zonas el juego pueda reorientarse a diferentes planos.
Esta decisión de mi compañero de iterar sobre mi código acabo siendo un éxito el cual se puede apreciar en las principales zonas del juegos.
Disparo
El movimiento se basa en 2 partes
Un sencillo WASD para poder moverse por el mapa
Un sprint
De estos dos sistemas me hice responsable de el movimiento base usando WASD.
El desarrollo de esta mecánica tuvo una gran complejidad de diseño, no necesariamente por la propia mecánica en sí, sino por el desarrollo del Sprint.
A falta de poco tiempo de terminar el desarrollo de esta demo, pudimos ver claramente que el desarrollo del sprint se estaba atascando y que no daba el dinamismo a las escenas de acción que buscábamos.
Para intentar balancear esto, busqué darle más dinamismo al movimiento base, aumentando la aceleración y la velocidad máxima para intentar tanto recompensar a los jugadores que se mantuvieran en movimiento como dándole la posibilidad a los jugadores más calmados de hacer pequeños ajustes en su posición sin necesariamente irse demasiado lejos.
Finalmente logramos encontrar un balance en el que ni el inicio era demasiado lento ni el movimiento máximo demasiado rápido. A demás recontextualizamos de esta manera el sprint dándole utilidad a la hora de dejarte moverte a velocidad máxima desde el momento que lo pulsas. No teniendo que esperar a la aceleración
La mecánica de disparo es una muy sencilla y que prácticamente no trajo ningún problema de desarrollo.
El funcionamiento es simple:
Dependiendo de que arma tengas seleccionada el juego tiene preparado un tipo de disparo distinto en forma de un prefab. Cuando se dispara se coloca el disparo en frente de el arma correspondiente y el arma entra en cooldown. La propia bala es la que contiene toda la información relevante a partir de aquí
La información de cada bala dando por hecho nombres modelos y hit-boxes es la siguiente:
Velocidad de viaje
Tiempo en pantalla
Daño
Usando cada una de estas estadísticas se puede simular cualquier tipo de arma
Ej:
La pistola básica realiza 1 de daño y tiene una velocidad de viaje mediana y un tiempo en pantalla mediano. Esto la hace un arma que sirve bien en corta y media distancia con un daño promedio. No destaca en ningún aspecto pero a excepción de intentar disparos en demasiada distancia es bastante confiable
La escopeta tiene un daño de 0.5 y una velocidad de viaje media con un tiempo en pantalla muy bajo. Si bien puede parecer que tiene un daño bajo, eso es solamente el daño por bala. Al disparar 5 balas simultáneamente la realidad es que dependiendo de la distancia y tu puntería el daño puede variar entre 0.5 y 4.5 de daño. La velocidad media y el tiempo en pantalla bajo se cambian perfectamente para solo dejarte realizar disparos a corta distancia
Movimeinto
Oleadas
Este sistema se creó con la intención de añadir una mayor variedad de gameplay al juego. Si bien solo la usamos en una sección, creo que esa sección realmente apoya al gameplay de cara a una presentación, que era nuestro objetivo en ese momento.
Este sistema nos dejó tener un espacio plano donde mostrar las capacidades del gameplay de forma aislada, dejándonos margen para hablar más sobre diseño en otras secciones con bien mapas más complejos. O de tecnologías de sonido y gráficas en secciones más calmadas.
El propio sistema es uno muy sencillo. El funcionamiento es el siguiente:
El sistema se basa en un array de arrays de objetos.
Cada oleada se colocan los objetos enemigos del array actual en una zona aleatoria del área designada, dando preferencia a las áreas mas cerca de los bordes.
Cuando todos los enemigos de un array han sido derrotados el sistema reconoce el fin de la oleada actual y pasa al siguiente array para dar inicio a la siguiente oleada.
Basándonos en este proceso iteramos constantemente hasta que nos quedamos sin siguiente oleada.
En este momento el sistema da fin a las oleadas y realiza el evento que se le halla dictado. En este caso abrir la puerta de salida
UI
En este proyecto fui el principal encargado de la mayoría de aspectos relacionados a gráficos. Esto incluye la UI la cual diseñe e implemente gracias a una gran cantidad de feedback de mis compañeros.
El diseño grafico no es mi pasión por lo que realizar esta tarea, una vez que los sistemas ya estaban implementados y las opciones interactuaban con el juego como deberían, fue un reto muy grande. Creo que finalmente aunque simple conseguí realizar algo reconocible y un cierto grado de personalidad propia
Menús
El menú principal de este juego se conforma de 4 partes:
Jugar: Te lleva a la demo
Créditos: Muestra una pantalla con los miembros del proyecto
Salir: Cierra el juego
Opciones: Abre el menú de opciones
Colores
Como color primario para los menús decidimos usar un tono azul oscuro.
Decidí este color ya que es el color principal del personaje. Al ser el color principal del personaje no existen assets en el entorno que tengan un color parecido a este y, por lo tanto, al abrir el menú y pausar la experiencia no existe ninguna duda sobre qué es parte de la interfaz y qué no.
Por supuesto, usamos más formas de darlo a saber, como el tono del gameplay comparado con los colores más claros de la interfaz o los márgenes en los menús.
Pero creo que cada decisión consciente de separar visualmente interfaz y gameplay que pudiéramos implementar era un buen añadido.
Una vez decidido ese color y viendo que estaría mas cerca de ser un tono oscuro decidí que las opciones de los menús se mantuvieran en un blanco con letras negras.
Creo que aunque debatiblemente aburrido crea la mayor claridad visual posible. Que era justo lo que buscábamos con este proyecto el cual se mostraría junto a paginas web y aplicaciones de móvil