Publicat per

Pec 5 – Samuel Sanjuan

Publicat per

Pec 5 – Samuel Sanjuan

Plataforma de subida He elegido la plataforma Itch.io porque ya tengo algunos proyectos publicados allí y me gustaría seguir ampliando mi portfolio…
Plataforma de subida He elegido la plataforma Itch.io porque ya tengo algunos proyectos publicados allí y me gustaría seguir…

Plataforma de subida

He elegido la plataforma Itch.io porque ya tengo algunos proyectos publicados allí y me gustaría seguir ampliando mi portfolio subiendo más trabajos en el futuro.

Link del juego:  ich io 

Link escrito: https://samknightgames.itch.io/fruit-fighter

1. Resumen del proyecto y conclusiones de todas las entregas.

El proyecto consistió en crear una maqueta jugable de un juego de peleas, recorriendo todos los procesos creativos involucrados en su desarrollo. A continuación, se describen las etapas clave y las conclusiones de cada una de ellas:

1.1 Bocetos y Modelado de los Robots

La primera etapa del proyecto fue diseñar y modelar ambos robots. Este paso fue uno de los más desafiantes debido a las limitaciones de tiempo, ya que era crucial crear modelos que definieran la identidad visual del proyecto. Durante esta fase, reflexioné sobre cómo atacarían y se defenderían los robots, incluso considerando las animaciones que cada uno realizaría.
Además, tuve el reto adicional de volver a familiarizarme con Blender después de varios años sin usarlo, pero retomarlo fue una experiencia gratificante.

1.2 Texturizado de los Modelos

En esta etapa, trabajamos en texturizar cada robot. Fue fundamental planificar cuidadosamente los cortes de las texturas para asegurarnos de que todas las partes encajaran y reflejaran la personalidad e intención original de cada diseño. Este proceso añadió una capa importante de detalle y coherencia visual al proyecto.

1.3 Rigging de los Robots

El rigging de los modelos se realizó manualmente, ya que las opciones automáticas, como Mixamo, solo funcionaron parcialmente. Aunque el rig automático ofrecía ideas interesantes, no se alineaba con la personalidad que quería transmitir en los robots. Por ello, opté por un rig manual, que me permitió mayor control y flexibilidad para adaptar cada esqueleto a la visión específica que quería transmitir.

1.4 Creación de Animaciones

Las animaciones se diseñaron teniendo en cuenta aspectos clave como la distancia de ataque de los robots, asegurando un combate equilibrado en esta etapa inicial. Este enfoque también deja margen para futuras iteraciones, donde se podrían incluir robots con diferentes rangos de ataque y movilidad para diversificar las mecánicas de juego.

1.5 Montaje en Unity

Finalmente, integramos todos los elementos en Unity. Esta fase incluyó:

Programación de Scripts: Desarrollo de un sistema de control para los robots y un sistema básico de daño.

Creación del Escenario: Diseño del entorno utilizando ProBuilder.

Interfaz y Estilo Final: Implementación de una pantalla inicial y la aplicación de postprocesado en la cámara para otorgarle un acabado más profesional.

Cada uno de estos apartados se desglosará más adelante para explicar los detalles de su implementación.

 

2. Visión de futuro para este proyecto. Imaginando que contáis con un equipo que puede llevarlo a cabo.

La actualización de contenido que añadiría al proyecto sería:

2.1 Customización de los robots

Una de las principales características a añadir sería un sistema de personalización para los robots. Este permitiría cambiar ciertas partes de su estructura, otorgando puntos de customización que modificarían las estadísticas y habilidades de los personajes, como por ejemplo, Cambiar un brazo por uno con mayor poder de ataque pero menor alcance o Sustituir las piernas por unas que aumenten la velocidad del robot a costa de reducir su capacidad defensiva.

Estas modificaciones no solo añadirían profundidad estratégica al juego, sino que también permitirían a los jugadores crear robots más personalizados, adaptándose a su estilo de combate preferido y haciendo que las batallas sean más variadas y dinámicas.

2.2 Nuevos escenarios

Otra mejora clave sería la incorporación de nuevos escenarios que introduzcan elementos interactivos para los jugadores. Inspirándome en juegos como Super Smash Bros, estos escenarios podrían incluir plataformas móviles, zonas destructibles…etc. La idea es agregar elementos que otorguen ventajas o desventajas dependiendo de cómo los jugadores los aprovechen.

