59
Proyecto ABP 07-08 Alejandro Maldonado Fuentes Oscar Lamelas Damas David Ortiz Lapaz Jonathan Martínez Tenedor José Agustín Terol Sanchis

Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Proyecto ABP 07-08

Alejandro Maldonado Fuentes

Oscar Lamelas DamasDavid Ortiz Lapaz

Jonathan Martínez Tenedor

José Agustín Terol Sanchis

Page 2: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Indice

IntroducciónReferenciasCaracterísticasEstructuraComunicaciónGestión de entidadesMódulo de IAMotor Gráfico

Page 3: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

IntroducciOn

ShadowSteel es un juego RPG táctico que está siendo desarrollado por 5 estudiantes durante todo un curso, como parte del proyecto ABP.El objetivo no es crear el mejor juego nunca visto, sino aprender haciéndolo y comprender la metodología y elementos requeridos en la creación de software de entretenimiento.

Page 4: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

IntroducciOn

El proyecto aglutina contenidos de las asignaturas Juegos y realidad virtual, Razonamiento y Gráficos avanzados y animación. ShadowSteel integra un motor de IA, un motor gráfico 3D y un completo sistema de juego. El total de horas de trabajo supera las 2000 a repartir entre los distintos componentes del grupo.

Page 5: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Referencias

La inspiración para el estilo de juego viene de los llamados tactic-RPG, género híbrido entre los RPG clásicos y el género de la estrategia por turnos. Las referencias más claras son la serie Tactics de Final Fantasy, AdvancedWars o remontándonos más en el tiempo, Shining Force.

Page 6: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Referencias

Final Fantasy Tactics

Page 7: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Referencias

Shining Force

Page 8: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Referencias

Advanced Wars

Page 9: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Características

Sistema de juego híbrido combate-aventura.Sistema de reglas de juego propio.Personajes que evolucionan.Uso de conjuros, habilidades e items.Conversaciones con PNJs y comercio.Carga dinámica de datos (desde ficheros XML).Motor 3D independiente. Sistema de IA Modular.Comunicación por paso de mensajes.

Page 10: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Características

Gestión dinámica de los combates, los personajes actúan en un orden determinado por sus acciones.Comportamiento basado en reglas.Movimiento de entidades utilizando algoritmos de búsqueda de caminos (Pathfinding).Motor 3D sencillo pero versátil y potente (basado en OpenGL).

Page 11: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Estructura

Page 12: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Estructura

Juego Completo = Gestor de entidades + Gestor de IA + Gestor gráfico (integrado con motor 3D).Estructura de programación orientada a objetos. El núcleo de juego coordina los demás módulos y se encarga de la gestión del tiempo, manejo de eventos y sistema de correo.

Page 13: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Estructura

Los módulos gráfico y de IA son genéricos en su funcionamiento.Para comunicarlos con el juego se utilizan clases que funcionan como interfaz entre la lógica del juego y el funcionamiento general del módulo. Un ejemplo de este funcionamiento es el motor gráfico, que tiene parte general e interfaz específica con el juego.

Page 14: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Estructura

También se utiliza una clase que contiene las reglas del juego (fórmulas, niveles de experiencia, lógica de combate).Esta clase es independiente y se puede modificar su comportamiento de forma rápida y sencilla.Todos los datos del juego se leen mediante una clase que hace las labores de parseador XML. Esto permite modificar el juego sin tener que compilar el código.

Page 15: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

ComunicaciOn

Núcleo formado por un sistema de buzones de correo.Los distintos bloques ponen mensajes en los buzones para “hablar” entre ellos.Cuando le toca el turno, cada bloque revisa los mensajes que tiene en su buzón y actúa en consecuencia. Funciona de forma síncrona(procesamiento de mensajes en bucle principal) y asíncrona (gestión de eventos de teclado).

Page 16: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

ComunicaciOn

Es necesario establecer un protocolo de comunicación entre los distintos módulos.Este protocolo indicará al módulo que hacer en el momento que le llegue un determinado formato de mensaje.En nuestro caso, el formato del mensaje contiene 3 campos cadena de texto y 6 campos numéricos.

Page 17: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

ComunicaciOn

La respuesta de los distintos módulos difiere dependiendo del contenido de los campos del mensaje.Con el mismo tipo de mensajes comunicamos varios módulos en ambos sentidos.Cada módulo procesa sus mensajes y actúa, además de generar otros mensajes de respuesta.

Page 18: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

ComunicaciOn

Resulta fundamental para el funcionamiento del juego.Se basa en que todos los módulos conocen el protocolo. Se apoya en interfaces claras y conocidas por los otros módulos.Los mensajes de un módulo pueden destinarse a ese mismo módulo, para retrasar operaciones, por ejemplo.

