Upload
juampiin
View
10
Download
3
Tags:
Embed Size (px)
Citation preview
Índice
Introducción! 5Origen del proyecto ! 5
Objetivos del proyecto! 6
Riesgos ! 6
Stakeholders! 7
Fechas de entrega! 7
Grupo de desarrollo ! 7
Requisitos funcionales del proyecto! 8Dependencias de Software! 8
Engine 3D! 8
Requisitos organizativos ! 9
RO-1: Repositorio de versiones! 9
RO-2: Repositorio generalista! 9
RO-3: Software gestor de proyectos! 9
RO-4: Software de modelado UML y Casos de usos! 10
Requisitos funcionales de la aplicación! 10Análisis de módulos del sistema ! 10
AMS-1: Análisis Módulo Controles! 10
AMS-2: Análisis Módulo Naves! 11
AMS-4: Análisis Módulo Niveles! 19
AMS-5: Análisis Módulo Físicas! 19
AMS-6: Análisis Módulo Hud! 21
Piratas del Espacio: El caso Norby
2
AMS-7: Análisis Módulo IA! 23
AMS-8: Análisis Módulo Efectos gráficos! 23
AMS-9: Análisis Módulo Sonido! 24
AMS-10: Análisis Módulo DB! 24
AMS-11: Análisis Módulo Menú! 25
Diagramas de casos de uso! 25DC1-1 Desarrollo caso de uso del Subsistema Menú! 26
DC1-2 Desarrollo de caso de uso Salir! 27
DC1-3 Desarrollo de caso de uso Ver Controles! 28
DC1-4 Desarrollo de caso de uso Ver Puntuaciones! 29
DC1-5 Desarrollo de caso de uso Cargar Sonido! 30
DC2-1 Desarrollo de caso de uso Atrás (Ver puntuaciones)! 30
DC2-2 Desarrollo de caso de uso Atrás (Ver controles)! 32
DC1-1 Desarrollo caso de uso del Subsistema Nueva Partida! 33
DC1-2 Desarrollo de caso de uso Controlar la Nave! 35
DC1-3 Desarrollo casos de uso Gestión de elementos del HUD! 36
DC1-4 Desarrollo de caso de uso Matar! 37
DC1-5 Desarrollo de caso de uso Morir! 38
DC1-6 Desarrollo de caso de Salir! 39
DC1-7 Desarrollo de caso de uso Pausa! 42
DC1-8 Desarrollo de caso de uso Ganar Partida! 44
DC1-9 Desarrollo de caso de uso Guardar Puntuación! 45
DC1-10 Desarrollo de caso de uso Cargar Nivel! 46
DC2-1 Desarrollo de caso de uso Trompo a la derecha! 47
DC2-2 Desarrollo de caso de uso Trompo a la izquierda! 49
DC2-3 Desarrollo de caso de uso Arriba! 50
DC2-4 Desarrollo de caso de uso Izquierda! 52
Piratas del Espacio: El caso Norby
3
DC2-5 Desarrollo de caso de uso Abajo! 54
DC2-6 Desarrollo de caso de uso Derecha! 55
DC2-7 Desarrollo de caso de uso Disparar! 57
DC2-8 Desarrollo de caso de uso Colisionar con la nave enemiga! 59
DC2-9 Desarrollo de caso de uso Ser disparado por el enemigo! 61
DC2-10 Desarrollo de caso de uso La nave colisiona con el enemigo! 63
DC2-11 Desarrollo de caso de uso Cargar Sonido! 65
DC2-12 Desarrollo de caso de uso Generar Skybox! 65
DC2-13 Desarrollo de caso de uso Gestión Nivel! 66
DC2-14 Desarrollo de caso de uso Crear Naves! 67
DC3-1 Desarrollo de caso de uso Música de Nivel! 67
DC3-2 Desarrollo de caso de uso Efectos Sonoros! 69
DC3-3 Desarrollo de caso de uso Duración Nivel! 70
DC3-4 Desarrollo de caso de uso Gestión IA! 72
DC3-5 Desarrollo de caso de uso Crear Nave Principal! 74
DC3-6 Desarrollo de caso de uso Crear Bombardero! 76
DC3-7 Desarrollo de caso de uso Crear Kamikaze! 78
DC3-8 Desarrollo de caso de uso Crear Clon! 80
DC3-9 Desarrollo de caso de uso Crear Hunter! 82
Priorización de casos de uso! 84
Diagramas de secuencia! 86Controlar la nave ! 87
Crear nivel! 89
Ganar Partida ! 91
Generar Skybox! 93
Guardar Puntación! 94
Matar Enemigo ! 95
Piratas del Espacio: El caso Norby
4
Pausa! 96
Salir! 98
Ver puntuaciones ! 99
Diagrama de clases! 100
Glosario! 101
Introducción
Origen del proyecto
Este proyecto surge de la idea de un videojuego escrito en Python sobre guerras entre naves espaciales llamado “UPO: The Game”, ese proyecto se inspiraba en el clásico juego de “marcianitos”, pero una versión más moderna y sofisticada.
UPO: The Game fue creado entre abril y junio del 2009 como parte de la asignatura de libre configuración Proyecto informática. El proyecto fue tutorizado por Domingo Savio Rodríguez Baena y calificado por sobresaliente.
Piratas del Espacio: El caso Norby
5
Para el curso 2009-2010 la asignatura Ingeniería del software de gestión II plantea la ejecución de un proyecto de mediana envergadura. Nuestro grupo de desarrollo propone crear una versión actualizada de UPO: The Game.
Objetivos del proyecto
El objetivo del proyecto es el de desarrollar un videojuego en 3 dimensiones que sea estable, que maneje una base de datos y, principalmente, que sea divertido.
Nuestros objetivos personales son claros, queremos aprender y formarnos en el arte de la creación de videojuegos. Estamos dispuestos a demostrar la eficacia y eficiencia del lenguaje JAVA aplicado al nuevo motor gráfico “JMonkey”, del cual actualmente hay muy poca información y escasez de tutoriales en español.
Pretendemos obtener información suficiente para posteriormente crear un tutorial en español para otros españoles dispuestos a seguir nuestros pasos y crear videojuegos en este motor que tanto nos gusta.
Riesgos
Los principales riesgos que amenazan a nuestro proyecto son:
•Tiempo: Tenemos una fecha límite de entrega inamovible que es entre el 18 y el 22 de Enero. •Conocimientos: El proyecto requiere de unos conocimientos no asimilados previamente y se requiere de un tiempo extra para el aprendizaje de dichos conocimientos.
•Implementación: La implementación es bastante compleja y la información es escasa, y en algunos casos nula, tanto en material físico como digital.
•Tamaño: Los integrantes del grupo son tan sólo dos personas y el proyecto es mucho más grande de lo que está previsto para el tiempo estipulado.
Piratas del Espacio: El caso Norby
6
•Portabilidad: El proyecto deberá ser portable a los sistemas operativos más comunes de hoy en día, tales como los pertenecientes a Linus, Mac, Windows.
•Concurso: Participamos en el concurso de software libre de España. Por lo que debemos adaptar todas la documentación a su formato y al de la asignatura a la vez.
•Lejanía: Los integrantes del grupo viven en poblaciones distintas y no es posible quedar frecuentemente para debatir las ideas.
•Participaciones: Hemos dotado al proyecto de participaciones en partes específicas del proyecto como diseño gráfico 3D, diseño gráfico 2D y guión. No es factible la posibilidad de participar todos físicamente y crear un ambiente de equipo correcto, por lo que un miembro del equipo deberá encargarse de la organización de todo el personal participante.
Stakeholders
Norberto Díaz Díaz y Francisco Antonio Gómez Vela: es el destinatario del software. Tendrá acceso al repositorio de datos, a los documentos y recursos.
Jugador: será el usuario de la aplicación.
Jose Vázquez Infantes y Gonzalo Rodríguez-Baltanás Díaz: son los responsables del desarrollo.
Fechas de entrega
16 Octubre: 1º Entrega “Documento de visión”.
6 Noviembre: 2º Entrega “Iteración de comienzo”.
27 Noviembre: 3º Entrega “Iteración de Elaboración”.
18 Diciembre: 4º Entrega “Iteración de construcción” .
22 Enero: Entrega Final “Iteración de transición”.
Grupo de desarrollo
Concepto, Análisis, Diseño e Implementación: Gonzalo Rodríguez-Baltanás Díaz y José Vázquez Infantes.
Piratas del Espacio: El caso Norby
7
Equipo de Diseño Gráfico 3D: José Carlos Sendino Fernández y Antonio Herrera Pérez.
Diseño Gráfico 2D: Carlos Atienza Gómez.
Guión: Vicente Llorent Vaquero.
Música: Julio Marín Díaz.
Cine: Daniel Amat.
Requisitos funcionales del proyecto
Dependencias de Software
E n g i n e 3 D
Dado el límite de tiempo que tenemos y la complejidad del proyecto se hace necesaria la utilización de una engine. La engine deberá ser capaz de abstraer el renderizado de objetos tridimensionales, colisiones básicas, sonido, efectos gráficos y transformaciones.
La engine deberá ser compatible con el lenguaje Java. Deberá tener documentación y tutoriales que permitan un desarrollo continuo sencillo.
Piratas del Espacio: El caso Norby
8
Tras considerar las opciones hemos llegado a la conclusión de que la engine que más de adapta a nuestras necesidades es JMonkey. JMonkey es una engine 3D opensource con un estado de desarrollo maduro. Cuenta con un foro activo y canal de chat con desarrolladores los que preguntar dudas.
Requisitos organizativos
R O - 1 : R e p o s i t o r i o d e v e r s i o n e s
Dado que el grupo de desarrollo es multiusuario y la complejidad del proyecto se hace necesario utilizar un software de control de versiones. Este software deberá permitir de manera ágil y sencilla que todos los miembros del proyecto tengan acceso al código fuente.
Tras evaluar las características de Subversion, Mercurial y CVS hemos llegado a la conclusión de que Mercurial es el más idóneo, por su rapidez y documentación disponible.
Para utilizar este software de gestión de versiones se necesita un servidor que esté disponible las 24 horas del día 7 días a la semana 365 días al año. Se usará Kenai para esta tarea, ya que es gratuito y tiene una perfecta integración con Netbeans.
R O - 2 : R e p o s i t o r i o g e n e r a l i s t a
El grupo de desarrollo cuenta con aportaciones de gente no técnica. Así mismo existen aportaciones que no son parte del código y no hace falta controlar su versión. Para estos casos se ha habilitará un segundo repositorio de carácter general.
El servicio encargado de este repositorio es Dropbox. Este servicio permite disponer de 2GB de almacenamiento online. Para utilizarlo entre todos los usuarios del grupo de desarrollo crearemos una carpeta compartida.
Esta carpeta sincronizará los datos con todos los miembros del grupo. Es simple, eficiente y efectivo, además de gratuito, por lo que Dropbox es idóneo para la tarea.
R O - 3 : S o f t w a r e g e s t o r d e p r o y e c t o s
Piratas del Espacio: El caso Norby
9
Dada la complejidad del proyecto, la cantidad de personas involucrada y los requisitos de los stakeholders se hace necesario utilizar un software que ayude a la distribución de tareas y la gestión de tiempo.
En Windows el mejor software de gestión de proyectos es Project, de Microsoft. Se utilizará como herramienta secundaria.
En Mac se dispone de Merlin y de OmniPlan. Se usará OmniPlan porque resulta más sencillo, más barato y además tiene grandes opciones de exportación, permitiendo crear informes automatizados, diagramas de Gantt y diagramas de distribución de tareas.
OmniPlan permite compatibilidad con ficheros de Project. Será usado como gestor de proyectos principal.
R O - 4 : S o f t w a r e d e m o d e l a d o U M L y C a s o s d e u s o s
Se necesita un software capaz de ayudar al modelado de casos de usos y diagramas UML para las clases. Se usará una combinación de Microsoft Visio y OmniGraffle.
Microsoft Visio se ejecutará en plataformas Windows 7 y Windows Vista y OmniGraffle en Mac Os Snow Leopard.
Requisitos funcionales de la aplicación
Análisis de módulos del sistema
A M S - 1 : A n á l i s i s M ó d u l o C o n t r o l e s
El módulo Controles aporta la funcionalidad que posibilita al usuario interactuar con el sistema, por medio del teclado y el ratón.
El ratón se utiliza mientras el usuario está en el menú del videojuego. El teclado se utiliza cuando el usuario está jugando un nivel para controlar a la nave.
Piratas del Espacio: El caso Norby
10
La asignación de las teclas para el control de la nave es el siguiente:
ControlesControles
Tecla Acción
W o ↑ La nave se mueve hacia arriba
A o ← La nave se mueve hacia la izquierda
D o → La nave se mueve hacia la derecha
S o ↓ La nave se mueve hacia abajo
Espacio La nave se dispara
L La nave hace un trompo a la derecha
K La nave hace un trompo a la izquierda
A M S - 2 : A n á l i s i s M ó d u l o N a v e s
El módulo Naves debe proporcionar toda la funcionalidad relacionada con las naves. Debe permitir la creación sencilla de las Naves. El juego consta de 5 tipos de naves. Las naves tienen una serie de atributos que las definen, además de un aspecto propio.
Propiedades básicas
Nave
Propiedades básicasPropiedades básicasPropiedades básicasPropiedades básicasPropiedades básicas
Vida Velocidad Armas Puntuación Daño de colisión
Kamikaze 100 70 Cargas explosivas
200 100
Piratas del Espacio: El caso Norby
11
Propiedades básicas
Nave
Propiedades básicasPropiedades básicasPropiedades básicasPropiedades básicasPropiedades básicas
Vida Velocidad Armas Puntuación Daño de colisión
Clon
Hunter
Bombardero
Jugador
200 65 Cañón de fotones
300 50
230 70 Cañón de Gauss
500 50
180 80 Cañón de plasma
250 70
1000 100 Cañones Alfa
- 400
Armas
Tipos de armas
ArmasArmas
Descripción Daño
Cargas Explosivas Son cargas de plutonio en estado de semi-fisión. Al leve impacto, explotan.
100
Piratas del Espacio: El caso Norby
12
Armas
Tipos de armas
ArmasArmas
Descripción Daño
Cañón de fotones
Cañón Gauss
Cañones Alfa
El cañón de fotón es un arma equilibrada.
20
Disparos rápidos y potencia media
30
Tecnología punta, disparo rápido y
potencia media-alta
50
Bombardero
Piratas del Espacio: El caso Norby
13
A M S - 4 : A n á l i s i s M ó d u l o N i v e l e s
El módulo Niveles se encarga de proporcionar toda la funcionalidad relacionada con la carga y puesta en escena de niveles. El juego dispondrá de 7 niveles. Cada nivel define cómo es el universo, qué tipo de enemigos hay y su cantidad.
NivelesNivelesNiveles
Nivel Tiempo(min) Enemigos
1 1 Kamikazes
2 2 Clones
3 2 Clones, Hunter
4 2 Clones, Hunter, Kamikazes
5 2 Hunters, Bombarderos
6 2 Bombardero, Clones, Kamikaze
7 5 Hunter, Bombarderos, Clon, Kamikaze
A M S - 5 : A n á l i s i s M ó d u l o F í s i c a s
El módulo Físicas se encarga de proporcionar toda la funcionalidad relacionada con las colisiones entre los entes del juego.
Colisiones que se deben controlarColisiones que se deben controlarColisiones que se deben controlarColisiones que se deben controlarColisiones que se deben controlar
Jugador Misiles del jugador
Misiles enemigos
Enemigos
Jugador
Misiles del jugador
✖ ✖ ✔ ✔
✖ ✖ ✖ ✔
Piratas del Espacio: El caso Norby
19
Colisiones que se deben controlarColisiones que se deben controlarColisiones que se deben controlarColisiones que se deben controlarColisiones que se deben controlar
Jugador Misiles del jugador
Misiles enemigos
Enemigos
Misiles enemigos
Enemigos
✔ ✖ ✖ ✖
✔ ✔ ✖ ✖
Efectos de colisionesEfectos de colisiones
Colisión Efecto
Jugador <-> Misil enemigo Se resta a la vida del jugador el valor del daño del arma que produjo el
misil
Misil del Jugador <-> Enemigo Se resta a la vida del enemigo el valor del daño del arma del
jugador
Jugador <-> Enemigo Se resta a la vida del jugador el valor del daño de colisión del enemigo.
Se resta a la vida del enemigo el daño de colisión del jugador.
Piratas del Espacio: El caso Norby
20
A M S - 6 : A n á l i s i s M ó d u l o H u d
El módulo HUD contiene toda la funcionalidad que permite representar por pantalla información gráfica para el usuario mientras está en los niveles.
Información que representarInformación que representar
Indicador Explicación
Vidas Cada vida te permite seguir jugando cuando
eres destruido
Vida Representa el estado de la nave.
Puntuación La puntuación que llevas conseguida
Nivel Aparece cada vez que inicias un nuevo nivel
Piratas del Espacio: El caso Norby
21
A M S - 7 : A n á l i s i s M ó d u l o I A
El módulo IA, o de Inteligencia Artificial, proporciona al juego una variabilidad y una inteligencia a las naves, de tal forma que nadie pueda predecir su movimiento. Cada nave tendrá un movimiento particular:
IA de las navesIA de las naves
Nave Comportamiento
Kamikaze Movimiento aleatorio vertical y horizontal.
Clon Siguen una trayectoria rectilínea y disparan
continuamente.
Hunter Se mueve vertical y horizontalmente de
manera que tenga a tiro al jugador
Bombardero Movimiento lento y rectilíneo.
A M S - 8 : A n á l i s i s M ó d u l o E f e c t o s g r á fi c o s
El módulo de efectos gráficos se encarga de añadir efectos que muestren un escenario más atractivo. Las tecnologías que vamos a utilizar son:
• Motion Blur: Los objetos renderizados en pantalla muestran una estela al moverse.
• SkyBox: Los espacios exteriores contienen elementos a una distancia infinita. En nuestro caso, constelaciones en la lejanía.
Piratas del Espacio: El caso Norby
23
A M S - 9 : A n á l i s i s M ó d u l o S o n i d o
El módulo sonido deberá encargarse de la tarea de introducir efectos sonoros y música.
•Música•Menú•Partida•Créditos•Game Over
•Efectos sonoros•Disparo•Explosión•Motores
A M S - 1 0 : A n á l i s i s M ó d u l o D B
El módulo de la base de datos proporciona al juego la posibilidad de tener un registro sobre los jugadores y la puntuación final de las partidas.
Las interacciones con la base de datos se centrarán en las funciones de:
•Guardar nickname, puntuación.•Consultar lista de puntuacion-nickname
Piratas del Espacio: El caso Norby
24
A M S - 11 : A n á l i s i s M ó d u l o M e n ú
Diagramas de casos de uso
Piratas del Espacio: El caso Norby
25
D C 1 - 1 D e s a r r o l l o c a s o d e u s o d e l S u b s i s t e m a M e n ú Nombre: Menú.Precondición: El programa deberá ser inicializado.
Piratas del Espacio: El caso Norby
26
Postcondición: Una ventana llamada MENU aparecerá en pantalla. 1- Aparece una ventana en pantalla. 2- Se dibujan los botones. 3- Se dibuja el fondo.Flujo Alternativo: 1- Si no se dibujase algo correctamente, aparecerá su color por defecto.
D C 1 - 2 D e s a r r o l l o d e c a s o d e u s o S a l i r
Ver Controles tiene una relación de <include> en el Caso de Uso de Menú.
Nombre: Salir.Precondición: La ventana MENU deberá estar en pantalla.
Postcondición:Flujo Normal:- El usuario pulsa el botón SALIR.- Se cierra la ventana MENU.- El sistema termina.Flujo Alternativo:
Piratas del Espacio: El caso Norby
27
D C 1 - 3 D e s a r r o l l o d e c a s o d e u s o Ve r C o n t r o l e s
El módulo Controles aporta la funcionalidad que posibilita al usuario interactuar con el sistema, por medio del teclado y el ratón.
El ratón se utiliza mientras el usuario está en el menú del videojuego. El teclado se utiliza cuando el usuario está jugando un nivel para controlar a la nave.
Ver Controles tiene una relación de <include> en el Caso de Uso de Menú.
Nombre: Ver Controles.Precondición: La ventana MENU deberá estar en pantalla.Postcondición: Se mostrará una ventana en la que se muestren los controles.Flujo Normal:1.- El usuario pulsa el botón VER CONTROLES.2.- Se cierra la ventana MENU.3.- Aparece la ventana VER CONTROLES con los controles necesarios para jugar al juego.Flujo Alternativo:
Piratas del Espacio: El caso Norby
28
D C 1 - 4 D e s a r r o l l o d e c a s o d e u s o Ve r P u n t u a c i o n e s
Puntuaciones tiene una relación de <include> en el Caso de Uso de Menú.
Nombre: Ver Puntuaciones.Precondición: La ventana MENU deberá estar en pantalla.Postcondición: Se mostrará una ventana en la que se muestren las puntuaciones.Flujo Normal:1.- El usuario pulsa el botón VER PUNTUACIONES.2.- Se cierra la ventana MENU.3.- Aparece la ventana VER PUNTUACIONES con las puntuaciones y los nicknames de los jugadores que hayan jugado anteriormente.
Flujo Alternativo:
Piratas del Espacio: El caso Norby
29
D C 1 - 5 D e s a r r o l l o d e c a s o d e u s o C a r g a r S o n i d o
Cargar Sonido tiene una relación de <include> en el Caso de Uso de Menú.
Nombre: Cargar Sonido.Precondición: La ventana MENU deberá estar en pantalla.Postcondición: Flujo Normal: 1- Se reproduce por los altavoces la canción oficial del juego. 2- Si termina la canción se volverá a repetir. 3- La canción terminará cuando se pulse el botón NUEVA PARTIDA o SALIR.
Flujo Alternativo:
D C 2 - 1 D e s a r r o l l o d e c a s o d e u s o A t r á s ( Ve r p u n t u a c i o n e s )
Piratas del Espacio: El caso Norby
30
Atrás tiene una relación de <include> en el Caso de Uso Ver Puntuación.
Nombre: Atrás.Precondición: El usuario deberá haber pulsado el botón de VER PUNTUACIONES.
Postcondición:Flujo Normal:- El usuario pulsa el boton ATRAS.- Se cierra la ventana VER PUNTUACIONES.- Se abre la ventana MENU.
Piratas del Espacio: El caso Norby
31
Flujo Alternativo:
D C 2 - 2 D e s a r r o l l o d e c a s o d e u s o A t r á s ( Ve r c o n t r o l e s )
Atrás tiene una relación de <include> en el Caso de Uso de Ver Controles .
Nombre: Atrás.Precondición: El usuario deberá haber pulsado el botón de VER CONTROLES.
Piratas del Espacio: El caso Norby
32
Postcondición:Flujo Normal:- El usuario pulsa el boton ATRAS.- Se cierra la ventana VER CONTROLES- Se abre la ventana MENU.Flujo Alternativo:
D C 1 - 1 D e s a r r o l l o c a s o d e u s o d e l S u b s i s t e m a N u e v a P a r t i d a
Nombre: Nueva Partida.Precondición: La ventana MENU deberá estar en pantalla.Postcondición: La partida habrá comenzado.
Piratas del Espacio: El caso Norby
33
1- Se reproduce un vídeo dentro del juego en el que se muestre la introducción a la historia deljuego. 2- El primer nivel empieza. 3- Se crea la nave principal. 4- Se empiezan a generar las naves conforme a sus probabilidades de aparición en el grafo de escena. 5- Cuando el nivel termina debido a que su duración ha llegado a su límite, se carga el siguiente elnivel, excepto en caso de que al final del nivel tenga que reproducirse un vídeo. 6- Se vuelven a crear las naves conforme a sus probabilidades de aparición. 7- Se repiten las operaciones anteriores hasta finalizar todos los niveles 8- Al término de los niveles 2, 4, 5 y 7 se reproducirán los vídeos “Llegada a la base”,“Enfrentamientos con la policía”, “Llegada al planeta principal”, “Ending”. 9- Al término de la partida aparecerá una ventana para que el usuario pueda introducir su nickname y éste se guarde en la base de datos junto a su puntuación.Flujo Alternativo:
Piratas del Espacio: El caso Norby
34
D C 1 - 2 D e s a r r o l l o d e c a s o d e u s o C o n t r o l a r l a N a v e
Controlar la Nave tiene una relación de <include> en el Caso de Uso de Nueva Partida.
Nombre: Controlar la nave.Precondición: - Se ha creado una nueva partida.- La nave ha sido creada.Postcondición: La nave habrá cambiado su posición.
Piratas del Espacio: El caso Norby
35
Flujo Normal: 1. El usuario pulsa las teclas adecuadas.2. La nave cambia su posición según la/s tecla/s pulsada.3. La nave seguirá cambiando su posición hasta que la/s tecla/s deja/n de ser pulsada/s.Flujo Alternativo:- El usuario pulsa una tecla no reconocida por el sistema.- El sistema ignora esa pulsación de tecla.
D C 1 - 3 D e s a r r o l l o c a s o s d e u s o G e s t i ó n d e e l e m e n t o s d e l H U D
Gestión de elementos del HUD tiene una relación de <include> en el Caso de Uso de Nueva Partida.
Nombre: Gestión de elementos del HUD.Precondición:- Se ha creado una nueva partida.- La nave ha sido creada.Postcondición: Flujo Normal:1. La información se representa en la pantalla.2. La vida y las vidas irán en la parte superior izquierda.3. La puntuación actual se situará en la parte superior derecha.Flujo Alternativo:
Piratas del Espacio: El caso Norby
36
D C 1 - 4 D e s a r r o l l o d e c a s o d e u s o M a t a r
Matar tiene una relación de <include> en el Caso de Uso de Nueva Partida.
Nombre: Matar.Precondición: - Se ha creado una nueva partida.- La nave ha sido creada.
Piratas del Espacio: El caso Norby
37
Postcondición: Habrá una nave enemiga menos.Flujo Normal:- La nave enemiga explota.- Se guardará en una variable la puntuación para al final del juego guardarla en la base de datos.Flujo Alternativo:
D C 1 - 5 D e s a r r o l l o d e c a s o d e u s o M o r i r
Piratas del Espacio: El caso Norby
38
Morir tiene una relación de <include> en el Caso de Uso de Nueva Partida.
Nombre: Morir.Precondición: - Se ha creado una nueva partida.- La nave ha sido creada.Postcondición: Habrá una nave enemiga menos.Flujo Normal:- La nave enemiga explota.- Se guardará en una variable la puntuación para al final del juego guardarla en la base de datos.Flujo Alternativo:
D C 1 - 6 D e s a r r o l l o d e c a s o d e S a l i r
Piratas del Espacio: El caso Norby
39
Salir HUD tiene una relación de <include> en el Caso de Uso de Nueva Partida.
Nombre: Salir.Precondición: -Se ha creado una nueva partida.- El sistema irá al caso de uso GUARDAR PUNTUACIÓN.Postcondición:
Piratas del Espacio: El caso Norby
40
Flujo Normal:- El usuario podrá pulsar la tecla ESCAPE.- Se pide un nickname con una ventana.- La puntuación actual se guarda en la base de datos junto al nickname introducido.
Flujo Alternativo:
Piratas del Espacio: El caso Norby
41
D C 1 - 7 D e s a r r o l l o d e c a s o d e u s o P a u s a
Pausa tiene una relación de <include> en el Caso de Uso de Nueva Partida.
Nombre: PausaPrecondición: Se ha creado una nueva partida.Postcondición: El sistema quedará pausado.
Piratas del Espacio: El caso Norby
42
Flujo Normal:- El usuario podrá pulsar la tecla P.- El sistema quedará pausado.Flujo Alternativo:- En caso de que el sistema está pausado.- El sistema se restablecerá y dejará de estar pausado.
Piratas del Espacio: El caso Norby
43
D C 1 - 8 D e s a r r o l l o d e c a s o d e u s o G a n a r P a r t i d a
Ganar Partida tiene una relación de <include> en el Caso de Uso de Nueva Partida.
Nombre: Ganar Partida.Precondición:- Se ha creado una nueva partida.- La nave ha sido creada.
Piratas del Espacio: El caso Norby
44
Postcondición: El sistema irá al caso de uso GUARDAR PUNTUACIÓN.Flujo Normal: 1- Se comprobará que el usuario ha terminado todos los niveles. 2- Se reproducirá el video final.Flujo Alternativo:- Si no encuentra el video para reproducirlo, ignora esa parte y se la salta.
D C 1 - 9 D e s a r r o l l o d e c a s o d e u s o G u a r d a r P u n t u a c i ó n
Piratas del Espacio: El caso Norby
45
Guardar Puntuación tiene una relación de <include> en el Caso de Uso de Nueva Partida.
Nombre: Guardar Puntuación.Precondición:- Se ha creado una nueva partida.- La nave ha sido creada.Postcondición: El sistema finalizará.Flujo Normal: 1- Mediante un cuadro de diálogo se le pedirá al usuario que introduzca un nickname. 2- El sistema introducirá en la base de datos ese nickname junto a su puntuación.Flujo Alternativo:
D C 1 - 1 0 D e s a r r o l l o d e c a s o d e u s o C a r g a r N i v e l
Cargar Nivel tiene una relación de <include> en el Caso de Uso de Nueva Partida.
Nombre: Cargar Nivel.Precondición: Habrá comenzado una nueva partida.Postcondición: Un nivel quedará cargado y listo para jugarlo.Flujo Normal:- Se creará la nave principal.- Se generará el Skybox.- Se cargará el sonido.- Se crearán el resto de las naves de acuerdo a cada nivel.- Se gestionará la IA de las naves enemigas.- Se gestionará la duración del nivel.Flujo Alternativo 1:- La nave principal no se carga.- El juego se aborta.Flujo Alternativo 2:- Las naves enemigas no se generan.- El juego se aborta.
Piratas del Espacio: El caso Norby
46
Flujo Alternativo 3:- La duración del nivel es mayor de la estimada.- Se carga el siguiente nivel
D C 2 - 1 D e s a r r o l l o d e c a s o d e u s o Tr o m p o a l a d e r e c h a
Trompo a la derecha tiene una relación de <extends> en el Caso de Uso de Controlar la Nave.
Piratas del Espacio: El caso Norby
47
Nombre: Trompo a la derechaPrecondición: Se ha creado una nueva partida.Postcondición: La nave cambiará su posición.Flujo Normal:- El usuario podrá pulsar la tecla E.- La nave realizará un trompo en el sentido de las agujas del reloj por la pantalla.
Piratas del Espacio: El caso Norby
48
Flujo Alternativo:- La nave llega a cualquiera de los límites de la pantalla.- La nave se detiene.- La nave no vuelve a su estado inicial.
D C 2 - 2 D e s a r r o l l o d e c a s o d e u s o Tr o m p o a l a i z q u i e r d a
Trompo a la izquierda tiene una relación de <extends> en el Caso de Uso de Controlar la Nave.
Nombre: Trompo a la izquierda
Piratas del Espacio: El caso Norby
49
Precondición: Se ha creado una nueva partida.Postcondición: La nave cambiará su posición.Flujo Normal:- El usuario podrá pulsar la tecla Q.- La nave realizará un trompo al contrario de las agujas del reloj por la pantalla.Flujo Alternativo:- La nave llega a cualquiera de los límites de la pantalla.- La nave se detiene.- La nave no vuelve a su estado inicial.
D C 2 - 3 D e s a r r o l l o d e c a s o d e u s o A r r i b a
Arriba tiene una relación de <extends> en el Caso de Uso de Controlar la Nave.
Piratas del Espacio: El caso Norby
50
Nombre: Arriba.Precondición: Se ha creado una nueva partida.Postcondición: La nave cambiará su posición hacia arriba.Flujo Normal:- El usuario podrá pulsar las teclas W o _- La nave se mueve hacia arriba mientras cualquiera de las dos teclas posibles sigan estando pulsadas.
Piratas del Espacio: El caso Norby
51
Flujo Alternativo:- La nave llega al límite superior de la pantalla.- La nave se detiene en su ascenso por la pantalla.
D C 2 - 4 D e s a r r o l l o d e c a s o d e u s o I z q u i e r d a
Izquierda tiene una relación de <extends> en el Caso de Uso de Controlar la Nave.
Piratas del Espacio: El caso Norby
52
Nombre: Izquierda.Precondición: Se ha creado una nueva partida.Postcondición: La nave cambiará su posición hacia la izquierda.Flujo Normal:- El usuario podrá pulsar las teclas A o _- La nave se mueve hacia la izquierda mientras cualquiera de las dos teclas posibles sigan estando pulsadas.
Piratas del Espacio: El caso Norby
53
Flujo Alternativo:- La nave llega al límite izquierdo de la pantalla.- La nave se detiene en su movimiento lateral a la izquierda por la pantalla.
D C 2 - 5 D e s a r r o l l o d e c a s o d e u s o A b a j o
Abajo tiene una relación de <extends> en el Caso de Uso de Controlar la Nave.
Piratas del Espacio: El caso Norby
54
Nombre: Abajo.Precondición: Se ha creado una nueva partida.Postcondición: La nave cambiará su posición hacia abajo.Flujo Normal:- El usuario podrá pulsar las teclas S o _- La nave se mueve hacia abajo mientras cualquiera de las dos teclas posibles sigan estando pulsadas.Flujo Alternativo:- La nave llega al límite inferior de la pantalla.- La nave se detiene en su descenso por la pantalla.
D C 2 - 6 D e s a r r o l l o d e c a s o d e u s o D e r e c h a
Derecha tiene una relación de <extends> en el Caso de Uso de Controlar la Nave.
Piratas del Espacio: El caso Norby
55
Nombre: Derecha.Precondición: Se ha creado una nueva partida.Postcondición: La nave cambiará su posición hacia la derecha.Flujo Normal:- El usuario podrá pulsar las teclas D o _- La nave se mueve hacia la derecha mientras cualquiera de las dos teclas posibles sigan estando pulsadas.
Piratas del Espacio: El caso Norby
56
Flujo Alternativo:- La nave llega al límite derecho de la pantalla.- La nave se detiene en su movimiento lateral a la derecha por la pantalla.
D C 2 - 7 D e s a r r o l l o d e c a s o d e u s o D i s p a r a r
Disparar tiene una relación de <extends> en el Caso de Uso de Matar.
Piratas del Espacio: El caso Norby
57
Nombre: Disparar.Precondición: - Se ha creado una nueva partida.- La nave ha sido creada.Postcondición: Habrá un modelo en 3D con forma de misil en el grafo de escena.
Piratas del Espacio: El caso Norby
58
Flujo Normal:- El usuario podrá pulsar la tecla ESPACIO.- Se crea un objeto en 3D con forma de misil.- Ese misil irá actualizando su posición en el eje de la Z a más velocidad que la de la nave principal.Flujo Alternativo:- El usuario deja pulsada la tecla ESPACIO.- El sistema ignorará esa petición hasta pasado un tiempo.
D C 2 - 8 D e s a r r o l l o d e c a s o d e u s o C o l i s i o n a r c o n l a n a v e e n e m i g a
Colisionar con la nave enemiga tiene una relación de <extends> en el Caso de Uso de Matar.
Piratas del Espacio: El caso Norby
59
Nombre: Colisionar con la nave enemiga.Precondición: - Se ha creado una nueva partida.- La nave ha sido creada.Postcondición:
Piratas del Espacio: El caso Norby
60
Flujo Normal:- Se hace un recuento de daños por colisión.- La nave enemiga explota.- Se guardará en una variable la puntuación para al final del juego guardarla en la base de datos.Flujo Alternativo:- La nave enemiga tiene más vida que nuestro daño por colisión.- Las naves seguirán chocando hasta que alguna muera por colisión.
D C 2 - 9 D e s a r r o l l o d e c a s o d e u s o S e r d i s p a r a d o p o r e l e n e m i g o
Ser Disparado tiene una relación de <extends> en el Caso de Uso de Morir.
Piratas del Espacio: El caso Norby
61
Nombre: Ser disparado por el enemigo.Precondición: - Se ha creado una nueva partida.- La nave ha sido creada.Postcondición:Flujo Normal:- La vida de la nave principal llega a cero.- La nave principal explota.- El juego termina.- Sale una ventana en la que introduces tu nickname y se guarda tu puntuación en la base de datos.
Piratas del Espacio: El caso Norby
62
Flujo Alternativo:
D C 2 - 1 0 D e s a r r o l l o d e c a s o d e u s o L a n a v e c o l i s i o n a c o n e l e n e m i g o
La nave colisiona con el enemigo tiene una relación de <extends> en el Caso de Uso de Morir.
Piratas del Espacio: El caso Norby
63
Nombre: La nave nave colisiona con enemigo.Precondición: - Se ha creado una nueva partida.- La nave ha sido creada.Postcondición:
Piratas del Espacio: El caso Norby
64
Flujo Normal: - La nave enemiga colisiona con la nave principal.- La vida de la nave principal llega a cero.- La nave principal explota.- El juego termina.- Sale una ventana en la que introduces tu nickname y se guarda tu puntuación en la base de datos.
Flujo Alternativo:
D C 2 - 11 D e s a r r o l l o d e c a s o d e u s o C a r g a r S o n i d o
Cargar Sonido tiene una relación de <include> en el Caso de Uso de Cargar Nivel.
Nombre: Cargar Sonido.Precondición: - Se ha creado una nueva partida.Postcondición:Flujo Normal: - Se gestionará cuándo se necesita, dentro de la partida, reproducir un sonido.
Flujo Alternativo:
D C 2 - 1 2 D e s a r r o l l o d e c a s o d e u s o G e n e r a r S k y b o x
Skybox tiene una relación de <include> en el Caso de Uso de Cargar Nivel.
Piratas del Espacio: El caso Norby
65
Nombre: Generar Skybox.Precondición: - Se ha creado una nueva partida.Postcondición:Flujo Normal: - Se creará la cara norte del cubo.- Se creará la cara sur del cubo.- Se creará la cara este del cubo.- Se creará la cara oeste del cubo.- Se creará la cara superior del cubo.- Se creará la cara inferior del cubo.- Todas las caras tendrán la misma imagen.Flujo Alternativo:
D C 2 - 1 3 D e s a r r o l l o d e c a s o d e u s o G e s t i ó n N i v e l
Gestión Nivel tiene una relación de <include> en el Caso de Uso de Cargar Nivel.
Nombre: Gestión Nivel.Precondición: - Se ha creado una nueva partida.- Se ha creado la nave principal.- Se han empezado a crear las naves enemigas.Postcondición: El nivel terminará.
Piratas del Espacio: El caso Norby
66
Flujo Normal: - Se gestionará cada nivel.
Flujo Alternativo:
D C 2 - 1 4 D e s a r r o l l o d e c a s o d e u s o C r e a r N a v e s
Crear Naves tiene una relación de <include> en el Caso de Uso de Cargar Nivel.
Nombre: Crear Naves.Precondición: - Se ha creado una nueva partida.Postcondición:Flujo Normal: - Se creará la nave precisa para cada momento del juego.
Flujo Alternativo:
D C 3 - 1 D e s a r r o l l o d e c a s o d e u s o M ú s i c a d e N i v e l
Musica de nivel tiene una relación de <extends> en el Caso de Uso de Cargar Sonido.
Piratas del Espacio: El caso Norby
67
Nombre: Música de nivel.Precondición: - Se ha creado una nueva partida.Postcondición:Flujo Normal: - Se reproducirá una canción diseñada para los niveles.
Flujo Alternativo:
Piratas del Espacio: El caso Norby
68
D C 3 - 2 D e s a r r o l l o d e c a s o d e u s o E f e c t o s S o n o r o s
Efectos Sonoros tiene una relación de <extends> en el Caso de Uso de Cargar Sonido.
Nombre: Efectos sonoros.Precondición: - Se ha creado una nueva partida.- La nave ha sido creada.Postcondición:
Piratas del Espacio: El caso Norby
69
Flujo Normal: - Se reproducirán los efectos sonoros acorde a la situación.- Si la nave dispara se reproducirá un sonido de disparo.- Si alguna nave explota se reproducirá un sonido de explosión.- Si se produce una colisión se reproducirá un sonido de colisión.Flujo Alternativo:
D C 3 - 3 D e s a r r o l l o d e c a s o d e u s o D u r a c i ó n N i v e l
Duración Nivel tiene una relación de <extends> en el Caso de Uso de Getión Nivel.
Piratas del Espacio: El caso Norby
70
Nombre: Duración Nivel.Precondición: - Se ha creado una nueva partida.Postcondición: El nivel terminará.
Piratas del Espacio: El caso Norby
71
Flujo Normal: - Se mira si el nivel ha llegado a su límite de tiempo y termina.- Si el nivel aún no ha terminado se actualiza el tiempo restante y se repite la operación anterior.- Cuando el tiempo restante es cero, se pasa al siguiente nivel.
Flujo Alternativo:- Si el tiempo restante es menor que cero, se pasa el siguiente nivel.
D C 3 - 4 D e s a r r o l l o d e c a s o d e u s o G e s t i ó n I A
Gestión IA tiene una relación de <extends> en el Caso de Uso de Getión Nivel.
Piratas del Espacio: El caso Norby
72
Precondición: - Se ha creado una nueva partida.- Se ha creado la nave principal.- Se han empezado a crear las naves enemigas.Postcondición:Flujo Normal: - Para cada tipo de nave se gestionará su IA.
Flujo Alternativo:
D C 3 - 5 D e s a r r o l l o d e c a s o d e u s o C r e a r N a v e P r i n c i p a l
Crear Nave Principal tiene una relación de <extends> en el Caso de Uso de Crear Naves.
Piratas del Espacio: El caso Norby
74
Nombre: Crear Nave Principal.Precondición: - Se ha creado una nueva partida.Postcondición: Se habrá creado la nave principal.
Piratas del Espacio: El caso Norby
75
Flujo Normal: - Se creará la nave principal del jugador.- Se añadirá al grafo de escena.
Flujo Alternativo:- Si no se crea la nave principal se abortará el juego.
D C 3 - 6 D e s a r r o l l o d e c a s o d e u s o C r e a r B o m b a r d e r o
Crear Bombardero tiene una relación de <extends> en el Caso de Uso de Crear Naves.
Piratas del Espacio: El caso Norby
76
Nombre: Crear Bombardero.Precondición: - Se ha creado una nueva partida.- Se ha creado la nave principal.
Piratas del Espacio: El caso Norby
77
Postcondición: Se habrá creado un bombadero.Flujo Normal: - Se creará un Bombardero.- Se añadirá al grafo de escena.
Flujo Alternativo:
D C 3 - 7 D e s a r r o l l o d e c a s o d e u s o C r e a r K a m i k a z e
Crear Kamikaze tiene una relación de <extends> en el Caso de Uso de Crear Naves.
Piratas del Espacio: El caso Norby
78
Nombre: Crear Kamikaze.Precondición: - Se ha creado una nueva partida.- Se ha creado la nave principal.
Piratas del Espacio: El caso Norby
79
Postcondición: Se habrá creado un Kamikaze.Flujo Normal: - Se creará un Kamikaze.- Se añadirá al grafo de escena.
Flujo Alternativo:
D C 3 - 8 D e s a r r o l l o d e c a s o d e u s o C r e a r C l o n
Crear Clon tiene una relación de <extends> en el Caso de Uso de Crear Naves.
Piratas del Espacio: El caso Norby
80
Nombre: Crear Clon.Precondición: - Se ha creado una nueva partida.- Se ha creado la nave principal.
Piratas del Espacio: El caso Norby
81
Postcondición: Se habrá creado un Clon.Flujo Normal: - Se creará un Clon.- Se añadirá al grafo de escena.
Flujo Alternativo:
D C 3 - 9 D e s a r r o l l o d e c a s o d e u s o C r e a r H u n t e r
Crear Hunter tiene una relación de <extends> en el Caso de Uso de Crear Naves.
Piratas del Espacio: El caso Norby
82
Nombre: Crear Hunter.Precondición: - Se ha creado una nueva partida.- Se ha creado la nave principal.Postcondición: Se habrá creado un Hunter.
Piratas del Espacio: El caso Norby
83
Flujo Normal: - Se creará un Hunter.- Se añadirá al grafo de escena.
Flujo Alternativo:
Priorización de casos de uso
1. Nueva Partida
1. Crear Nave Principal2. Salir (en juego)3. Controlar la Nave4. Arriba5. Abajo6. Izquierda7. Derecha8. Trompo izquierda9. Trompo derecha10.Cargar Nivel11. Generar SkyBox12. Crear Naves13. Crear Bombardero14. Crear Kamikaze 15. Crear Hunter16. Crear Clón17. Gestión IA18. Disparar19. Colisionar con nave enemiga20. Morir21. Ser disparado 22. La Nave colisiona con enemigo23. Pausa24. Gestión elementos del HUD25. Gestión del Nivel26. Duración Nivel27. Ganar Partida28. Guardar Puntuación29. Cargar Sonido30. Música de Nivel
Piratas del Espacio: El caso Norby
84
31. Efectos sonoros2. Menú
1. Salir2. Ver puntuación3. Ver Controles4. Atrás5. Cargar Sonido
Piratas del Espacio: El caso Norby
85
Glosario
1. SimpleGame
Es una clase que permite un rápido funcionamiento de un juego en Jmonkey, un prototipo con todas las funcionalidades básicas.
2. DisplaySystem Provee una forma de conectarse con el sistema de ventanas.
3. BaseGame: Es una clase que tiene una serie de métodos que se repiten en un bucle infinito en este orden:
a. initSystem(): En este método se llaman y crean los hilos oportunos (en nuestro caso no realizaremos programación multi-hilos). También se inicializa Display System o se lanzará una excepción.
b. InitGame(): Se llama despues de que termine initSystem(). Aquí es donde el grafo de escena se carga y donde se inicializa el juego.
c. Update(float): Se llama con un argumento cuyo valor es -1.0F. Este valor no tiene sentido mientras la CPU y la tarjeta gráfica puedan trabajar sin problemas. Éste método se encarga de actualizar el programa.
d. Render(float): El argumento es lo mismo que en el método Update(float). Éste método se encarga de renderizar el grafo de escena.Thread.yield(): Si existe otro proceso, éste método lo invoca.Si el juego no ha terminado se volvería al método Update(float).
e. CleanUp(): Cuando el juego está acabando se llama a este método. Aquí se implementa la limpieza.
f. Quit(): Éste método se invoca cuando el juego está terminando y si no hay otro proceso pendiente se llama al método exit() y se sale de la ejecución.
4. Quaterniones: Son un subconjunto de números hipercomplejos que sirven para rotar un objeto en el espacio 3D. Sus cuatro valores se miden en radianes.
5. Renderizar: Dibujar un objeto en la pantalla del juego.
Piratas del Espacio: El caso Norby
101
6. Grafo de escena: Es el grafo donde se irán añadiendo nodos. Ese grafo se renderizará en pantalla.
7. Main-game-loop: El bucle principal del juego consiste en actualizar tan rápido como sea posible el grafo de escena y hacer todos los cálculos necesarios para su actualización. Es de vital importancia que el bucle sea rápido, consistente y continuo. El bucle principal del juego se divide en varias fases:
a. Inicialización: Esta fase tiene la función de inicializar los requisitos básicos para el funcionamiento del programa.
b. Actualización: Esta fase es muy importante ya que se utiliza para actualizar los valores necesarios para actuar frente a posibles cambios en el programa. Suele utilizar una variable tiempo. En esta fase se introducen los métodos necesarios para el manejo de los controles, la cámara (en el caso de que se mueva durante el juego), nuevos objetos o cualquier otra actualización.
c. Dibujo: En esta fase se renderizan todos los objetos o nodos del grafo de escena.
d. Limpieza: Se eliminan los nodos necesarios del grafo de escena. Sin embargo, si se usa para finalizar el programa se utiliza para guardar los valores necesarios antes de cerrar el programa.
8. Bounding Box: Es un cubo con todos sus vértices, el cual nos permite un nivel alto de velocidad en cálculos y en el que se encapsulan algunos objetos.
9. Vector3f: es un vector de 3 coordenadas.
10. Camera: la cámara es una forma de dibujar en pantalla solamente los objetos que se precisan ver en un determinado momento. La cámara tiene una dirección, una posición con respecto a la izquierda y otra posición respecto a la altura.
11. ChaseCamera: es la funcionalidad de la cámara que permite que la cámara siga al jugador.
12.Frustum Culling: cuando usamos frustum culling conseguimos que los objetos no focalizados por la cámara no se tengan que tener renderizados y así los recursos no estarán tan sobrecargados.
13.InputSystem: Aquí están implementados el ratón, el teclado o el joystick.
14.InputHandlers: Son los eventos que sirven como controles a la disposición del jugador.
15.Texture: define un tipo de dato en un objeto de JME. Ésta encapsulación permite cargar la textura de una figura geométrica o modelo 3D.
Piratas del Espacio: El caso Norby
102
16.TextureState: define un RenderState que maneja un Texture para un Spatial.
17.RenderState: define las cualidades de una figura geométrica del grafo de escena.
18.Spatial: es la clase básica de un objeto que se encuentra en un nodo del grafo.
19.SkyBox: es una técnica que permite crear la ilusión de que el entorno 3D es infinito. Para ello es necesario utilizar 6 imágenes que se colocan en las 6 caras de un cubo. Éste cubo tiene una posición relativa a la cámara de manera que la cámara siempre está dentro del cubo.
20.ZbufferState: es una clase que permite que los objetos más cercanos se rendericen por encima de los más alejados, de forma que las partes de un objeto que se encuentren detrás de otro no se puedan ver.
21.RenderQueue: es una cola de objetos renderizados que contiene los objetos ordenados para ser renderizados en el siguiente orden: objetos opacos, la parte interior de los objetos traslúcidos, la parte externa de los objetos traslúcidos y objetos ortogonales.
22.SharedMesh: es muy útil para renderizar varias instancias del mismo objeto. De esta forma podemos tener un sólo objeto, pero renderizado tantas veces como se quiera. Es muy útil ya que no es necesario repetir código si tenemos que introducir varios objetos de las mismas características.
23.Third Person Handler: Son los controles manejados por el usuario en tercera persona.
24.Tipos de Shapes:
a. Arrow
b. Axis Rods
c. Box
d. Rounded Box
e. Capsule
f. Cone
g. Cylinder
h. Disk
Piratas del Espacio: El caso Norby
103