Instituto Cardan Logo
INSTITUTO CARDANDigital_Engineering

Implementación de IA en Runtime: NPCs, Generación Procedural y Behavior Trees

Protocolo de IA para NPCs. Programación de lógicas de decisión (Behavior Trees), navegación espacial (A* Pathfinding) y sistemas sensoriales simulados.

Implementación de IA en Runtime: NPCs, Generación Procedural y Behavior Trees
Facultad de Ingeniería Videojuegos

Facultad de Ingeniería Videojuegos

Protocol Authority | Cardan Institute

Publicado

2024-06-12

Lectura

9 min (Protocolo)

Definición de Protocolo: La IA de Videojuegos (Game AI) es la rama de la ingeniería de software dedicada a simular comportamientos inteligentes en entidades no jugables (NPCs) mediante algoritmos de búsqueda (A*), máquinas de estados y árboles de decisión.

Pathfinding: El Algoritmo A* (A-Star)

El algoritmo A* no explora a ciegas. Usa una heurística `f(n) = g(n) + h(n)` para adivinar cuál nodo es el más prometedor.

cppCopy
// Pseudocódigo del núcleo de A*
float Heuristic(Node a, Node b) {
    // Distancia Manhattan o Euclidiana
    return distance(a.position, b.position);
}

void FindPath(Node start, Node end) {
    OpenList.Add(start);
    
    while (!OpenList.IsEmpty()) {
        Node current = OpenList.GetLowestFScore();
        if (current == end) return ReconstructPath();
        
        foreach (neighbor in current.Neighbors) {
            float newG = current.g + distance(current, neighbor);
            if (newG < neighbor.g) {
                neighbor.g = newG;
                neighbor.f = newG + Heuristic(neighbor, end);
                neighbor.parent = current;
            }
        }
    }
}

Cerebros: FSM vs Behavior Trees

En los 90s usábamos Máquinas de Estados Finitos (FSM). Hoy, usamos Behavior Trees o GOAP.

ArquitecturaCómo funcionaProblemaUso Ideal
FSM (Finite State Machine)Estados rígidos (Idle, Run, Shoot).Se vuelve un espagueti imposible de mantener.Mario Bros, enemigos simples.
Behavior TreeNodos modulares (hojas y ramas).Requiere más diseño inicial.Halo, Uncharted, FPS modernos.
GOAP (Goal Oriented)La IA planea su propia secuencia.Muy costoso en CPU.F.E.A.R., Sims.

Sistemas Sensoriales

Una IA sorda y ciega es inútil. Simulamos sentidos con geometría:

  • Vista: Un cono (Producto Punto) + Raycast (para ver si hay paredes).
  • Oído: Una esfera de influencia. Si el jugador hace ruido dentro del radio `r` al cuadrado, la IA lo escucha.
  • Olfato: Rastros invisibles que se disipan con el tiempo (feromonas digitales).

IA Generativa (LLMs) en NPCs

Empresas como NVIDIA y Ubisoft están experimentando con integrar ChatGPT en NPCs (NVIDIA ACE). Esto permite conversaciones infinitas, pero presenta retos enormes de latencia y control (alucinaciones). Por ahora, sigue siendo experimental y no reemplaza a la IA de combate tradicional.

Consejo Profesional

Una IA perfecta es aburrida. La buena IA comete errores a propósito para darle oportunidad al jugador. Programar la 'estupidez artificial' es tan difícil como programar la inteligencia.

Conclusión

La Inteligencia Artificial en videojuegos es el pináculo de la programación lógica. Requiere un dominio total de estructuras de datos (árboles, grafos) y algoritmos de búsqueda. Es una de las especializaciones mejor pagadas de la industria.

FAQ

Q.¿Qué es el Pathfinding?

Es el problema de ir de A a B sorteando obstáculos móviles. El estándar industrial es A* (A-Star) o Dijkstra, algoritmos que exploran nodos en un NavMesh para encontrar la ruta más barata/corta.

Q.¿Qué es un Árbol de Comportamiento?

Es una estructura jerárquica de nodos. La raíz pregunta: '¿Estoy bajo ataque?'. Si sí, ejecuta la rama de combate. Si no, ejecuta la rama de patrulla. Es mucho más escalable que los viejos 'if/else'.

Q.¿Cómo 've' un personaje?

No ve píxeles. Usamos matemáticas: lanzamos rayos invisibles (Raycasts) desde sus ojos y verificamos si chocan con el jugador, y usamos el Producto Punto para saber si estás dentro de su ángulo de visión.