UNIDAD 1: INTRODUCCION A LOS VIDEOJUEGOS
SESIN 2: Arquitectura Bsica de un Videojuego
REFLEXION:
Qu tiene o utiliza un juego?
Qu hace, cuando y con que
frecuencia?
LOGRO DE LA SESIN
Al trmino de la sesin el estudiante analiza y determina los
elementos y componentes necesarios en el desarrollo general de un
videojuego permitiendo disear una Arquitectura de Videojuego
desde un punto de vista analtico y general.
Temario:
1. Diseo de alto nivel
2. Componentes
3. MainLoop
4. Manejo del Tiempo
5. Elementos del Diseo
1. DISEO DE ALTO NIVEL
Cosas que el juego tiene
Front-end: Interaccin con el usuario, mens, mtodos de entrada.
Grficos: animacin, fondo.
Sonidos: efectos especiales, msica.
Objetos: En el juego: elementos, plataformas, personajes HUD: puntajes,
vidas, tiempo.
Contenedores de objetos: Niveles, reas, mapas. Eventos de entrada.
1. DISEO DE ALTO NIVEL
Cosas que el juego hace
Una vez por nivel/juego:
Carga los elementos grficos y de sonido.
Construye los objetos. Puebla los contenedores de objetos.
Todo el tiempo:
Considerar eventos de entrada.
Actualizar objetos.
Dibujar los grficos.
Reproducir los sonidos.
2. COMPONENTES
Orientacin a Objetos
Abstraccin.
Encapsulamiento.
Modularidad.
Polimorfismo.
Herencia.
2. COMPONENTES
Orientacin a Objetos
Podemos disear un juego con un enfoque de capas.
El juego est compuesto por capas, donde cada capa tiene
objetos.
Otros componentes del juego sern:
Manejadores (sonido, grficos, eventos de entrada)
Motor del juego (incluye el main loop)
2. COMPONENTES
2. COMPONENTES
Manejador de eventos de entrada: maneja los eventos de entrada
y los pone a disposicin del motor del juego, capas y objetos.
Motor del juego: se encarga de manejar, actualizar y dibujar
capas.
Capas: se encargan de construir, actualizar y dibujar sus objetos.
Objetos: elementos del juego como pueden ser, personajes,
elementos del universo, fondo del juego, etc.
Manejadores de grficos/sonidos/etc: encargados de cargar los
grficos/sonidos y dems datos necesarios en el juego.
3. MAIN LOOP
3. MAIN LOOP
Actualizar
Es la etapa donde se altera el estado del juego.
El estado del juego es un conjunto de variables que mantienen la
informacin de cada elemento del juego.
Incluyen la informacin de cada objeto del juego, posiciones,
valores de recursos, puntaje, variables globales, etc.
3. MAIN LOOP
Procesar las acciones de los jugadores
Las acciones alteran el estado del juego.
Dichas acciones se corresponden con los eventos de entrada.
Se interpretan los valores de las variables de los dispositivos y se
traducen en acciones. Mover, atacar, etc. Es til tener funciones
para cada accin.
3. MAIN LOOP
Procesar las acciones de los NO jugadores (NPC)
Llamamos no jugadores a las entidades manejadas el computador.
Tienen sus propias acciones pero no son controladas por entradas.
Se utiliza Inteligencia Artificial.
Cumplen con el siguiente ciclo.
1. Percibir: obtienen informacin til de lo que los rodea.
2. Pensar: eligen una accin.
3. Actuar: actualizan el estado del juego.
3. MAIN LOOP
Fsica
Para que? Mover los objetos sobre la pantalla
Cinemtica: Sin tener en cuenta a las fuerzas externas.
Dinmica: Teniendo en cuenta el efecto de las fuerzas.
Colisiones entre objetos.
1. Deteccin de colisiones: Ocurri una colisin?
2. Resolucin de colisiones: Qu hacer?
4. MANEJO DEL TIEMPO
Al principio se usaba el reloj del sistema. La velocidad del juego
dependa directamente de la velocidad del procesador.
La siguiente aproximacin fue:
setTickerEvent ( 30/s )
when( tickEvent ) {
update()
render()
}
Las actualizaciones por segundo disminuan si los tiempos de
update y render demoraba mucho. Por lo que el juego se enlenteca.
4. MANEJO DEL TIEMPO
Manejo del tiempo hoy
Suponiendo que tenemos los siguientes mtodos:
Update (): actualizar todos los objetos del juego.
Render (): dibuja todos los objetos del juego.
Time (): obtiene la hora actual en ms.
Sleep (ms): suspende por ms cantidad de ms.
Y la siguiente restriccin y objetivo:
Ups - meta de actualizaciones por segundo (restriccin).
Fps = Ups (objetivo)
4. MANEJO DEL TIEMPO
Manejo del tiempo hoy
4. MANEJO DEL TIEMPO
Manejo del tiempo hoy
5. ELEMENTOS DEL DISEO
Temas a definir:
Decisiones de alto nivel la arquitectura
Cual es la arquitectura a seguir?
Qu bibliotecas se utilizarn?
Divisin del trabajo entre el equipo
Quin trabaja en qu parte del juego?
Qu es lo que necesitan para coordinar?
5. ELEMENTOS DEL DISEO
Definir Subsistemas
Son una unidad lgica de funcionalidad.
A menudo reutilizables en mltiples juegos.
Los detalles de implementacin se ocultan.
API describe la interaccin con el resto del sistema.
Forma natural para descomponer el trabajo.
Cada programador podra decidir como implementar, pero
todo el equipo debe ponerse de acuerdo sobre la API.
5. ELEMENTOS DEL DISEO
Especificar Clases, Responsabilidades, Contratos.
Clases: elementos importantes en el subsistema.
Responsabilidades: lo que hace la clase.
Contratos: especificacin de los mtodos.
Qu parmetros?
Qu valores se devuelve el mtodo?
Qu hace el mtodo?
Colaboraciones: interaccin entre clases para lograr un resultado.
Las colaboraciones que se dan dentro de un subsistema
pueden obviarse en procesos de desarrollo giles. Son tiles
los diagramas de flujo y de actividad para los procesos de
actualizacin del loop.
EJEMPLO DE ARQUITECTURA DE VIDEOJUEGOS