Page 19: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

GestiOn de entidades

Aunque la estructura del juego es POO, la lógica la lleva el gestor de entidades. Las clases son meros contenedores y definición de estructuras de datos (apenas contienen lógica).La gestión de entidades es la lógica de cómo interaccionan los diversos elementos entre ellos.

Page 20: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

GestiOn de entidades

El módulo de gestión dispone de un buzón de correo propio, y se encarga de comunicarse tanto con la IA como con el motor gráficoEs el núcleo del juego, donde se define el comportamiento del resto de elemento. Utiliza la librería de reglas para ofrecer respuestas a la interacción del usuario.

Page 21: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

GestiOn de entidades

Almacena dos tipos de información: estática y dinámica.

La información estática se puede entender como un catálogo del que obtener elementos en cualquier momento. Se lee desde los ficheros XML y se almacena en memoria al iniciar la aplicación.La información dinámica se compone de las distintas instancias de los objetos del catálogo que están en juego en un momento dado. El conjunto de la información dinámica constituye el estado del juego.

Cuando se necesita una instancia de un determinado elemento, se pide al catálogo, que devuelve los datos correspondientes.

Page 22: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

GestiOn de entidades

Se trabaja con los datos dinámicos únicamente. Ejemplos de estos datos pueden ser los diferentes mapas, un personaje, un PNJ o un enemigo. Sólo un subconjunto de elementos del catálogo estático se utiliza en cada momento.

Page 23: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

GestiOn de entidades

Esta visión se utiliza también para reflejar el comportamiento de las entidades en los módulos del motor gráfico y de IA.En todo momento se mantiene una coherencia de objetos dinámicos en los tres módulos.Además, la IA asigna agentes a aquellas entidades que lo requieren, basándose en aquellas entidades que están actualmente en uso.

Page 24: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

GestiOn de entidades

El módulo encargado de la gestión de entidades es el encargado de procesar los mensajes y decidir que hacer. El resultado de este proceso puede ser enviar un mensaje a la IA, modificar datos de una entidad o dibujar un personaje en pantalla.El juego se apoya en el funcionamiento del gestor de entidades para transformar las decisiones del jugador en cambios sobre las entidades.

Page 25: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Gestor de entidades

Una posible secuencia de interacción entre el jugador, el juego y el gestor de entidades podría ser:

El jugador quiere atacar a un enemigo.El juego envía un mensaje de ataque.El gestor de entidades lo procesa y llama al código correspondiente para el ataque.Se realiza el ataque, se evalúa su resultado.Se genera un valor de daño, que se resta del enemigo.Adicionalmente, se notifica al motor gráfico, con un mensaje, para que represente la acción.La IA utilizará el nuevo valor de vida del enemigo para futuras decisiones, basándose en reglas, cuando tenga que hacerlo.Se emite un sonido.Finaliza el ataque.

Page 26: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

MOdulo de IA

La inteligencia artificial intenta que las entidades manejadas por el computador estén dotadas de un comportamiento más humano.En Shadow Steel se utilizan varias técnicas de IA para lograr este propósito.

Page 27: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

MOdulo de IA: LOgica Fuzzy

La lógica fuzzy o lógica difusa, es utilizada para que los personajes manejados por el computador tomen decisiones.Esta basada en sistemas de reglas, pero resuelve uno de los mayores problemas de los sistemas de reglas tradicionales.

Page 28: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Módulo de IA: LOgica Fuzzy

IF Target_Medium AND Ammo_Loads THEN VeryDesirable

Page 29: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

MOdulo de IA: LOgica Fuzzy

Reglas para la selección del lanzamisiles:Rule 1. IF Target_Far AND Ammo_Loads THEN DesirableRule 2. IF Target_Far AND Ammo_Okay THEN UndesirableRule 3. IF Target_Far AND Ammo_Low THEN UndesirableRule 4. IF Target_Medium AND Ammo_Loads THEN VeryDesirableRule 5. IF Target_Medium AND Ammo_Okay THEN VeryDesirableRule 6. IF Target_Medium AND Ammo_Low THEN DesirableRule 7. IF Target_Close AND Ammo_Loads THEN UndesirableRule 8. IF Target_Close AND Ammo_Okay THEN UndesirableRule 9. IF Target_Close AND Ammo_Low THEN Undesirable

Page 30: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

MOdulo de IA: LOgica Fuzzy

87,5

50

12,5

Representative Value

0,67Very Desirable

0,2Desirable

0,33Undesirable

ConfidenceConsequent

Page 31: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

MOdulo de IA: LOgica Fuzzy

