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
- Á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).
- Compuestos:
- Construidos sobre nodos jerárquicos evaluados de izquierda a derecha:
- 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)
- 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?
- Evalúa la visibilidad del objetivo usando 3 compuertas:
- 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
- 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.
- 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
- 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.
- 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.