Este enfoque haría que cada combate no solo dependiera de las habilidades y estrategias de los jugadores, sino también de su capacidad para adaptarse al entorno.

2.3 Plataformas posibles

El juego podría lanzarse en Steam y contar con la incorporación de un modo multijugador online. Esto permitiría implementar un sistema de ranking en el que la posición de los jugadores se actualice automáticamente en función de las victorias y derrotas obtenidas en las partidas. Aunque también podrían explorarse otras plataformas como la Switch.

 

3. Capturas de pantalla de vuestros Animator controllers y las explicaciones correspondientes de las decisiones tomadas.

3.1 Animator Controller y configuración de las animaciones.

Idle: Es la animación predeterminada que se reproduce cuando el robot no realiza ninguna acción. Permanece activa hasta que se detecta un cambio, como el inicio de un movimiento o una acción específica.

Walking: Se activa cuando se detecta movimiento. Además, se implementó un sistema de flip para que el personaje gire adecuadamente dependiendo de la dirección. La transición de la animación se controla mediante un bool.

Ataque y defensa: Estas animaciones pueden activarse desde cualquier estado, asegurando que el robot responda inmediatamente al input de ataque o defensa sin importar lo que esté haciendo. Durante estas acciones, el robot permanece inmóvil. Estas animaciones se activan mediante Triggers.

Muerte: Cuando el robot llega a 0 de vida, se activa la animación de muerte, el robot derrotado queda inmóvil. En este punto, aparece una pantalla de Game Over con opciones para volver al menú principal o reiniciar el combate. La animación se activa mediante un trigger.

3.2 Sistema de combate.

El feedback es fundamental para que el jugador sienta el impacto de sus acciones. Para ello, he implementado:

Indicadores Visuales: Color verde intermitente cuando un robot bloquea correctamente un ataque y otro de color rojo cuando recibe daño.

Sonidos Diferenciados: Cada robot tiene efectos de sonido específicos tanto para los golpes como para el daño recibido, lo que mejora la inmersión y facilita identificar las acciones durante el combate.

La interfaz de vida de cada jugador estará ubicada en las esquinas superiores de la pantalla. Se representará mediante una versión minimalista de los robots en 2D, cuyo diseño irá perdiendo partes gradualmente a medida que disminuya la vida del jugador.

Ajustes en el sistema de Ataque y defensa: Se realizaron mejoras para que la orientación de los robots sea relevante en el momento de defender. Esto garantiza que el bloqueo solo sea efectivo si el robot está correctamente orientado hacia el ataque enemigo.

 

3.3 Creación de escenario.

El escenario se diseñó utilizando ProBuilder y se texturizó siguiendo el mismo estilo visual que los robots para mantener la coherencia estética. La ambientación es una fábrica minimalista, que aporta un entorno atractivo y funcional para el combate.

Además, se añadieron partículas para dar mayor profundidad al escenario, mejorando la atmósfera.

El juego incluye dos pantallas principales. En la primera, se mostrará un botón central para iniciar el juego y, en la esquina inferior izquierda, un botón adicional que permitirá visualizar los controles de ambos jugadores. Además hay un tema para el menú y otro para dentro del juego que es una variación de este. También el botón tiene un sonido de cuando se va a los controles y otro cuando vuelve al menú principal.

3.4 Recursos utilizados.

Tanto la música, efectos de sonidos y gráficos han sido creados por mi, menos la tipografía usada en el proyecto.

Reflexión final

Quiero decir que me ha encantado el planteamiento de la asignatura y los resultados obtenidos a lo largo del curso. Además, he retomado el modelado y la texturización después de mucho tiempo sin practicar, lo cual me ha motivado a seguir trabajando en ello e incluirlo en futuros proyectos. También valoro muchísimo el feedback de cada entrega, ya que me ha ayudado a mejorar constantemente.

Debat2el Pec 5 – Samuel Sanjuan

    1. Samuel Sanjuan Caballero says:

      Gracias Jon! joe que digas eso es todo un alago, me encanta todo lo que hace Daniel es un crack y Inscryption me flipa, un saludete!!

Publicat per

Sense títol

Publicat per

Sense títol

Resumen del proyecto y explicación Juego en simmer.io En esta entrega he desarrollado un pequeño juego de peleas ambientado en un evento…
Resumen del proyecto y explicación Juego en simmer.io En esta entrega he desarrollado un pequeño juego de peleas ambientado…

