Abstract.
Los árboles de comportamiento son la tecnología más utilizada
en videojuegos comerciales para programar el comportamiento de
los personajes no controlados por el jugador, aunando una gran expresividad,
con cierta facilidad de uso que permite la colaboración entre
programadores y diseñadores de videojuegos.
En este artículo describimos un nuevo tipo de nodos en los BTs que
representan consultas que devuelven sub-árboles en tiempo de ejecución
y explicamos cómo se pueden integrar en Behavior Bricks, un sistema
que hemos desarrollado para la creación y ejecución de BTs.
CoSECiVi'15 - Implementación de nodos consulta en árboles de comportamiento
1. II Congreso de la Sociedad Española para las Ciencias del Videojuego. (Barcelona)
II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015)
Ismael Sagredo Olivenza, Gonzalo Flórez Puga, Marco Antonio Gómez Martín,
Pedro A. González Calero.
Universidad Complutense de Madrid
Ismael Sagredo: isagredo@ucm.es
2. Diferentesrolesenlacreacióndecomportamientos.
Diseñadores.
Idean el comportamiento que deben tener los NPCs.
No tienen por qué tener conocimientos técnicos.
El comportamiento va cambiando durante el ciclo de vida del desarrollo para
hacer el juego divertido.
Programadores.
Implementan los comportamientos.
Intentar facilitar a los diseñadores que puedan cambiar comportamientos de
forma autónoma.
II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 1
Diseño
Inicial
Prototipo
Equilibrado
Evaluación
Ismael Sagredo: isagredo@ucm.es
3. Requiere de rapidez de ejecución.
Máquinas de estado finitos. (Finite State Machine
FSM)
Árboles de comportamiento. (Behavior Trees BTs)
Lenguajes de scripting como LUA, Python,
Javascript…
Sistemas de reglas…
¿Con cuál se siente cómodo el
diseñador?
Ismael Sagredo: isagredo@ucm.es
Modelosusados pararepresentarIA.
II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 2
4. BehaviorTrees(BT).
Estructura jerárquica implícita en su definición (reutilización).
BTs escalan mejor que las FSMs.
Fáciles para generar comportamientos guiados por metas. Estado de la
meta (Running, Success, Failure).
Permite a los diseñadores supervisar el trabajo de los programadores.
Ismael Sagredo: isagredo@ucm.es
Priority
LanzarMartillo
Repeat
Seguir Ruta
Koopa Troopa:
Hammer Bross
Player
A Tiro
Player
Visto
Perseguir
II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 3
5. Diseñadores se involucren en la
creación de comportamientos.
Programadores y deseñadores cooperan para
llevar a cabo los comportamientos.
Ismael Sagredo: isagredo@ucm.es
II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 4
7. Diseñadores se involucren en la
creación de comportamientos.
Programadores y deseñadores cooperan para
llevar a cabo los comportamientos.
Mayor autonomía al diseñador
Minimizar errores
Mayor productividad.
Ismael Sagredo: isagredo@ucm.es
II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 4
8. Modelo,Editoresvisuales, Metodología detrabajo,
Asignaciónderesponsabilidades.
Editor visual que simplifique la complejidad
subyacente del modelo al diseñador: Behavior Bricks
Tres roles:
Diseñadores no técnicos.
Diseñadores técnicos.
Programadores.
Asignación de responsabilidades. Comportamientos
a alto y a bajo nivel y quienes son responsables de
crearlos.
Ismael Sagredo: isagredo@ucm.es
II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 5
9. Caracteristicas
Nexo de unión entre programadores y diseñadores.
Diseñadores (técnicos o no) crean comportamientos a alto nivel con le
editor.
Programadores y Diseñadores técnicos crean comportamientos a bajo
nivel con el editor.
Programadores crean primitivas básicas:
Acciones: Modifican el mundo.
Condiciones: Que chequean el mundo.
Crear comportamientos complejos reutilizables.
Parametrización de los comportamientos, los hace más generales.
Permite gestionar colecciones de comportamientos.
Ismael Sagredo: isagredo@ucm.es
II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 6
10. Pizarra,variablesdeentorno.
Los comportamientos tiene parámetros de
entrada y variables internas (pizarra) que
representan el entorno de ese comportamiento.
Las tareas y otros comportamientos lee y escribe
de esas variables de entorno para realizar sus
tareas.
Ismael Sagredo: isagredo@ucm.es
II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 7
11. Muchaexperienciaconlosárbolesdecomportamiento.
Solución: Simplificar la generación de
comportamientos.
¿Cómo puede el diseñador describir como
quiere que se comporte el NPC?
Ejemplificando las acciones al NPC.
El NPC se moverá en base a acciones previamente
aprendidas.
II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 8
Ismael Sagredo: isagredo@ucm.es
12. Extensión de los BTs.
Nodo terminal especial que ejecuta un
subcomportamiento.
¿Qué comportamientos? Un de los multiples
comportamientos que implementan la tarea
primitiva especificada.
¿Cuál de ellos elijo? Aquel que en el pasado fue
ejecutado con éxito en una situación similar.
II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 9
Ismael Sagredo: isagredo@ucm.es
13. II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 9
Ismael Sagredo: isagredo@ucm.es
Priority
ATACAR??
Repeat
Seguir Ruta
Player
A Tiro
Player
Visto
Perseguir
Melee : Atacar Distancia : Atacar AtacarYHuir :
Atacar
Enemigo
14. II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 9
Ismael Sagredo: isagredo@ucm.es
ATACAR??
Melee : Atacar
Distancia : AtacarAtacarYHuir :
Atacar
Enemigo
Base de
Casos
Melee :
Atacar
Distancia :
Atacar
Implementaciones
Viables =>
Prerequisitos()
Distancia :
Atacar
Entorno
- Distancia : #DistanciaTarget
- Jugador: #Target
- Vida: #Vida
15. Cómogeneroelconocimiento.
Hay varias formas:
El diseñador decide cuál es la acción que debe ejecutar
en base al contexto actual. (el juego se para esperando
la decisión…)
Se proporcionan ejemplos por datos de cuando tiene
que hacer cierta acción.
El NPC aprende directamente realizando acciones
aleatorias. Exploración vs Explotación.
Los datos que describen el contexto deben ser
seleccionados de entre los parámetros de la pizarra
por el diseñador.
II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 10
Ismael Sagredo: isagredo@ucm.es
16. Cómodeterminarsiunejemploessimilaramiestado
actual.Cómosabersielcomportamiento escompatible.
Múltiples medidas de similitud en la literatura.
Debemos escoger cual es la que mejor funciona para nuestro
caso. (Queda trabajo por hacer).
¿Distancia euclidea como ponderamos los pesos de cada uno de
los atributos?
Pueden existir comportamientos que no sean compatibles
con el NPC.
Por ejemplo: Que acceda a comportamientos que no dispone.
Todas las tareas deben chequear unos prerrequisitos que les
permite ser ejecutadas.
Los comportamientos serán compatibles si sus tareas primitivas lo
son.
II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 11
Ismael Sagredo: isagredo@ucm.es
17. Cadacomportamiento puedehaberdefinido los
nombresdelosatributosdesupizarradediferente
forma.
Los atributos deben tener una etiqueta semántica
que los identifique más allá de su nombre para
poder seleccionar diferentes comportamientos.
Pueden existir semánticas similares. Habría que
estudiar el uso de un tesauro en vez de una simple
lista de tags semánticos.
Ventajas: mucho más expresivo.
Incovenientes: hay que mantener dicho tesauro.
II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 12
Ismael Sagredo: isagredo@ucm.es
18. Ismael Sagredo: isagredo@ucm.es
II Congreso de la Sociedad Española para las Ciencias del Videojuego (CoSECiVi 2015) Pag 13
Cerrar la implementación.
Hacer que el entrenamiento no sea tedioso
para el diseñador.
Experimentar con las mejores medidas de
similitud.
Sugerencias de simplificación de los atributos
que el diseñador seleccione como relevantes
=> ayudar al diseñador.