t2: patrones y videojuegos 3. patrones y videojuegos

of 67/67
Introducción a la Programación de Videojuegos y Gráficos GRADO EN INGENIERÍA INFORMÁTICA CURSO 2012/2013

Post on 06-Jan-2017

289 views

Category:

Documents

6 download

Embed Size (px)

TRANSCRIPT

  • Introduccin a la Programacin de Videojuegos y Grficos

    GRADO EN INGENIERA INFORMTICA

    CURSO 2012/2013

  • T2: ARQUITECTURA Y LGICA DE VIDEOJUEGO

    2.1. Ingeniera del software aplicada a videojuegos

    (paradigmas y patrones)

    2.2. Modelos y Programa principal de un videojuego

    2.3. Motores lgicos. Arquitectura del motor

    2.4. Lenguajes de scripting

  • T2: ARQUITECTURA Y LGICA DE VIDEOJUEGO

    2.1. Ingeniera del software aplicada a videojuegos (paradigmas y

    patrones)

    1. Definicin y concepto de patrn de diseo

    2. Estructura y tipos de patrones

    3. Patrones y videojuegos

  • T2: Patrones y videojuegos

    1. Definicin y concepto de patrn de diseo

    El diseo y desarrollo de un programa informtico como un

    videojuego, es demasiado complejo para que pueda ser abordado por

    completo por una nica persona.

    El proceso de diseo de cualquier aplicacin sw suele ser iterativo y en

    diferentes etapas de forma que se vaya refinando con el tiempo

    (existen infinidad de modelos de desarrollo sw que pueden aplicarse)

    La etapa de diseo es una tarea crtica en el ciclo de vida del software

    (gran impacto sobre el producto final y el futuro del mismo

  • T2: Patrones y videojuegos

    1. Definicin y concepto de patrn de diseo

    La experiencia previa en el diseo de sistemas similares en til

    para crear buenos diseos, pero no suficiente.

    Al construir aplicaciones similares se presentan situaciones

    recurrentes y que se asemejan a situaciones pasadas.

    Un patrn de diseo almacena conocimiento experimental de

    diseo procedente del estudio de aplicaciones y de los xitos y

    fracasos de casos reales

  • T2: Patrones y videojuegos

    1. Definicin y concepto de patrn de diseo

    Un patrn de diseo es una descripcin de la comunicacin

    entre objetos y clases personalizadas para solucionar un

    problema genrico de diseo bajo un contexto determinado

    Design Patterns. Elements of Reusable Object-Oriented Software

    Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (GoF-

    Gang of Four), 2008

  • T2: Patrones y videojuegos

    1. Definicin y concepto de patrn de diseo

    Los patrones de diseo son la base para la bsqueda de soluciones

    a problemas comunes en el desarrollo de software y otros mbitos

    referentes al diseo de interaccin o interfaces.

    Un patrn de diseo resulta ser una solucin a un problema de

    diseo.

    Para que una solucin sea considerada un patrn debe poseer

    ciertas caractersticas:

    debe haberse comprobado su efectividad resolviendo

    problemas similares en ocasiones anteriores

    debe ser reutilizable (aplicable a diferentes problemas de

    diseo en distintas circunstancias)

    http://es.wikipedia.org/wiki/Patrn_de_diseo

  • T2: Patrones y videojuegos

    1. Definicin y concepto de patrn de diseo

    Objetivos de los patrones:

    Los patrones de diseo pretenden: Proporcionar catlogos de elementos reusables en el diseo de sistemas

    software.

    Evitar la reiteracin en la bsqueda de soluciones a problemas ya conocidos y

    solucionados anteriormente.

    Formalizar un vocabulario comn entre diseadores.

    Estandarizar el modo en que se realiza el diseo.

    Facilitar el aprendizaje de las nuevas generaciones de diseadores

    condensando conocimiento ya existente.

    Asimismo, no pretenden: Imponer ciertas alternativas de diseo frente a otras.

    Eliminar la creatividad inherente al proceso de diseo.

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones

    Estructura de un patrn de diseo. Para definir un patrn de diseo es

    necesario describir, como mnimo, cuatro componentes fundamentales:

    Nombre del patrn, problema y contexto, solucin y

    ventajas/desventajas

    Otros componentes habituales son:

    Clasificacin del patrn, aplicabilidad, estructura, participantes,

    colaboraciones, implementacin, cdigo ejemplo, patrones

    relacionados,

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones

    Componentes fundamentales:

    1. Nombre del patrn. Nombre corto y autodefinido (vocabulario comn y

    alias del patrn)

    2. Problema y contexto. Problema concreto que resuelve el patrn, contexto

    donde tiene sentido aplicarlo (listado de precondiciones que deben ser

    cumplidas para poder aplicar el patrn)

    3. Solucin. La solucin que proporciona un patrn se describe

    genricamente y nunca ligada a ninguna implementacin (normalmente, se

    utiliza los conceptos y nomenclatura de la programacin orientada objetos)

    4. Ventajas y desventajas. Beneficios que aporta y sus posibles

    inconvenientes

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones

    Existen multitud de criterios para clasificarlos (patrones de

    arquitectura, de diseo, dialectos, interacciones,)

    Uno de los ms aceptados es el mbito de diseo donde tienen

    aplicacin

    Pueden definirse tres categoras fundamentales:

    1. Patrones de creacin

    2. Patrones estructurales

    3. Patrones de comportamiento

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones

    1. Patrones de creacin

    Proporcionan una solucin relacionada con la construccin de

    clases, objetos y otras estructuras de datos.

    Ejemplos: Abstract Factory, Builder ofrecen mecanismos de

    creacin de instancias de objetos y estructuras escalables

    dependiendo de las necesidades

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones

    1. Patrones estructurales

    Tratan sobre la forma de organizar las jerarquas de clases, las

    relaciones y las diferentes composiciones entre objetos para

    obtener un buen diseo bajo un determinado contexto.

    Ejemplos: Patrones como Adapter, Facade o Flyweight son

    ejemplos de patrones estructurales

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones

    1. Patrones de comportamiento

    Las soluciones de diseo que proporcionan los patrones de

    comportamiento estn orientadas al envo de mensajes entre

    objetos y cmo organizar ejecuciones de diferentes mtodos

    para conseguir realizar algn tipo de tarea de forma ms

    conveniente.

    Ejemplos: Visitor, Iterator y Observer

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones. Patrones de creacin

    Object Pool (no pertenece a los patrones especificados por GoF): se

    obtienen objetos nuevos a travs de la clonacin. Utilizado cuando el costo

    de crear una clase es mayor que el de clonarla. Especialmente con objetos

    muy complejos. Se especifica un tipo de objeto a crear y se utiliza una

    interfaz del prototipo para crear un nuevo objeto por clonacin. El proceso

    de clonacin se inicia instanciando un tipo de objeto de la clase que

    queremos clonar.

    Abstract Factory (fbrica abstracta): permite trabajar con objetos de

    distintas familias de manera que las familias no se mezclen entre s y

    haciendo transparente el tipo de familia concreta que se est usando.

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones. Patrones de creacin

    Builder (constructor virtual): abstrae el proceso de creacin de un objeto

    complejo, centralizando dicho proceso en un nico punto.

    Factory Method (mtodo de fabricacin): centraliza en una clase

    constructora la creacin de objetos de un subtipo de un tipo determinado,

    ocultando al usuario la casustica para elegir el subtipo que crear.

    Prototype (prototipo): crea nuevos objetos clonndolos de una instancia

    ya existente.

    Singleton (instancia nica): garantiza la existencia de una nica instancia

    para una clase y la creacin de un mecanismo de acceso global a dicha

    instancia.

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones. Patrones de creacin

    Diagrama de clases del patrn Singleton

    Diagrama de clases del patrn Abstract Factory

    Diagrama de clases del patrn Factory Method

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones. Patrones estructurales

    Adapter (Adaptador): Adapta una interfaz para que pueda ser utilizada

    por una clase que de otro modo no podra utilizarla.

    Bridge (Puente): Desacopla una abstraccin de su implementacin.

    Composite (Objeto compuesto): Permite tratar objetos compuestos como

    si de uno simple se tratase.

    Decorator (Envoltorio): Aade funcionalidad a una clase dinmicamente.

    Facade (Fachada): Provee de una interfaz unificada simple para acceder a

    una interfaz o grupo de interfaces de un subsistema.

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones. Patrones estructurales

    Flyweight (Peso ligero): Reduce la redundancia cuando gran cantidad de

    objetos que poseen idntica informacin.

    Proxy: Mantiene un representante de un objeto.

    Mdulo: Agrupa varios elementos relacionados, como clases, singletons,

    y mtodos, utilizados globalmente, en una entidad nica.

    Modelo Vista Controlador (Model-View-Controller: MVC) separa los

    datos de una aplicacin, la interfaz de usuario, y la lgica de negocio en tres

    componentes distintos.

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones. Patrones estructurales

    Estructura del patrn MVC

    Diagrama de clases del patrn Facade

    Diagrama de clases del patrn Adapter

    Diagrama de clases del patrn Proxy

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones. Patrones de comportamiento

    Chain of Responsibility (Cadena de responsabilidad): Permite

    establecer la lnea que deben llevar los mensajes para que los objetos

    realicen la tarea indicada.

    Command (Orden): Encapsula una operacin en un objeto, permitiendo

    ejecutar dicha operacin sin necesidad de conocer el contenido de la misma.

    Interpreter (Intrprete): Dado un lenguaje, define una gramtica para

    dicho lenguaje, as como las herramientas necesarias para interpretarlo.

    Iterator (Iterador): Permite realizar recorridos sobre objetos compuestos

    independientemente de la implementacin de estos.

    Mediator (Mediador): Define un objeto que coordine la comunicacin

    entre objetos de distintas clases, pero que funcionan como un conjunto.

    Memento (Recuerdo): Permite volver a estados anteriores del sistema.

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones. Patrones de comportamiento

    Observer (Observador): Define una dependencia de uno-a-muchos entre

    objetos, de forma que cuando un objeto cambie de estado se notifique y actualicen

    automticamente todos los objetos que dependen de l.

    State (Estado): Permite que un objeto modifique su comportamiento cada vez

    que cambie su estado interno.

    Strategy (Estrategia): Permite disponer de varios mtodos para resolver un

    problema y elegir cul utilizar en tiempo de ejecucin.

    Template Method (Mtodo plantilla): Define en una operacin el esqueleto de

    un algoritmo, delegando en las subclases algunos de sus pasos, esto permite que

    las subclases redefinan ciertos pasos de un algoritmo sin cambiar su estructura.

    Visitor (Visitante): Permite definir nuevas operaciones sobre una jerarqua de

    clases sin modificar las clases sobre las que opera.

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones. Patrones de comportamiento

    Diagrama de clases del patrn Observer

    Diagrama de clases del patrn State

    Diagrama de clases del patrn Strategy

  • T2: Patrones y videojuegos

    2. Estructura y tipos de patrones. Patrones de comportamiento

    Diagrama de clases del patrn Iterator Diagrama de clases del patrn Template Method

    Diagrama de clases del patrn Reactor Diagrama de clases del patrn Visitor

  • T2: Patrones y videojuegos

    3. Patrones y videojuegos

    El paradigma de diseo y desarrollo basado en patrones es

    ampliamente utilizado actualmente

    Especialmente en software de gran complejidad

    La utilizacin de este paradigma se aplica en el diseo de los

    motores de juego

  • T2: Patrones y videojuegos

    3. Patrones y videojuegos

    Ejemplos de aplicacin de patrones de diseo a diversos

    mdulos o elementos de un videojuego:

    Patrones:

    Creacin: Singleton, Abstract Factory, Factory Method,

    Prototype

    Estructurales: Composite, Decorator, Facade, MVC,

    Adapter, Proxy

    Comportamiento: Observer, State, Iterator, Template

    Method, Strategy

  • T2: Patrones y videojuegos

    3. Patrones y videojuegos

    Ejemplo Patrn Abstract Factory

    Ejemplo: jerarqua de clases en un FPS

  • Aplicacin del patrn Abstract Factory

    T2: Patrones y videojuegos

    3. Patrones y videojuegos

    Ejemplo Patrn Abstract Factory

  • T2: Patrones y videojuegos

    3. Patrones y videojuegos

    Ejemplo Patrn Factory Method

    Aplicacin del patrn Factory Method

  • T2: Patrones y videojuegos

    3. Patrones y videojuegos

    Ejemplo Patrn Prototype

    Aplicacin del patrn Prototype

  • T2: Patrones y videojuegos

    3. Patrones y videojuegos

    Ejemplo Patrn Composite

    Aplicacin del patrn Composite

  • T2: Patrones y videojuegos

    3. Patrones y videojuegos

    Ejemplo Patrn Decorator

    Aplicacin del patrn Decorator

  • T2: Patrones y videojuegos

    3. Patrones y videojuegos

    Ejemplo Patrn Proxy

    Aplicacin del patrn Proxy

  • T2: Patrones y videojuegos

    3. Patrones y videojuegos

    Ejemplo Patrn Observer

    Diagrama de clases del patrn Observer

  • T2: Patrones y videojuegos

    3. Patrones y videojuegos

    Ejemplo Patrn Observer

    Diagrama de secuencia de ejemplo utilizando un Observer

  • T2: Patrones y videojuegos

    3. Patrones y videojuegos

    Ejemplo Patrn State

    Aplicacin del patrn State

  • T2: Patrones y videojuegos

    3. Patrones y videojuegos

    Ejemplo Patrn Template Method

    Aplicacin del patrn Template Method

  • T2: Patrones y videojuegos

    3. Patrones y videojuegos

    Ejemplo Patrn Strategy

    Aplicacin del patrn Strategy

  • T2: ARQUITECTURA Y LGICA DE VIDEOJUEGO

    2.1. Ingeniera del software aplicada a videojuegos

    (paradigmas y patrones)

    2.2. Modelos y Programa principal de un videojuego

    2.3. Motores lgicos. Arquitectura del motor

    2.4. Lenguajes de scripting

  • T2: ARQUITECTURA Y LGICA DE VIDEOJUEGO

    2.2. Modelos y Programa principal de un videojuego

    1. Modelo y estructura de un videojuego

    2. El bucle de renderizado (render loop)

    3. El bucle del juego (game loop)

    4. Arquitecturas de game loop

  • T2: Estructura y programa principal

    1. Modelo y estructura de un videojuego

    Desde un punto de vista puramente software el elemento central en

    cualquier videojuego, es el bucle de juego (game loop)

    El bucle de juego permite que el juego funcione sin problemas,

    independientemente de la entrada del usuario o posibles retardos en

    el hw/sw

    Los programas sw tradicionales slo responden a las entradas del

    usuario (en caso contrario no hace nada), por ejemplo cualquier

    programa ofimtico (e.g. procesadores de texto)

  • T2: Estructura y programa principal

    1. Modelo y estructura de un videojuego

    Un juego por otro lado debe estar continuamente realizando

    acciones independientemente de la entrada del usuairo

    El bucle de juego permite precisamente realizar estas acciones de

    maner simple e intuitiva

    El bucle de juego representa la estructura de control principal de

    cualquier juego y gobierna su funcionamiento y la transicin entre

    los distintos estados del mismo

  • T2: Estructura y programa principal

    1. Modelo y estructura de un videojuego

    En un motor de juegos existe una gran variedad de subsistemas o

    componentes con distintas necesidades:

    motor de renderizado

    el sistema de deteccin y gestin de colisiones

    subsistema de juego

    subsistema de soporte a la Inteligencia Artificial

    La mayora de estos componentes han de actualizarse

    peridicamente mientras el juego se encuentra en ejecucin

  • T2: Estructura y programa principal

    1. Modelo y estructura de un videojuego

    El sistema de animacin, de manera sincronizada con respecto al

    motor de renderizado, ha de actualizarse con una frecuencia de 30

    60 Hz con el objetivo de obtener una tasa de frames por segundo lo

    suficientemente elevada para garantizar una sensacin de realismo

    adecuada

    No es necesario mantener este nivel de exigencia para todos los

    componentes (e.g. Inteligencia Artificial)

  • T2: Estructura y programa principal

    1. Modelo y estructura de un videojuego

    Aunque existe diferentes formas (arquitecturas) de implementar un

    game loop, una muy simplificada consiste en tener varios bucles

    cada uno de ellos encargados de realizar las correspondientes

    acciones

    Game loop: bucle general

    Bucle de renderizado: encargado de la parte visual

    Bucles de IA, Multimedia, interacciones, etc

  • T2: Estructura y programa principal

    2. Bucle de renderizado

    Encargado de todas las funciones de visualizacin y renderizado del

    juego

    Cuando an el desarrollo de videojuegos 2D era el estndar en la

    industria, los principales objetivos de diseo eran:

    minimizar el nmero de pxeles a dibujar por el pipeline de

    renderizado

    maximizar la tasa de fps del juego

  • T2: Estructura y programa principal

    2. Bucle de renderizado

    Si en cada una de las iteraciones del bucle de renderizado el nmero

    de pxeles que cambia es mnimo el juego se ejecutar a

    mayor velocidad

    Slo se redibujan las partes de la pantalla que cambian, denominada

    habitualmente Rectangle invalidation

    La tcnica es similar a la planteada en el desarrollo de GUIs

  • T2: Estructura y programa principal

    2. Bucle de renderizado

    En el desarrollo de videojuegos 3D, se mantiene idea de dibujar el

    mnimo nmero de primitivas necesarias en cada iteracin del bucle

    de renderizado

    Sin embargo la filosofa es radicalmente diferente, aunque la cmara

    virtual se mueva, el contenido audiovisual cambia continuamente

  • T2: Estructura y programa principal

    2. Bucle de renderizado

    Esquema general de un bucle de renderizado

    http://wiki.wxwidgets.org/Making_a_render_loop

  • T2: Estructura y programa principal

    3. El bucle del juego

    Principal funcin: actualizar el estado de los distintos componentes

    del motor tanto:

    Internos: coordinacin entre subsistemas

    Externo: tratamiento de eventos de teclado o ratn

    bool game_is_running = true; while( game_is_running ) { update_game(); display_game(); }

  • T2: Estructura y programa principal

    3. El bucle del juego

    Un game loop (extremadamente simplificado) en pseudocdigo

    podra tener este aspecto:

    while( user doesn't exit )

    check for user input run AI move enemies resolve collisions draw graphics play sounds

    end while

    Bucle de renderizado

  • T2: Estructura y programa principal 3. El bucle del juego

    Esquema general de un bucle de juego

  • T2: Estructura y programa principal

    3. El bucle del juego

  • T2: Estructura y programa principal

    3. El bucle del juego

    Los bucles de juego dependen directamente de la plataforma sobre

    la que se construyen

    Los juegos escritos en DOS y en diversas consolas se disean para

    explotar al mximo los recursos de proceso disponible

    Los juegos para PCs modernos (con SSOO grficos como Windows

    o Linux) tienen como restricciones al propio scheduler del SSOO

    Otros juegos se ejecutan sobre mltiples hilos (threads). Supone una

    pequea sobrecarga, pero pueden ejecutarse (con mayor eficiencia)

    en arquitecturas multicore

  • T2: Estructura y programa principal

    4. Arquitecturas de game loop

    Existe una amplia variedad de arquitecturas o diseos posibles para

    un game loop

    La mayora de ellas tienen en comn el uso de uno o varios bucles

    de control que gobiernan la actualizacin e interaccin con los

    distintos componentes del motor de juegos

    Se describirn brevemente las de Windows, las basadas en

    retrollamadas, las basadas en eventos y las basadas en estados

  • T2: Estructura y programa principal

    4. Arquitecturas de game loop

    Tratamiento de mensajes en Windows

    Los juegos han de atender los mensajes recibidos por el propio sistema

    operativo y dar soporte a los distintos componentes del propio motor de

    juego (plataformas Windows)

    En estas plataformas se implementan los denominados message pumps

    En este esquema se atienden los mensajes del SSOO y del motor de

    juego de forma iterativa

    Esquema grfico de una arquitectura basada

    en message pumps

  • T2: Estructura y programa principal

    4. Arquitecturas de game loop

    Tratamiento de mensajes en Windows

    Si existe conflicto, los mensajes del SSOO se ejecutan

    Si no existen mensajes, se ejecuta una iteracin del game loop

    Los mensajes del SSOO tienen prioridad respecto a aspectos crticos

    como el bucle de renderizado

    Efecto: si la ventana en la que se est ejecutando el juego se arrastra o su

    tamao cambia, entonces el juego se congelar a la espera de finalizar el

    tratamiento de eventos recibidos por el propio sistema operativo

    Esquema grfico de una arquitectura basada

    en message pumps

  • T2: Estructura y programa principal

    4. Arquitecturas de game loop

    Esquemas basados en retrollamadas

    Concepto de retrollamada o callback: asociar una porcin de cdigo

    para atender un determinado evento o situacin

    Se puede asociar a una funcin concreta o a un objeto (callback object)

    Ejemplo: uso de funciones de retrollamada planteado en la biblioteca

    GLUT (ligada a la biblioteca GL)

  • T2: Estructura y programa principal 4. Arquitecturas de game loop

    Esquemas basados en retrollamadas (GLUT)

  • T2: Estructura y programa principal

    4. Arquitecturas de game loop

    Esquemas basados en retrollamadas

    Las funciones de retrollamada se suelen utilizar como mecanismo para

    rellenar el cdigo fuente necesario para tratar un determinado tipo de

    evento

    Este esquema est directamente ligado al concepto de framework

    framework : aplicacin construida parcialmente y que el desarrollador

    ha de completar para proporcionar una funcionalidad especfica

  • T2: Estructura y programa principal

    4. Arquitecturas de game loop

    Tratamiento de eventos

    Un evento representa un cambio en el estado del propio juego o en el

    entorno (rea de los videojuegos)

    Pueden clasificarse como externos o internos

    Externos: producidos por las interacciones

    Ejemplo muy comn, el jugador cuando pulsa un botn del joystick

  • T2: Estructura y programa principal

    4. Arquitecturas de game loop

    Tratamiento de eventos

    Internos: interacciones de la lgica del juego

    Ejemplo: reaparicin o respawn de un NPC en el juego

    Gran parte de los motores de juegos incluyen un subsistema especfico

    para el tratamiento de eventos

    El resto de componentes del motor, o incluso a entidades especficas,

    pueden registrarse como partes interesadas en un determinado tipo de

    eventos

  • T2: Estructura y programa principal

    4. Arquitecturas de game loop

    Tratamiento de eventos

    Este planteamiento est muy estrechamente relacionado con el patrn

    Observer

    Canales de eventos: Con el objetivo de independizar los publicadores y

    los suscriptores de eventos, se suele utilizar el concepto de canal de

    eventos como mecanismo de abstraccin

  • T2: Estructura y programa principal

    4. Arquitecturas de game loop

    Esquema basado en estados

    Desde un punto de vista general, los juegos se pueden dividir en una

    serie de etapas o estados que se caracterizan no slo por su

    funcionamiento sino tambin por la interaccin con el usuario o jugador

    En la mayor parte de los juegos es posible diferenciar los siguientes

    estados:

    Introduccin, Men principal, Juego, Finalizacin

  • T2: Estructura y programa principal

    4. Arquitecturas de game loop

    Esquema basado en estados

    Introduccin o presentacin: se muestra al usuario aspectos generales

    del juego (e.g. la temtica del mismo o incluso cmo jugar)

    Men principal: el usuario ya puede elegir entre los distintos modos de

    juegos y que, normalmente, consiste en una serie de entradas textuales

    identificando las opciones posibles

    Juego: donde ya es posible interactuar con la propia aplicacin e ir

    completando los objetivos marcados

    Finalizacin o game over: donde se puede mostrar informacin sobre la

    partida previamente jugada

  • T2: Estructura y programa principal

    4. Arquitecturas de game loop

    Esquema basado en estados

    Existe una relacin entre cada uno de estos estados que se manifiesta en

    forma de transiciones entre los mismos

    Este planteamiento basado en estados tambin debera poder manejar

    varios estados de manera simultnea para, por ejemplo, contemplar

    situaciones en las que sea necesario ofrecer algn tipo de men sobre el

    propio juego en cuestin

  • T2: Estructura y programa principal

    4. Arquitecturas de game loop

    Esquema basado en estados

    Visin general de una mquina de estados finita que representa los estados ms comunes en cualquier juego

    Nmero de diapositiva 1Nmero de diapositiva 2Nmero de diapositiva 3Nmero de diapositiva 4Nmero de diapositiva 5Nmero de diapositiva 6Nmero de diapositiva 7Nmero de diapositiva 8Nmero de diapositiva 9Nmero de diapositiva 10Nmero de diapositiva 11Nmero de diapositiva 12Nmero de diapositiva 13Nmero de diapositiva 14Nmero de diapositiva 15Nmero de diapositiva 16Nmero de diapositiva 17Nmero de diapositiva 18Nmero de diapositiva 19Nmero de diapositiva 20Nmero de diapositiva 21Nmero de diapositiva 22Nmero de diapositiva 23Nmero de diapositiva 24Nmero de diapositiva 25Nmero de diapositiva 26Nmero de diapositiva 27Nmero de diapositiva 28Nmero de diapositiva 29Nmero de diapositiva 30Nmero de diapositiva 31Nmero de diapositiva 32Nmero de diapositiva 33Nmero de diapositiva 34Nmero de diapositiva 35Nmero de diapositiva 36Nmero de diapositiva 37Nmero de diapositiva 38Nmero de diapositiva 39Nmero de diapositiva 40Nmero de diapositiva 41Nmero de diapositiva 42Nmero de diapositiva 43Nmero de diapositiva 44Nmero de diapositiva 45Nmero de diapositiva 46Nmero de diapositiva 47Nmero de diapositiva 48Nmero de diapositiva 49Nmero de diapositiva 50Nmero de diapositiva 51Nmero de diapositiva 52Nmero de diapositiva 53Nmero de diapositiva 54Nmero de diapositiva 55Nmero de diapositiva 56Nmero de diapositiva 57Nmero de diapositiva 58Nmero de diapositiva 59Nmero de diapositiva 60Nmero de diapositiva 61Nmero de diapositiva 62Nmero de diapositiva 63Nmero de diapositiva 64Nmero de diapositiva 65Nmero de diapositiva 66Nmero de diapositiva 67