En Shadow Steel existe un fichero de reglas para cada arma, sortilegio, o habilidad.Para determinar que acción realiza un PNJ, se realizan estos cálculos para los sistemas de reglas de todas las armas, sortilegios o habilidades que pueda utilizar ese personaje.Finalmente, el PNJ realizará la acción con mayor coeficiente de deseabilidad.

Page 32: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

MOdulo de IA: Pathfinding

Un módulo de pathfinding es utilizado para calcular el camino más rápido para llegar desde un sitio a otro.En ShadowSteel el combate se libra sobre una cuadrícula por la que los personajes involucrados en el mismo se mueven.El objetivo de incluir un módulo de pathfinding en nuestro proyecto es conseguir que durante los combates los personajes se muevan de una casilla a otra utilizando el camino menos costoso de cruzar para ellos.

Page 33: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

MOdulo de IA: Pathfinding

Algoritmo A*Lista abierta y lista cerradaFunción G: coste del camino recorrido hasta el momento.Función H: coste estimado hasta la casilla destino.Función F: G + H

Page 34: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

MOdulo de IA: Pathfinding

Inicialmente se inserta en la lista abierta la casilla inicial.Selección de la mejor casilla (F más baja) y expansión de las casillas adyacentes que no se encuentren la lista cerrada.La casilla seleccionada se saca de la lista abierta y se mete enla lista cerrada.Repetir desde el segundo punto hasta que se encuentre la casilla destino.

Page 35: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

MOdulo de IA: Pathfinding

Al añadir en la lista abierta, si la casilla que añadimos ya se encuentra en esta lista, debemos actualizar sus valores F,G y H, y su padre; si por este camino el coste es menor.

Page 36: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Módulo de IA: Pathfinding

Una vez alcanzado la casilla destino, para determinar el mejor camino, se recorre desde esta casilla hacia atrás, utilizando el puntero al padre de cada casilla, hasta que alcanzas la casilla inicial.

Page 37: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

MOdulo de IA: Pathfinding

En Shadow Steel hemos incluido algunas cosas extra al pathfinding:

Distintos tipos de terreno. Cada casilla tiene asignado un entero que indica lo difícil que es cruzarla.Altura de las casillas. Moverse desde una casilla más baja a otra más alta incrementa el coste del movimiento, mientras que si se trata de una bajada, el coste será menor.

Estas dos cosas deben ser tenidas en cuenta por la función de coste G a la hora de calcular el coste del camino recorrido.

Page 38: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Modulo IA: MEF

Las Maquinas de Estado Finito son un mecanismo sencillo para dotar a agentes inteligentes de nuestro juego de la inteligencia necesaria para simular un comportamiento real con un bajo coste computacional.

Para el juego se ha implementado un interfaz simple para en dos simples pasos generar el esqueleto de las clases encargadas de tratar los aspectos de las MEF. Este interfaz nos genera los ficheros y clases con sus relaciones y métodos necesarios para su funcionamiento. Así pues para la definición de la interfaz especifica para el juego solamente hay que rellenar algunos métodos con la lógica propia del juego.

Page 39: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Modulo IA: MEF Generador Interfaz

En el primer paso habrá que indicar los Agentes Inteligentes que emplearan MEF:

Page 40: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Modulo IA: MEF Generador Interfaz

En el segundo paso, se le especifica los Estados que tendrácada agente y para finalizar se escogerá el directorio donde se va a generar el esqueleto del interfaz especifico.

Page 41: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Modulo IA: MEF

Las MEFs están compuestas por 4 elementos principales:

Estados que definen el comportamiento y pueden producir acciones Transiciones de estado que son movimientos de un estado a otro Reglas o condiciones que deben cumplirse para permitir un cambio de estado Eventos de entrada que son externos o generados internamente, que permiten el lanzamiento de las reglas y permiten las transiciones

Page 42: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Modulo IA: Ejemplo MEF

Un ejemplo de MEF simple empleada en ShadowSteel es para el enemigo “rata de campo”tendría la siguiente forma:

Atacar Apoyar

Page 43: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Modulo IA: Ejemplo MEF

En este simple ejemplo Vemos 2 estados (“Atacar” y “Apoyar”), “Atacar” es el estado inicial de la rata al que entra por defecto y su comportamiento es atacar al enemigo mas cercano.“Apoyar” es un estado en el que puede entrar una rata si recibe un mensaje de otro agente solicitando ayuda. En este estado la rata cambiaria de objetivo y atacará a aquellos PJs que estan atacando al agente que solicito ayuda.Dicha solicitud de ayuda se hace en función a los valores devueltos por una serie de reglas del modulo de Lógica Difusa.

