Tactics RPG

  • Type: Personal Project
  • Link: Itchio
  • Tools: Unity
  • Tipo: Proyecto Personal
  • Link: Itchio
  • Herramientas: Unity

Tactics RPG is a 3D turn-based strategy game featuring different magical skills and strategic combat.
Inspired by games like "Final Fantasy Tactics Advance," this demo showcases some mechanics that define the tactics genre.
Having always been a fan of tactical RPGs, I wanted to at least implement the fundamental aspects of tactical combat.

Tactics RPG es un juego de estrategia por turnos en 3D que presenta diferentes habilidades mágicas y combate estratégico.
Inspirado en juegos como "Final Fantasy Tactics Advance," esta demo muestra algunas de las mecánicas que definen el género de tácticas.
Siempre he sido un fan de los RPG tácticos, y quería implementar al menos los aspectos fundamentales del combate de tácticas.

    Character Movement

  • A* Pathfinding for movement.
  • The game utilizes the A* pathfinding algorithm to calculate the shortest route between tiles and select the optimal path.
  • Characters dynamically rotate to align with the next tile, ensuring correct orientation during the movement across the path.

    Movimiento de Personajes

  • Pathfinding A* para el movimiento.
  • El juego utiliza el algoritmo de pathfinding A* para calcular la ruta más corta entre casillas y seleccionar el camino más óptimo.
  • Los personajes rotan dinámicamente para alinearse con la dirección de la siguiente casilla, asegurando la correcta orientación a lo largo del camino.

    Enemy AI

  • The enemy chooses which action to take based on a weighted scoring system.
  • The AI iterates through each possible movement tile and skill and updates the action score depending on some personalized values.
  • For the movement
    • Distance to Healing Objects: Prioritizes tiles closer to healing objects for characters with low health.
    • Distance to Enemies: Characters with low health avoid getting too close to enemies, while healthy ones may look for positions near enemies.
    • Distance to Allies: Characters prefer tiles close to allies to enable multiple attacks on a enemy in one turn.
  • For the skill
    • Damage Potential: Scores higher for skills with greater damage output.
    • Number of Targets: Skills affecting multiple targets are prioritized.
    • Kill Potential: Skills with the ability to finish off enemies are highly scored.
    • Healing: Evaluates healing skills based on health restored relative to the current health, also taking into account over-healing penalties.

    IA Enemiga

  • El enemigo elige qué acción tomar basándose en un sistema de puntuación ponderada.
  • La IA itera a través de cada posible casilla de movimiento y habilidad, actualizando la puntuación de la acción según valores personalizados.
  • Para el movimiento
    • Distancia a Objetos de Curación: Prioriza las casillas cercanas a objetos de curación para personajes con poca vida.
    • Distancia a Enemigos: Los personajes con poca vida evitan acercarse demasiado a los enemigos, mientras que los sanos puede que busquen posiciones cerca de los enemigos.
    • Distancia a Aliados: Los personajes prefieren casillas cerca de aliados para habilitar múltiples ataques a un enemigo en un solo turno.
  • Para la habilidad
    • Potencial de Daño: Mayor puntuación para habilidades con mayor capacidad de hacer daño.
    • Número de Objetivos: Se priorizan las habilidades que afectan a múltiples objetivos.
    • Potencial de Eliminación: Se puntúan más alto las habilidades con la capacidad de eliminar enemigos.
    • Curación: Se evalúan habilidades de curación según la vida restaurada en relación con la vida actual, teniendo en cuenta las penalizaciones por sobrecuración.

    Skills

  • A* Pathfinding to search for possible positions to use skills.
  • Each skill is associated with various particle effects and a character animation.
  • Managed with ScriptableObjects, allowing comfortable value manipulation and easy assignment to different characters.

    Habilidades

  • Pathfinding A* para buscar posibles casillas para usar habilidades.
  • Cada habilidad está asociada con varios efectos de partículas y una animación del personaje.
  • Gestionado con ScriptableObjects, permitiendo manipular valores con comodidad y una fácil asignación a diferentes personajes.

    Skill Patterns

  • Used text files to define and manage various skill shapes and patterns, allowing for easy customization and scalability.
  • This approach allows for a wide range of skill patterns, from linear attacks to area-of-effect spells.
  • Allows quick iterations to test new skills without having to modify the code.

    Patrones de Habilidades

  • Se utilizan archivos de texto para definir y gestionar varias formas y patrones de habilidades, permitiendo una fácil personalización y escalabilidad.
  • Este enfoque permite una amplia gama de patrones de habilidades, desde ataques lineales hasta hechizos de área de efecto.
  • Permite iteraciones rápidas para probar nuevas habilidades sin tener que modificar el código.