Communitygithub.com

poorvith-mp/skills-gamedev

26 habilidades de agente para desarrollo de juegos: Unity, Unreal Engine 5, modelado en Blender, shaders y pipelines de audio.

¿Qué es skills-gamedev?

Este skill, parte del conjunto gamedev, proporciona una arquitectura completa para diseñar inteligencia artificial de enemigos en videojuegos, centrada en la diversión y el ritmo narrativo en lugar de en la precisión académica. El sistema se estructura en cuatro pasos: árboles de comportamiento y máquinas de estado para la toma de decisiones, sistemas de percepción sensorial (visión y oído), navegación por mallas de navegación con evasión de obstáculos y un énfasis crítico en el telegraphing (señalización) de intenciones para crear la ilusión de competencia. Incluye un formato de especificación detallado en `ENEMY-AI-SPEC.md` que abarca parámetros de percepción, jerarquía de árbol de comportamiento, barking de audio y un ejemplo práctico de corrección de un francotirador percibido como injusto. El skill es independiente de la plataforma (aplicable a Unity, Unreal, etc.) y ofrece una lista de verificación y anti-patrones para garantizar una implementación pulida y justa para el jugador.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add poorvith-mp/skills-gamedev

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

game-ai

Filosofía Central

La Inteligencia Artificial (IA) de juegos no es el aprendizaje automático académico que intenta predecir el futuro o vencer a grandes maestros del ajedrez. La IA de juegos es una ilusión de entretenimiento y ritmo. Un PNJ que juega con precisión sobrehumana, puntería perfecta y cero dudas es frustrante y nada divertido contra el que jugar. La IA de juegos debe proporcionar señales claras, toma de decisiones tácticas legibles, percepción sensorial creíble y calibración de dificultad dinámica que le dé al jugador la emocionante sensación de haber superado en inteligencia a un oponente competente.


Arquitectura de IA de Juegos en 4 Pasos

Paso 1: Arquitecturas de Toma de Decisiones: Árboles de Comportamiento vs. FSMs

  1. Árboles de Comportamiento (El Estándar de la Industria para IA de Combate):
    • Construidos sobre nodos jerárquicos evaluados de izquierda a derecha:
      • Compuestos:
        • Secuencia ($ o$): Ejecuta hijos secuencialmente; falla si algún hijo falla (ej. Tiene Arma $ o$ Recargar $ o$ Apuntar).
        • Selector ($?$): Ejecuta hijos hasta que uno tenga éxito (ej. Huir si Salud Baja $?$ Ataque Cuerpo a Cuerpo $?$ Buscar Cobertura).
      • Decoradores: Puertas condicionales (ej. Invertir, Límite de Tiempo, Enfriamiento).
      • Hojas / Tareas: Acciones ejecutables concretas (ej. MoveToPosition, PlayAnimation).
  2. Máquinas de Estado Finitas (FSMs):
    • Mejor para criaturas ambientales simples o jefes discretos (Estados: Patrulla, Investigar, Perseguir, Atacar, Huir).

Paso 2: Sistemas de Percepción Sensorial (Vista y Sonido)

  1. Conos de Visión (Percepción Visual):
    • Evalúa la visibilidad del objetivo usando 3 compuertas:
      • Verificación de Distancia: ¿Está el jugador dentro del radio de visión ($D \le R_{\text{max}}$)?
      • Ángulo del Campo de Visión: ¿El producto punto del vector de avance del enemigo y la dirección hacia el jugador es $\ge \cos(\theta / 2)$?
      • Línea de Visión (Raycast): ¿Un raycast de física desde los ojos del enemigo al torso del jugador golpea la geometría del mundo o al jugador?
  2. Percepción Acústica (Oído):
    • Propaga eventos de sonido a través del mundo del juego (ej. Disparo = radio de 40 m; Pasos = radio de 8 m).
    • Los PNJ alertados transicionan a un estado de Investigar dirigido hacia el origen del sonido.

Paso 3: Pathfinding con NavMesh y Flanqueo Táctico

  1. Pathfinding A en Mallas de Navegación*:
    • Los PNJ consultan NavMeshes precocinados para el recorrido de rutas.
    • Obstáculos de Velocidad Recíprocos (RVO / ORCA): Implementar evasión de colisiones local para que grupos de 5 enemigos no marchen en una sola fila idéntica ni bloqueen las entradas de las puertas.
  2. Búsqueda de Cobertura Táctica y Flanqueo:
    • Consultar Sistemas de Consulta Ambiental (EQS): Muestrear puntos candidatos alrededor del jugador, puntuar puntos según el ángulo de la geometría de cobertura, la distancia y la protección de la línea de visión.

