Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
2. ● Decidir es lo más llamativo de un NPC, casi
todo lo demás “se da por sentado”
Representación del conocimiento 2
Motivación
3. ● Para decidir bien no sólo hacen falta
“muchos datos”, sino conocer y ser sabio
○ Dato < Información < Conocimiento < ¡Sabiduría!
Representación del conocimiento 3
Motivación
“El dataísmo es una forma pornográfica de
conocimiento que anula el pensamiento”
- Byung-Chul Han
4. ● En realidad la mayoría de los juegos usan
sistemas de decisión muy simples
○ Tanto a nivel individual como en grupo, aunque se
aparente complejidad, apenas hay conocimiento ni
razonamiento
Representación del conocimiento 4
Motivación
“‘Humo y espejos’ no es un insulto, es la manera en
la que trabajamos” - Ian Millington
5. ● Cada algoritmo es diferente, pero en
esencia comparten un mismo modelo
Representación del conocimiento 5
Toma de decisiones
* Las estructuras internas son
específicas del algoritmo utilizado
6. ● Turing asocia por primera vez la “IA” con el
Ajedrez en un informe de 1946
○ Su sistema Turochamp era manual, se jugaba con
instrucciones escritas en un papel (= conocimiento)
Representación del conocimiento 6
Hitos históricos
7. ● Los Sims (2000) por su
parte, integran el
conocimiento en
el propio escenario
● Black and White (2001) analiza tus acciones
y según ellas construye IA a varios niveles
○ Produce comportamiento
emergente, aprendiendo
con el algoritmo ID3
(crea árboles de decisión)
Representación del conocimiento 7
Hitos históricos
8. ● El conocimiento se puede representar
computacionalmente a varios niveles
○ Representación atómica
■ Caja negra sin mostrar estructura interna
(Ej. Valores enumerados de estado como Herido)
○ Representación factorizada
■ Compuesta de una serie de factores
(Ej. Propiedades booleanas como Tóxico, o enteras como
Salud, Munición...)
○ Representación estructurada
■ Basada en objetos con factores y relaciones
con otros objetos (... a su vez estructurados)
(Ej. Componentes software como partes de la armadura)
Representación del conocimiento 8
Nivel de representación
Herido
Salud: 8
Avatar
Pie
Brazo
Arma Brazalete
Tóxico: true
9. ● El conocimiento también
puede estar implícito en forma de código
○ A mediados de los 90 casi todos los juegos se
programaban ad hoc (con guiones)
○ Son casi funciones auxiliares que “dirigen” a la IA
Representación del conocimiento 9
Guionización
SCRIPTING
SCRIPTS
Lenguaje de guionización Comentario
Lua Se volvió un estándar de facto en los 2000
Scheme Notación fea (LISP)
Python Sintaxis buena para novatos
Java Compilado y difícil de integrar
Javascript Común en la web
Blueprints Visual e integrado en Unreal Engine
Visual Scripting Visual e integrado en Unity
10. ● Técnica sencilla, rápida y fácil de
comprender e implementar
○ Recibe todo el conocimiento del agente
■ A menudo, sólo se consulta el estado del mundo
○ Es un árbol con nodos de decisiones y de acciones
○ Se parte del nodo raíz, se toman decisiones simples
según los conocimientos hasta proponer 1 acción
de entre las posibles acciones a realizar
Representación del conocimiento 10
Árbol de decisión
Ej. Booleano Ej. Enumeración Ej. Valor numérico Ej. Vector 3D
Si es cierto Si está en cierto conjunto
de valores
Si está en cierto rango de
valores
Si su longitud está en
cierto rango
DECISION TREE
11. ● Lo más básico es decidir con if-then-else, y
esto es un recurso para representar en fichero
dichas sentencias condicionales anidadas
○ Los árboles binarios son
los más eficaces
○ Habrá que ver cómo se
representa el entorno
y si se puede percibir
directamente
o mediante un único
Interfaz con el Mundo
Representación del conocimiento 11
Árbol de decisión
* Siempre mejor, para depurar fallos
12. ● Su complejidad es muy baja
○ Aún así, mejor usar árboles equilibrados (misma
profundidad en las ramas), postergar y hasta
cortocircuitar las decisiones más costosas
○ Ej. Operaciones AND y OR
Representación del conocimiento 12
Árbol de decisión
13. ● Puede ser interfaz o clase abstracta
● Los nodos pueden ser decisiones o acciones
Representación del conocimiento 13
Pseudocódigo
* Devuelve el nodo hijo (directo)
* Devuelve la acción
del final (hoja)
14. ● Las decisiones se van especializando
○ Ej. Para valores numéricos (reales)
Representación del conocimiento 14
Pseudocódigo
15. ● El método para tomar la decisión se suele
implementar recursivamente
○ Se empieza llamando, por lo tanto, al nodo raíz
Representación del conocimiento 15
Pseudocódigo
Espacio < O(n)
donde n son los nodos de decisión
Tiempo = O(log2
n)
si el árbol está equilibrado y todos
los tests de decisión tienen un
coste computacional constante
16. ● Implementar un árbol de decisión con
múltiples ramas también es fácil
Representación del conocimiento 16
Pseudocódigo
17. ● Se pueden añadir conectores
lógicos e incluso mezclar
ramas y convertirlos en
grafos dirigidos (¡acíclicos!)
● Pueden añadirse nodos
aleatorios o probabilistas
○ Con memoria para no cambiar mucho de decisión...
pero con caducidad (timers), para no atascarse
● Incluso es posible usar aprendizaje máquina
(ID3) para crear o ampliar el árbol
Representación del conocimiento 17
Más allá del árbol
18. ● ¿Cómo son las ramas del árbol equilibrado?
A. Número de decisiones simples ni alto ni bajo
B. Nodos de acción a la misma profundidad
C. Nodos de decisión a la misma distancia
D. Número de decisiones lo más bajo posible
● Desarrolla tu respuesta (en texto libre)
Representación del conocimiento 18
Participación
19. ● Millington, I.: Artificial Intelligence for
Games. CRC Press, 3rd Edition (2019)
● Wexler, J.: Artificial Intelligence in Games:
A look at the smarts behind Lionhead
Studio's "Black and White" and where it can
and will go in the future (2002)
Representación del conocimiento 19
Más información
20. * Excepto el contenido multimedia de terceros autores
Federico Peinado (2019-2023)
www.federicopeinado.es
Críticas, dudas, sugerencias...