Resumen del proyecto y explicación

Juego en simmer.io

En esta entrega he desarrollado un pequeño juego de peleas ambientado en un evento de wrestling. Para ello, el escenario se asemeja a un estadio lleno de personas donde los asistentes pueden ver a los luchadores tanto subidos al ring como en tiempo real en las pantallas del evento y desde diferentes ángulos.

Para el desarrollo, he empezado implementando un movimiento básico con el componente Character Controller, ya que para este tipo de juego (o por lo menos con mecánicas tan simples) no son necesarias las físicas. Una vez hecho esto, el siguiente paso fue organizar el Animator.

En el diagrama, creé un estado por cada una de las animaciones que hice en la entrega anterior. Siendo el estado base la animación “idle”, esta tiene transición tanto de entrada como de salida con el estado “walk”, ya que es manejado por un parámetro de tipo booleano que cambia de estado según si el personaje se está moviendo o no. El resto de animaciones, como son acciones instantáneas y que no se mantienen, están enlazadas con el estado “any state” de forma que en cualquier estado puede transicionar a “attack”, “kill” o “defend” al triggerear cualquiera de las variables correspondientes.

Esto lleva a un problema, ya que lo esperado es que pueda atacar o defenderse mientras está parado o andando, pero teniendo la transición en “any state” también puede hacerlo a mitad de ataque o defensa, cosa que no se quiere. Para solucionarlo y desde el código, se han implementado estados en los personajes de los que entra y sale al principio y fin de cada animación.

Para el manejo de los estados, se hizo uso de los eventos en las animaciones. Con una función ya preparada en el script del personaje que prepara la entrada y salida del estado PlayerState. De esta forma, antes de lanzar cualquier otra acción, se comprobará si el jugador no está ya en otra para no interrumpirla.

Con estos mismos eventos, pero con otra función, también se detecta la colisión del ataque de un jugador contra el otro, lanzando un evento que detecta la colisión en X frame de la animación.

Conclusiones de las entregas

Crear los assets para el juego y sus animaciones ha sido un proceso nuevo para mi que me ha hecho tener curiosidad y ganas de aprender nuevas técnicas y crear nuevos assets para los próximos proyectos que haga. Aunque por otro lado me ha costado entender trabajos como el rigging y el pintado de pesos y como estos repercuten en el modelo, otros aspectos como el modelado en sí y el despliegue y pintado de UVs ha sido bastante divertido, ya que podía plasmar directamente mis ideas. Y para esta última entrega, como ya tenía experiencia con Unity y en el desarrollo de proyectos, el proceso ha sido básicamente juntar lo viejo conocido con lo nuevo, creando algo con lo que estoy bastante satisfecho.

Visión de futuro

En el caso de encontrar un equipo de arte más extenso, que no consistiera en mi, y ayuda en el desarrollo, se podrían abarcar las siguiente mejoras:

  • Sistema de combos que no estuviera limitado a atacar y defenderse, consistiendo en combinaciones de ataques ligeros y pesados como pasa en otros juegos de peleas.
  • Modularización de los robots, creando previamente al combate una pantalla que dejase elegir de 3-4 partes básicas del robot (torso, brazo izquierdo y derecho y tipo de piernas) otorgando estadísticas en base a las partes elegidas y sus sinergias.
  • Nuevos escenarios en los que pelear
  • Mejor diseño sonoro, donde los sonidos tengan coherencia entre sí.
  • Creación de modo contra la IA y otro online, los cuales llevarían bastante tiempo.

Recursos utilizados

Assets

Interfaz:
https://www.kenney.nl/assets/ui-pack-sci-fi

Música y sonidos

Música juego:
https://freesound.org/people/levelclearer/sounds/346200/

Sonido de gente animando:
https://freesound.org/people/ken788/sounds/386762/

Sonido ataque:
https://freesound.org/people/Riley_Garinger/sounds/726620/

Sonido defensa:
https://freesound.org/people/kyles/sounds/452620/

Sonido fin de ronda
https://freesound.org/people/BennettFilmTeacher/sounds/523788/

Sonido movimiento robot derecha:
https://freesound.org/people/ChrisGrundlingh/sounds/765635/

Sonido movimiento robot izquierda
https://freesound.org/people/craigsmith/sounds/675727/

 

Debat0el Sense títol

No hi ha comentaris.