Paso 4: Señalización y la Ilusión de Competencia

  1. Señalización de Intenciones:
    • Antes de ejecutar un ataque letal, los PNJ deben señalizar su intención a través de pistas de audio ("¡Flanqueando por la izquierda!", "¡Granada fuera!"), animaciones de preparación o líneas de mira láser.
  2. El "Efecto Stormtrooper" (Incompetencia Controlada):
    • El primer disparo a un jugador desprevenido debe fallar intencionalmente por 1 metro para alertar al jugador y crear adrenalina antes de infligir daño real.

Formato de Entrega: Especificación del Árbol de Comportamiento de IA Enemiga (ENEMY-AI-SPEC.md)

# Especificación del Árbol de Comportamiento de IA de Enemigo de Combate: [Arquetipo de PNJ]

## 1. Parámetros de Percepción
- **Distancia de Visión**: 25 metros (Día) / 14 metros (Noche)
- **Ángulo del Campo de Visión**: 110 grados
- **Radio de Audición**: Disparos = 50 m | Pasos Corriendo = 12 m | Paso Agachado = 0 m (Silencioso)
- **Buffer de Tiempo de Reacción**: 350 ms de retardo entre la adquisición del objetivo y el desencadenante del ataque

## 2. Jerarquía Maestra del Árbol de Comportamiento

Raíz (Selector) ├── [Decorador: Salud < 20%] -> Secuencia (Huida de Emergencia) │ ├── FindCoverAwayFromPlayer() │ ├── MoveToCover() │ └── PlayAnimation("Curarse") ├── [Decorador: CanSeePlayer == True] -> Selector (Rama de Combate) │ ├── [Decorador: InMeleeRange] -> Secuencia (Golpe Cuerpo a Cuerpo) │ │ ├── PlayAudioBark("¡Carga!") │ │ ├── TelegraphWindup(400ms) │ │ └── ExecuteMeleeDamage() │ └── Secuencia (Enfrentamiento a Distancia) │ ├── Selector (Tomar Cobertura o Flanquear) │ │ ├── [Decorador: InCover] -> AimAtPlayer() │ │ └── MoveToFlankPosition() │ └── FireBurst(3_rounds) └── Secuencia (Patrulla / Inactivo) ├── PickNextPatrolWaypoint() ├── MoveToWaypoint() └── WaitRandom(2s, 5s)


## 3. Ladridos de Audio y Retroalimentación al Jugador
- **Al Detectar al Jugador**: *"¡Contacto! ¡A las nueve en punto!"*
- **Al Lanzar Granada**: *"¡Fragmentación fuera! ¡A cubierto!"*

Ejemplo Práctico: Arreglando la IA de un Francotirador "Injusto"

  • Problema: Los probadores de juego odiaban a un enemigo francotirador porque mataba instantáneamente a los jugadores a través del mapa sin aviso.
  • Remediación: Se añadió una línea de mira láser roja visible que barría el suelo durante 2.0 segundos antes de disparar, acompañada de un zumbido de carga de audio distintivo.
  • Resultado: Las muertes de los jugadores se sintieron justas y evitables; los puntajes de satisfacción de los probadores saltaron del 32% al 88%.

Lista de Verificación de Validación

  • El sistema de percepción valida distancia, cono FOV y línea de visión por raycast físico.
  • El árbol de comportamiento prioriza los estados de supervivencia/huida antes que las acciones ofensivas.
  • Todos los ataques letales incluyen animaciones de señalización legibles o ladridos de audio.
  • Los agentes NavMesh implementan evasión local (RVO) para evitar el hacinamiento en las puertas.
  • Los tiempos de reacción del enemigo incluyen buffers de retardo realistas similares a los humanos (200–400 ms).

Anti-patrones

  • IA Omnisciente: Permitir que los enemigos conozcan las coordenadas del jugador a través de paredes sólidas sin verificaciones de percepción.
  • Giro de Cuadro Cero: Enemigos girando $180^\circ$ y disparando con 100% de precisión en un solo cuadro.
  • Los Lemmings en Fila India: Tener 8 enemigos marchando en línea recta a través de un solo pasillo para ser masacrados uno por uno.

Skills relacionados