Page 44: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Modulo IA: MEF en SS

Las MEF en ShadoSteel las empleamos para controlar todo agente inteligente del juego, que tenga que actuar por si solo.

Basicamente en nuestro caso, por ser un estilo RPG, se emplean para controlar a los enemigos en combate, así como para el comportamiento de los NPC durante el juego, ya que, estos por ejemplo pueden decidir por su cuenta abandonar el puesto de venta y darse un paseo.

Page 45: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Conclusión Modulo IA

Se ha tratado de hacer un motor de IA modular, dividido en 3 Módulos independientes.

Así pues ,la inclusión de cualquier otro módulo como por ejemplo “redes neuronales”, “Redes bayesianas”… o cualquier otro algoritmo de IA no supondría mucho esfuerzo.

Otro objetivo era que el motor fuera reutilizable para cualquier otra aplicación, independientemente de que fuera un videojuego o cualquier otro tipo.

Page 46: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Motor GrAfico

Actualmente gran porcentaje de juegos del mercado usan gráficos 3D.OpenGL es robusto y potente, pero complejo.En aplicaciones con gran complejidad en las escenas que debemos renderizar, es demasiado engorroso programarlas directamente con rutinas gráficas de bajo nivel.

Page 47: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Troll 3D

Troll 3D es un motor gráfico basado en OpenGL.Permite crear escenas relativamente complejas con métodos simples.Proporciona facilidades para la generación de animaciones.Es un motor de propósito general, por tanto puede ser empleado por cualquier aplicación.

Page 48: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Troll 3D

La concepción del motor, bajo el paradigma orientado a objetos y con gran modularidad permite ampliar sus funcionalidades de forma sencilla.Integrarlo en cualquier aplicación es sencillo. Tan sólo requiere enlazar con una librería.Es multiplataforma y está programado en C++.

Page 49: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Troll 3D

Troll 3D es básicamente una capa de abstracción por encima de OpenGL.Se parte de otros motores más complejos como Ogre 3D.La representación de escenas se basa en la construcción de una estructura conocida como Árbol de Geometrías y Transformaciones (AGT).

Page 50: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Troll 3D - Elementos

El AGT es una estructura en forma de árbol no balanceado compuesta por los siguientes elementos:

EscenaNodos de TransformacionesNodos Terminales:

Nodos CámaraNodos EntidadNodos Luz

Page 51: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Troll 3D - Terminales

Terminales:Las cámaras permiten visualizar la escena. Sólo estará una activa a la vez.Las entidades representan cuerpos geométricos con material y textura.Las luces permiten que la escena pueda verse con distintos grados de iluminación

Page 52: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Troll 3D – Nodos Transf.

Los Nodos de Transformación permiten trasladar, rotar y escalar los distintos elementos de la escena.Permiten constituir la escena.Propagan sus transformaciones a sus hijos.

Page 53: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Troll 3D - Escena

La escena es la directora de la representación 3D. Permite controlar la renderizacióndotándola de orden.Almacena los parámetros generales de representación (color de fondo, geometría general, etc.).Es la interfaz desde la que construimos toda la representación 3D.

Page 54: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Troll 3D - Ejemplo

Escena

C 1

T 1

E 1 E 3

E 4

T 3T 2

T 2.1T 2.2 L 1

E 2

Page 55: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Troll 3D - Animaciones

Se hace necesario un mecanismo que permita dotar de transformaciones dinámicas a la escena.Estas transformaciones son las animaciones.Las animaciones dirigen a los distintos nodos, aplicando transformaciones en función del tiempo.

Page 56: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Troll 3D - Animaciones

Aspecto actual en desarrollo.Actualmente Troll 3D sólo permite animaciones lineales y rotacionales aplicadas a nodos de transformación.Se espera dotar de animaciones senoidales, y otros tipos tanto a nodos transf. como a terminales.

Page 57: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Troll 3D – Shadow Steel

Troll 3D pese a ser general, ha sido creado con la idea de permitirnos dotar de vistosidad al juego.Actualmente nos encontramos en la implementación de la interfaz específica que permita usar Troll 3D.Posteriormente se mostrará una demo.

Page 58: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

Troll 3D - Resumen

Es un motor gráfico que proporciona una forma sencilla de generar escenas 3D.Requiere unos conocimientos muy bajos para su utilización.Abstrae al usuario de OpenGL.Altamente modular.Rápido.

Page 59: Alejandro Maldonado Fuentes Oscar Lamelas Damas Jonathan ... · los personajes actúan en un orden determinado por sus acciones. Comportamiento basado en reglas. Movimiento de entidades

FIN

Pegas, dudas, traumas …Gracias por vuestra atención.