ESPECIFICACIÓN, DISEÑO E IMPLANTACIÓN DE UN PROTOTIPO FUNCIONAL DE UN VIDEOJUEGO EN 3D Carlos Ivan Rivera Parra Juan Jacobo Cruz Mejía Universidad EAN Facultad de Ingeniería Ingeniería de Sistemas Bogotá 2011 Especificación, diseño e implantación de un prototipo funcional de un videojuego en 3D Carlos Ivan Rivera Parra Juan Jacobo Cruz Mejía Monografía Sandra Cristancho Ingeniera De Sistemas Universidad EAN Facultad de Ingeniería Ingeniería de Sistemas Bogotá 2011 Nota de aceptación: ______________________________ ______________________________ ______________________________ ______________________________ ______________________________ ______________________________ ______________________________ Firma del Presidente del Jurado ______________________________ Firma del Jurado ______________________________ Firma del Jurado Bogotá 5 de diciembre de 2011 4 DEDICATORIA A los estudiantes que tienen el sueño de crear un videojuego y creen que es una tarea muy complicada les mostramos que las herramientas necesarias para hacerlo las encuentran a su alrededor, ya sea en internet, bibliotecas o con los conocimientos de otros compañeros, pero lo más importante es la pasión, deseo y compromiso que le dediquen a su proyecto. ¡¡Animo!! A los profesores para que motiven, apoyen y se involucren en el desarrollo de este tipo de sistemas, ya que ustedes son una base de conocimiento y de experiencias que pueden hacer de los procesos de investigación y desarrollo, algo más sencillo, estructurado, mejor documentado y de gran aplicabilidad de la ingeniería. 5 AGRADECIMIENTOS A mi mamá Myriam Mejía, mi papá Enrique Cruz y mi hermana Fernanda Cruz Mejía, que se preocuparon en cada momento por mi bienestar y por el desarrollo que tenía en mi tesis, dándome siempre esas frases de apoyo que hasta el momento me han levantado de cada caída que he tenido, volviéndome una persona más estructurada personal y académicamente. A Álvaro Cuervo que me dio las bases de mi carrera, que hasta el momento han hecho que todo sea sencillo, mostrándome seguridad del por qué elegí esta carrera y un gran apoyo. A Ivan A. David Venegas que no solo nos apoyó tanto en la carrera como en las ganas de seguir aprendiendo sino que nos empujó siempre hacia adelante mostrando que somos capaces de mucho mas, que siempre estuvo ahí para nosotros sin importar que día de la semana fuera, ni que es lo que estuviera haciendo, siempre dispuesto a enseñarnos; si no sabía algo lo averiguaba o nos explicaba como averiguarlo. A Luis Daniel Benavides que siempre fue en busca de darnos de la mejor manera el conocimiento necesario para salir bien preparados. Además de siempre estar a favor de nosotros apoyándonos en el mejoramiento de la educación que nos brinda la universidad. A Juan David Ospina que fue nuestro apoyo en los últimos semestres de nuestra carrera, ayudándonos en todo lo que necesitáramos, fue un buen coach en las maratones de programación dándonos buenos consejos y siempre apoyándonos, fue quien nos mostró que el crecimiento no está basado en el competir contra otros, sino en cada día ser mejor. A Juan Da. Poveda que logro plasmar nuestras ideas en las ilustraciones que hoy son los personajes del juego. A Nicolás Andrés Skuall que nos colaboró pasando una ilustración de nuestros personajes a un modelo en 3D con animaciones propias A Juan Carlos Pineda que fue quien nos mostró las bases del manejo de la herramienta que usamos para la elaboración del juego “warvage”. A Ivan Chacon que fue un gran apoyo grandísimo en la elaboración de este proyecto, compañero de universidad que nos colaboró con la construcción del prototipo. Juan Jacobo Cruz Mejía 6 A mis padres Martha Patricia Parra R, Martin Alonso Rivera R y mi hermana Paula Catherine Rivera Parra quienes siempre estuvieron interesados en ayudarme a desarrollar mis metas, apoyándome y aconsejándome en el proceso para culminar este proyecto y todos los propuestos en el transcurso de mi vida, gracias por su compañía, comprensión y colaboración. A Álvaro Cuervo quien inicio mi formación académica dándome las bases de conocimiento solidas que impulsaron e incrementaron el interés por mi carrera y me permitieron adquirir los conceptos necesarios que hicieron de mi formación clara y objetiva. A Ivan David Venegas que compartió su amplio conocimiento con nosotros, ayudando a adquirir y descubrir nuestras habilidades, una de las personas que más contribuyó a mi desarrollo profesional, también por preocuparse siempre por ofrecer excelente calidad de educación a sus estudiantes, enseñándonos a dar siempre más de nosotros para cumplir nuestros objetivos. A Luis Daniel Benavides quien incentivo mis aptitudes investigativas y apoyó el desarrollo de conocimiento en mis temas de interés brindándome un apoyo metodológico para orientar mi conocimiento adquirido y ampliar la visión de mi educación, preocupado siempre por el mejoramiento de la calidad de la educación que nos ofrecía la universidad. A Juan David Ospina por acompañarnos en el desarrollo de nuestros proyectos y mostrarse interesado en impulsar nuestras iniciativas dando lo mejor de sí tal como lo demostró como coach en las maratones de programación y en la parte inicial de este proyecto. Agradezco a Ivan Leonardo Chacón compañero de la universidad por el apoyo y colaboración brindada en el desarrollo y construcción del prototipo y sus consejos profesionales aplicados al proyecto, un buen compañero y gran persona. A Juan Carlos Pineda quien nos dio las bases de conocimiento sobre la herramienta utilizada para el desarrollo del prototipo del proyecto, mostrándonos el camino necesario para aprovechar las utilidades de la herramienta. A Juan Da. Poveda por ser capaz de graficar y proyectar nuestras ideas y crear los personajes que integran el juego. A Nicolas Andres Skuall por su esfuerzo y dedicación para modelar y animar el subara mercuriano presente en el juego Carlos Ivan Rivera Parra 7 GLOSARIO API: (Aplication programing interface) grupo de rutinas que definen como invocar desde un programa un servicio que estos prestan, es un medio de comunicación entre componentes de un software1 Blueprints: planos de una ilustración donde se muestra la imagen del objeto en diferentes posiciones, para que un modelador pueda observar en su totalidad la ilustración sin que se le escape ningún detalle. Gameplay : termino comúnmente usado para darle una calificación de calidad de experiencia que da un jugador sobre respectivo juego, también se encuentra nombrado en el juego cuando este da un puntaje al jugador basado en la experiencia de la interacción del jugador con el juego .2 Grafos: conjunto de puntos que llaman vértices que pueden estar conectados por medio de unas líneas las cuales llaman aristas.3 Inteligencia artificial: término usado para referirse a la ciencia de la computación que busca por medio de artefactos creados por humanos intentar simular la inteligencia humana, esta rama ha tenido numerosas aplicaciones una de estas es en los videojuegos. 4 Networking: red de contactos profesionales usada para darnos a conocer, aprender y escuchar de otros, aquí puedes intercambiar información para encontrar nuevos compañeros de trabajo o hacer contactos.5 Opening: terminado usado para referirse al cortometraje de un videojuego al principio de este, donde normalmente se intenta ubicar al jugador más en la historia del juego. 1 (ALEGSA) 2 (webopedia) 3 (matediscreta) 4 (ECURED, 2011) 5 (Marquez telecom s.a, 2007) 8 Renderizar: proceso de generar una imagen desde un modelo, más específicamente en términos de visualización de en un computador, es el proceso de cálculos complejos hechos por un ordenador para generar una imagen en 2D a partir de una escena en 3D; esta palabra viene del término en inglés “render” que en el español no tiene un verbo que se le parezca.6 Script: conjunto de instrucciones guardadas en un archivo binario para que puedan ser ejecutadas, normalmente estas se ejecutan línea por línea; scripts comunes son los que se usan para el desarrollo de una página web los cuales se usan los scripts HTML, XML, php y javascript.7 Shooters: palabra en ingles del término “disparos” tipo de juego ya sea en primera persona o en tercera persona, donde se usan armas, normalmente violentos. Sprites: imagen gráfica usualmente animada en dos dimensiones, usando el modo de pintado en pequeños cuadros 8 FPS (Frames per Second): un frame es un fotograma o imagen que se encuentra dentro de una secuencia que construye una animación por su continua sucesión, estos poseen una frecuencia que representa el número de fotogramas por segundo para dar la idea de que es una animación.9 6 (ECURED, 2011) 7 (ALEGSA) 8 (Yuan Works, 2008) 9 (Cámaras de seguridad Uruguay) 9 CONTENIDO INTRODUCCIÓN ................................................................................................... 15 1. PLANTEAMIENTO DEL PROBLEMA ............................................................. 16 2. FORMULACIÓN DEL PROBLEMA ................................................................. 20 3. DESCRIPCIÓN DEL PROBLEMA ................................................................... 21 4. OBJETIVOS .................................................................................................... 24 4.1.1. Objetivo general ................................................................................. 24 4.1.2. Objetivos específicos ......................................................................... 24 5. PROPÓSITO ................................................................................................... 25 6. MARCO TEÓRICO .......................................................................................... 26 6.1. Marco conceptual ..................................................................................... 26 6.1.1. Aspectos generales del desarrollo de los videojuegos ....................... 26 6.1.2. Procesos de escritura y desarrollo ..................................................... 31 6.1.3. Detección de colisiones ...................................................................... 36 6.1.4. Inteligencia artificial ............................................................................ 39 6.1.5. Teoría de grafos ................................................................................. 40 6.1.6. ¿Qué es un motor de videojuegos? ................................................... 45 6.2. Producción de animación digital y videojuegos en el ámbito mundial ...... 46 6.2.1. Modelos .............................................................................................. 46 7. MARCO DE REFERENCIA ............................................................................. 50 7.1. VideoJuegos FPS (First Person Shooters) ............................................... 50 7.1.1. Descripción ........................................................................................ 50 7.1.2. Características ................................................................................... 50 7.2. Motores ..................................................................................................... 53 7.2.1. UDK (Unreal Development Kit) .......................................................... 53 7.2.2. Unity 3 ................................................................................................ 55 7.2.3. Cryengine ........................................................................................... 58 7.3. Herramientas de modelado y animación ................................................... 59 7.3.1. Autodesk 3DS MAX Studio ................................................................ 59 7.3.2. Blender ............................................................................................... 61 8. METODOLOGÍA GENERAL DE DESARROLLO ............................................ 63 8.1. Modelo Espiral .......................................................................................... 63 8.2. Modelo Extreme programming (XP).......................................................... 64 10 9. METODOLOGÍA ESPECÍFICA ....................................................................... 65 10. PRESENTACIÓN ......................................................................................... 66 11. ARQUITECTURA DEL PROTOTIPO ........................................................... 67 11.1. Especificación de requerimientos .......................................................... 67 11.2. Requerimientos no funcionales ............................................................. 71 11.3. Diagramas de clases ............................................................................. 74 11.4. Casos de uso ......................................................................................... 78 11.4.1. Diagrama de casos de uso ............................................................. 78 11.4.2. Especificación casos de uso ........................................................... 79 11.4.3. Diagrama de secuencias................................................................. 86 12. DISEÑO DEL JUEGO .................................................................................. 90 12.1. Definición temática del juego ................................................................. 90 12.1.1. Temática ......................................................................................... 90 12.2. Definir plataforma .................................................................................. 91 12.2.1. Interacciones con el jugador ........................................................... 91 12.3. Escribir concepto de la historia .............................................................. 93 Capítulo 1 - El comienzo de todo .................................................................... 93 Capítulo 2 - La mala decisión .......................................................................... 94 Capítulo 3 - Efectos de una mala decisión ...................................................... 94 Capítulo 4 - Una nueva esperanza .................................................................. 96 Capítulo 5 - Problemas .................................................................................... 96 Capítulo 6 - Cambios ....................................................................................... 97 Capítulo 7 - Primera prueba ............................................................................ 97 Capítulo 8 - El comienzo ................................................................................. 98 Capítulo 9 - El plan .......................................................................................... 99 Capítulo 10 - La variación del plan .................................................................. 99 Capítulo 11 - Continuando con el plan .......................................................... 100 Capítulo 12 - Por el todo o por el nada: ......................................................... 101 Capítulo 13 - A unos pasos de la total victoria .............................................. 101 12.4. Establecer personajes y describirlos ................................................... 102 12.4.1. Nohumas ....................................................................................... 102 12.4.2. Subaras (Enemigos) ..................................................................... 104 12.5. Definir niveles y escribir diálogos ........................................................ 106 11 12.5.1. Niveles del juego propuestos ........................................................ 106 12.5.2. Nivel del prototipo ......................................................................... 106 12.6. Descripción escenario: ........................................................................ 109 12.7. Realizar Bocetos de personajes y escenarios ..................................... 110 12.7.1. Caivan ........................................................................................... 110 12.7.2. Jack .............................................................................................. 111 12.7.3. Suyana - nave ............................................................................... 113 12.7.4. Mercuriano .................................................................................... 115 12.7.5. Plomoriano .................................................................................... 118 12.8. Modelado de personajes y escenarios ................................................ 120 12.8.1. Mercuriano .................................................................................... 120 12.9. Programar lógica del juego .................................................................. 124 12.9.1. Comportamientos Inteligencias artificiales subaras ...................... 124 12.10. Diseñar y programar interfaces de usuario ...................................... 127 12.10.1. Menú Unity: ................................................................................... 127 12.10.2. Menú principal ............................................................................... 129 12.10.3. HUD y menú pausa ....................................................................... 130 13. CONCLUSIONES ...................................................................................... 132 14. RECOMENDACIONES .............................................................................. 133 15. BIBLIOGRAFÍA .......................................................................................... 134 12 TABLA DE IMÁGENES Imagen 1 El tamaño de la industria ................................................................................................................. 17 Imagen 2 Cadena de valor del desarrollo de videojuegos ................................................................................. 22 Imagen 3 Proporción de empresas en el sector ADVJ ....................................................................................... 22 Imagen 4 Proceso Desarrollo de videojuegos ................................................................................................... 27 Imagen 5 Historia y experiencia de juego Lineales............................................................................................ 33 Imagen 6 Historia lineal – experiencia del juego no lineal ................................................................................ 33 Imagen 7 historia y experiencia del juego No lineales ...................................................................................... 34 Imagen 8 Experiencia del juego Lineal con dos historias distintas ................................................................... 34 Imagen 9 Experiencia lineal sin historia lineal .................................................................................................. 35 Imagen 10 historia con inicio y desenlace lineal pero con un nudo no lineal .................................................... 35 Imagen 11 Composición de figuras en OpenGL sin detección de colisiones ...................................................... 36 Imagen 12 Error en detección de colisiones en el juego NFSU (need for speed underground) ......................... 37 Imagen 13 ejemplo detección de colisiones en el videojuego GT5 (Gran turismo 5)....................................... 37 Imagen 14 ejemplo de colisiones a nivel detallado ........................................................................................... 38 Imagen 16 FPS wolfenstein 3D .......................................................................................................................... 51 Imagen 17 FPS Doom ........................................................................................................................................ 52 Imagen 18 FPS Halo........................................................................................................................................... 52 Imagen 19 FPS Call of Dutty .............................................................................................................................. 53 Imagen 20 Logo Motor Unreal .......................................................................................................................... 53 Imagen 21Logo Unity ........................................................................................................................................ 55 Imagen 21 Logo cryENGINE 3 ............................................................................................................................ 58 Imagen 22 Logo 3Ds Max estudio ..................................................................................................................... 59 Imagen 23 Videojuego Dance Central .............................................................................................................. 60 Imagen 24 Diagrama de clases primera iteración............................................................................................. 74 Imagen 25 Diagrama de clases segunda iteración ............................................................................................ 75 Imagen 26 Diagrama de clases tercera iteración .............................................................................................. 76 Imagen 27 Diagrama de clases ultima iteración ............................................................................................... 77 Imagen 28 Diagramas de Casos de uso ............................................................................................................. 78 Imagen 29 Diagrama secuencia iniciar juego ................................................................................................... 86 Imagen 30 Diagrama secuencia iniciar salir juego ............................................................................................ 86 Imagen 31 Diagrama de secuencia Jugar ......................................................................................................... 87 Imagen 32 Diagrama de secuencia Pausar juego ............................................................................................. 88 Imagen 33 Diagrama de secuencia Reanudar juego ......................................................................................... 88 Imagen 34 Diagrama de secuencia Salir juego desde el menú Pausa ............................................................... 89 Imagen 35 Controles Movimiento personaje principal ..................................................................................... 92 Imagen 36 Movimiento Visión Cámara personaje Principal ............................................................................. 92 Imagen 37 Comandos Extra personaje Principal ............................................................................................... 93 Imagen 38 Cara del personaje Caivan ............................................................................................................. 110 Imagen 39 Blueprint cara del personaje Caivan .............................................................................................. 111 Imagen 40Blueprint cuerpo completo personaje Caivan ................................................................................ 111 Imagen 41 Cara del personaje Jack ................................................................................................................. 112 Imagen 42 Blueprint cara del personaje Jack .................................................................................................. 112 Imagen 43 Blueprint cuerpo completo personaje Jack .................................................................................... 113 Imagen 44 Boceto #1 nave Suyana ................................................................................................................ 113 Imagen 45 Boceto #2 nave Suyana (algunos cambios) ................................................................................... 114 Imagen 46 Blueprint nave Suyana a blanco y negro ....................................................................................... 114 Imagen 47 Blueprint nave Suyana a Color ...................................................................................................... 115 Imagen 48 Boceto#1 Mercuriano Cuerpo completo ........................................................................................ 115 13 Imagen 49 Boceto#2 Mercuriano cabeza ........................................................................................................ 116 Imagen 50 Boceto#3 Mercuriano Cuerpo completo ........................................................................................ 116 Imagen 51 Boceto#4 Mercuriano Comentarios al ilustrador .......................................................................... 117 Imagen 52 Blueprint Mercuriano Cuerpo Completo blanco y negro ............................................................... 117 Imagen 53 Blueprint Mercuriano Cuerpo Completo Color .............................................................................. 118 Imagen 54 Boceto #1 Plomoriano ................................................................................................................... 118 Imagen 55 Boceto#2 plomoriano comentarios al ilustrador ........................................................................... 119 Imagen 56 Boceto#3 plomoriano cuerpo completo ........................................................................................ 119 Imagen 57 blueprints plomoriano cuerpo completo blanco y negro .............................................................. 120 Imagen 58 Blueprints plomoriano cuerpo completo a color ........................................................................... 120 Imagen 59 Modelado 3D #1 Mercuriano Cabeza ............................................................................................ 121 Imagen 60 Modelado 3D #2 Mercuriano Cuerpo completo ............................................................................ 121 Imagen 61 Modelado 3D #3 Mercuriano Cabeza de perfil .............................................................................. 122 Imagen 62 Modelado 3D Mercuriano Textura cuerpo .................................................................................... 122 Imagen 63 Modelado 3D Mercuriano terminado frente ................................................................................. 123 Imagen 64 Modelado 3D Mercuriano terminado brazos ............................................................................... 123 Imagen 65 Modelado 3D Mercuriano terminado espalda .............................................................................. 124 Imagen 66 Diagrama de estado enemigo patrullero ...................................................................................... 125 Imagen 67 Diagrama de estado directo enemigo ........................................................................................... 126 Imagen 68 Diagrama de estado algoritmo A* ................................................................................................ 127 Imagen 69 Menú Unity pestaña Graphics ....................................................................................................... 128 Imagen 70 Menú unity Pestaña Input ............................................................................................................. 129 Imagen 71 Menú Principal .............................................................................................................................. 130 Imagen 72 HUD y Menú de Pausa ................................................................................................................... 131 14 TABLAS Tabla 1 Características del sector digital y videojuegos en Bogotá .................................................................. 23 Tabla 2 RF Tener interacción con el teclado ...................................................................................................... 67 Tabla 3 RF Tener interacción con el mouse ....................................................................................................... 67 Tabla 4 RF Manejar colisiones con un comportamiento físico .......................................................................... 68 Tabla 5 RF Controlar inteligencia artificial para el comportamiento de los enemigos del personaje ............... 68 Tabla 6 RF Manejar efectos de audio para las interacciones del jugador con el videojuego ............................ 69 Tabla 7 RF iniciar partida .................................................................................................................................. 69 Tabla 8 RF Mostrar puntaje del jugador ........................................................................................................... 70 Tabla 9 RF Mostrar estado de energía, vida y municiones ................................................................................ 70 Tabla 10 RNF Modelar personajes con más de 7000 plígonos .......................................................................... 71 Tabla 11 RNF Crear las texturas de los escenarios ............................................................................................ 71 Tabla 12 Modelar los escenarios con más de 60.000 polígonos ....................................................................... 72 Tabla 13 Exportar todos los modelos en formato FBX ...................................................................................... 72 Tabla 14 Crear las texturas en formato PNG ..................................................................................................... 73 Tabla 15 Caso de uso Iniciar partida ................................................................................................................. 80 Tabla 16 Caso de Uso Jugar al juego ................................................................................................................. 82 Tabla 17 Caso de Uso Pausar juego .................................................................................................................. 82 Tabla 18 Caso de uso Reanudar Juego .............................................................................................................. 83 Tabla 19 Caso de Uso Detener Partida .............................................................................................................. 84 Tabla 20 Salir del Juego ..................................................................................................................................... 85 15 INTRODUCCIÓN Los videojuegos son uno de los productos que reportan más ventas en el mundo; esta industria ha tenido un crecimiento exponencial en los últimos años convirtiéndose en uno de los negocios más rentables de la época. Las empresas más competitivas y grandes en el mercado de la tecnología en los últimos años han implementado un modelo para su crecimiento, basado en licenciamiento gratuito, el cual permite usar unas características básicas del software. Empresas en la industria de los videojuegos como Crytek con el motor de juegos CryEngine, EpicGames con UDK, Unity con Unity3, Microsoft con XNA, Blender, entre otros, implementan este modelo con el cual impulsan a la creación de nuevas ideas tanto en el desarrollo de juegos como en la evolución de sus mismos motores. Este proyecto muestra el proceso de desarrollo de videojuegos implementando los motores mencionados junto con herramientas de diseño, modelado y animación en 3D, como 3DsMax, Blender y Maya. Se elabora un prototipo de un videojuego llamado “warvage” producto de las fases del proceso utilizando las herramientas seleccionadas para generarlo. . 16 1. PLANTEAMIENTO DEL PROBLEMA El mercado de los videojuegos se ha convertido en uno de los mercados con más utilidades; ya ha superado al cinematográfico en varios países, como se muestra en la Imagen 1, sabiendo que este tiene un limitante en sus características de comercialización y mercadeo, ya que sus ingresos provienen de la venta en tiendas y fábricas. Después puede incrementarlo vendiendo periféricos específicos para los juegos, suscripciones en línea para descarga de contenido, desarrollo de torneos y convenciones, como el E3expo 10 , en comparación con la industria cinematográfica, que gana dinero por medio de la venta en taquillas, por la venta en formatos como DVD y blue ray y pago de derechos de autor por reproducción en cadenas de televisión. La industria de los videojuegos ha comenzado a dar unos pasos contundentes en Latinoamérica. Empresas como Microsoft, Nintendo y Sony han expresado en comunicados y en sus movimientos para entrar en el mercado latino que se ve un crecimiento que no se ha visto en ningún lado. No solo ven el potencial en la compra de sus productos, sino en el desarrollo de videojuegos para consolas y móviles en países como Argentina, México, Colombia y Brasil. 11 Estas grandes empresas ya tienen locales en centros comerciales importantes de cada país y muestran su dedicación trayendo casi al mismo tiempo que se lanzan al mercado juegos y accesorios para venderlos, además de ver ya publicidad en las calles, propagandas en televisión y páginas dedicadas para las comunidades latinas.12 Actualmente, el mercado de los videojuegos se apoya en diferentes herramientas para su desarrollo, las cuales facilitan y hacen que la creación de videojuegos no sea tan compleja y costosa para las empresas jóvenes y pequeñas en el mercado. Unas de estas herramientas son los motores de videojuegos, que son bastantes útiles en todo el proceso producción y post-producción de un juego. Algunas de las grandes compañías de videojuegos han liberado sus motores para que el público las pueda usar y desarrollar sus propios proyectos; inclusive algunos están disponibles de forma gratuita, pero con algunas limitantes en cuanto a funcionalidades, las cuales no generan un impacto significativo en el uso del motor. 10 (entertaiment software association) 11 (Tamanini, 2011) 12 (Iregui, 2010) 17 Imagen 1 El tamaño de la industria 13 Gracias a estas herramientas, en diferentes países se ha visto pleno crecimiento de esta industria en la que cada día se generan nuevas empresas que están adquiriendo más reconocimiento, tales como:  Inmersión Game (Colombia)  Interactiu (Colombia)  Fair Play Labs (Costa Rica)  Blue Lizard Games (Ecuador)  SouthLogic studios (Brasil)  Bamtang (Peru)  Wanako Games (Chile)  Powerfull robots (Uruguay)  TeraVision Games (Venezuela)  Sabarasa (Argentina y Mexico) 13 Recuperado el 03 de Octubre de 2011 de http://www.bajaki.com/imagens/materias/525/65008.jpg 18 Esta situación ha dado paso a que entidades gubernamentales ya empiecen a enfocarse en la promoción e incremento de esta industria, por ejemplo en Colombia, Tecno Parque actualmente ha hecho una inversión de 203 millones de pesos para construir un parque tecnológico en Medellín14. Colombia tiene una historia de avance en la industria de la animación, que viene desde el siglo XX, la cual, en sus primeros pasos, viene en cortometrajes, comerciales animados y series conocidas de dibujos animados, tales como:  Garras de Oro (Cali Films 1926)  Magicolor  El siguiente programa  Bolívar el Héroe  Cuatro extraños en DC  Los comerciales de Factor X  Pequeñas voces (2010) Cabe mencionar que la animación también se aplica para el diseño arquitectónico y aquí en Colombia existen empresas que se encargan de hacer este tipo de trabajo, como es la empresa “Zero Fractal”, fundada en 1998, que ofrece servicios de render arquitectónico que con su constante preocupación por la investigación y desarrollo ayudó a desarrollar videojuegos. La animación en Colombia, en los últimos años, ha tomado el camino de los videojuegos mostrando grandes avances; pero se debe tomar en cuenta que se necesita de muchos más componentes para un buen desarrollo de un videojuego como lo son Inteligencia artificial, cinemática, una buena historia y muchos otros más. Para la creación de un videojuego no se ha desarrollado una metodología específica, por cuestiones de la discusión que se tiene sobre el uso de algunas que se implementan en el desarrollo de proyectos informáticos y el diferente nivel de complejidad que tiene la creación de un videojuego. Aunque es posible apoyarse en las metodologías que se usan en proyectos informáticos, los ingenieros creaban sus propios diseños de desarrollo con los que empezaban un 14 España Daniel http://www.larepublica.com.co [En línea]. - La Republica, 03 de 06 de 2010. - 10 de Febrero de 2011. – http://www.larepublica.com.co/archivos/TECNOLOGIA/2010-06-03/tecnoparque- de-203000-millones-en-medellin_101845.php. 19 estándar creado por si mismos o utilizaban el de otros desarrolladores; en estos tiempos aparecieron los llamados arquitectos de software, que utilizan un lenguaje estándar para todos los ingenieros de software para detallar software de alto y bajo nivel.15 El uso de diagramas UML, especificación de casos de uso y otros aspectos de la ingeniería de software son herramientas que pueden ser aplicadas para el desarrollo de numerosas partes del desarrollo de un videojuego, ya que este puede verse como un proyecto de software con componentes especiales. En el mercado de los videojuegos se ha incrementado el lanzamiento de motores que facilitan el desarrollo de los videojuegos en cada uno de sus componentes y algunos son gratuitos con algunas limitaciones que al momento de desarrollar no son tan significantes. 15 INGENIERIA DE SOFTWARE - UNA PERSPECTIVA ORIENTADA A OBJETOS BRAUDE ERIC J. 20 2. FORMULACIÓN DEL PROBLEMA ¿Cómo el proceso de desarrollo de un videojuego apoyado en diferentes tecnologías facilita su creación? 21 3. DESCRIPCIÓN DEL PROBLEMA El desarrollo de videojuegos involucra y aplica varios conceptos de diferentes áreas de conocimiento, como son el diseño, ingeniería, música, matemáticas, física, literatura, psicología y cine. Cada una de estas áreas aporta en el proceso de la creación de un videojuego de alta calidad en cuanto a contenido y funcionalidad. Actualmente existen diferentes herramientas usadas por cada una para el desarrollo de sus funciones; estas herramientas pueden ser aprovechadas y utilizadlas en la industria de los videojuegos para tener creaciones sorprendentes y a un menor costo de producción. Los videojuegos tienen un gran componente gráfico, que es el mayor atractivo del juego; este es uno de los componentes más importantes, porque es el que interactúa directamente con el usuario, razón por la cual el diseño es complejo y se realiza apoyándose en varias herramientas para las diferentes etapas del proyecto. Para el componente gráfico, se utilizan herramientas de modelado de objetos en 3D, edición y creación de imágenes, herramientas de texturizado y efectos; gracias a estas herramientas tecnológicas el trabajo de diseño se hace más práctico, rápido y de mejor calidad. De igual manera, el componente musical se genera mediante herramientas de producción de audio digital y efectos de sonido. Uno de los factores para que un juego sea exitoso y atractivo al público radica en su nivel de realismo, basado en las imágenes, componentes gráficos, interacción del jugador con el escenario y la historia y el comportamiento de los objetos del juego. Para lograr el comportamiento de los objetos se usan algoritmos basados en el conocimiento de ciencias físicas y matemáticas. Para poder desarrollar estos algoritmos y que no sea una tarea demasiado compleja, se utilizan diferentes entornos de desarrollo, los cuales ponen a disposición librerías que se pueden aplicar con el propósito de reducir el tiempo de su desarrollo. Estos comportamientos muchas veces se componen de diferentes algoritmos ya creados, que están disponibles para que el desarrollador las utilice y defina las diferentes interacciones que son manejadas con estructuras de datos. Uno de los más utilizados son los de búsqueda los cuales modelan el problema que se va a resolver en grafos o árboles para darle una solución óptima. La creación de videojuegos incluye muchos componentes los cuales deben ser ensamblados, esta se hace una tarea compleja y de bastante trabajo en el cual el 22 ingeniero debe ser muy organizado y cuidadoso, para presentar un producto final hecho de la colaboración de muchas partes (ver Imagen 2). Para hacer esta tarea fácil, rápida, segura, organizada y de calidad existen motores de desarrollo de videojuegos los cuales permiten ensamblar y probar el juego en tiempo de desarrollo, un motor de videojuegos tiene la capacidad para controlar las características de los juegos como lo son física, lenguaje de programación, estructuras de datos, matemáticas, networking, scripting, inteligencia artificial, API gráficas y API de sonido y música. Imagen 2 Cadena de valor del desarrollo de videojuegos 16 Estas herramientas son las utilizadas por las grandes compañías de videojuegos para la creación de sus productos, gracias a estas la industria de los videojuegos está teniendo un crecimiento más rápido ya que las compañías pueden crear nuevos productos en tiempos más cortos y con mejor calidad, esto hace que también se incremente las inversiones y la generación de nuevas ideas de pequeños desarrolladores, debido a esto la industria se encuentra segmentada en 2 partes, los desarrolladores y los publicadores, ambos representan un papel clave en la industria, los publicadores se encargan de patrocinar el desarrollo de un juego y su mercadeo, el desarrollador tiene el papel de la creación del juego y se basa en las condiciones que ponga el publicador para producir sus videojuegos.17 Imagen 3 Proporción de empresas en el sector ADVJ 18 16 The Video Game Industry an Industry Analysis, from a VC Perspective / Nik Shah T’05 / MBA Fellows Project 17 The Video Game Industry an Industry Analysis, from a VC Perspective / Nik Shah T’05 / MBA Fellows Project 18 DIAGNÓSTICO Y PLAN DE ACCIÓN PARA LA INDUSTRIA DE ANIMACIÓN DIGITAL Y VIDEOJUEGOS (Cámara de Comercio de Bogotá)/ Noviembre de 2010 Bogotá D.C 23 En Colombia específicamente en Bogotá el sector de la animación digital y videojuegos (ADVJ) se encuentra en crecimiento y tiene una participación de 0.0071% del PIB (producto interno bruto) siendo las pequeñas empresas las que conforman la mayoría de la muestra y son las que más aportan a la facturación y el valor agregado a la economía bogotana. Las microempresas son las que tienen la mayor participación en el sector de animación digital y videojuegos con un 80%, pero son las que menos participan en el PIB del sector tan solo con un 17%, lo cual nos muestra que la industria en Colombia tiene un crecimiento potencial el cual está iniciando con microempresas las cuales son pequeños desarrolladores que impulsan las nuevas creaciones, todo esto se puede ver reflejado en la Imagen 3.19 Tabla 1 Características del sector digital y videojuegos en Bogotá 20 19 DIAGNÓSTICO Y PLAN DE ACCIÓN PARA LA INDUSTRIA DE ANIMACIÓN DIGITAL Y VIDEOJUEGOS (Cámara de Comercio de Bogotá)/ Noviembre de 2010 Bogotá D.C 20 (Camara de comercio de Bogotá, 2010) 24 4. OBJETIVOS 4.1.1. Objetivo general Diseñar y desarrollar un prototipo funcional de un Videojuego en 3D 4.1.2. Objetivos específicos Describir la arquitectura de componentes generales en el desarrollo de un videojuego. Diseñar orden de desarrollo y características de los componentes de un videojuego descritos anteriormente. Implementar un prototipo del videojuego compuesto por las características y componentes definidos previamente. Realizar pruebas sobre el prototipo implementado. 25 5. PROPÓSITO Poner a prueba los conocimientos adquiridos por los autores, durante su carrera en las áreas de investigación, emprendimiento, conocimiento e implementación en las nuevas tecnologías sobre un tiempo límite. Usar este prototipo como base para el desarrollo de un videojuego completo con una historia y producción más elaborada, dando lo mejor de nuestra imaginación y aptitudes. Hacer de este proyecto de grado una guía para aconsejar a futuros interesados en la creación de un juego aportando experiencias, conocimientos, técnicas de computación grafica para el desarrollo y la utilización de motores gráficos especializados en el desarrollo de videojuegos, los conceptos de manejo y detección de colisiones, iluminación de escenarios, los diferentes usos de las cámaras, uso de partículas y otros más que hacen del videojuego una experiencia más realista. 26 6. MARCO TEÓRICO 6.1. Marco conceptual 6.1.1. Aspectos generales del desarrollo de los videojuegos El mundo de los videojuegos es el mundo que el usuario quiera imaginar, pero para poder conseguir que ese mundo interactué con más personas y sea algo más que imaginario se debe estar preparado para dedicarse a un trabajo arduo y largo pero muy apasionado y reconfortante. Muchas personas piensan que para hacer videojuegos hay que ser un genio de la computadora o que se debe tener mucha experiencia y demasiado dinero e infraestructura, pero si este no es el caso y lo que se quiere es empezar a viajar e involucrarse en este mundo para realizar sus propias ideas y plasmar en un mundo virtual los pensamientos creativos, a continuación se explicara qué se debe tener y como se debe empezar de una manera muy general para cumplir este propósito, la idea es dar una introducción para que el usuario se dé cuenta que puede y que debe investigar y practicar mucho para lograr hacer de ese mundo lo que el usuario se imagine virtualmente hablando claro está. Este proceso está basado en la experiencia de los autores y el análisis de la evolución de los videojuegos21 y su forma de desarrollo. El desarrollo de un videojuego consta de muchas partes involucradas actualmente para las grandes desarrolladoras este trabajo está organizado y tienen las funciones muy bien definidas en distintos roles con lo cual logran un trabajo muy bien desarrollado, algunas de estas funciones son:  Ilustradores  Guionistas  Modeladores  Texturizadores  Animadores  Diseñadores de niveles  Diseñadores de interfaces  Programadores 21 Ver ANEXO C Historia de los videojuegos 27 Si no se cuenta con un grupo de trabajo tan amplio que por lo general es así y más aun comenzando se debe hacer el trabajo algo a la antigua, todo el mismo usuario, es bueno que se indague sobre estos temas que no son del todo tan complicados, pero si son muy importantes en el proceso de desarrollar un videojuego, la Imagen 4 que se ve a continuación, muestra lo básico que se debe tener en cuenta para hacer un videojuego. Imagen 4 Proceso Desarrollo de videojuegos 22 6.1.1.1. Definir la Temática del juego Este es un paso súper importante corresponde a parte de la etapa de preproducción es en donde se imagina y se piensa que es lo que se quiere hacer, como se quiere hacer, como se desea que se vea, es importante tener la idea de qué clase de juego se quiere y qué modo de juego será, imaginarse desde este momento el personaje principal el lugar en que se desarrollaría. En cuanto lo que se quiere hacer es donde se debe pensar y decidir sobre que va a tratar el juego, en este momento es donde es necesario imaginar la historia a grandes rasgos. 22 Imagen diseñada por los autores 28 En cuanto al cómo se quiere hacer, es como se va a desarrollar la historia y cómo se desea que el jugador enfrente la historia, el modo o modos de juego si va a ser en primera persona o tercera persona, o quizás estrategia, este es el momento para definir esto es donde se va a marcar el camino que el resto del proceso va a seguir. Es muy importante que todo se documente, que se escriba que se quiere hacer, tener todas las ideas documentadas, se puede usar técnicas como lluvia de ideas las cuales en algún momento serán útiles en futuras definiciones, o cualquier técnica que se requiera usar, nunca esta demás la documentación nunca va a ser innecesaria porque permite más adelante definir más fácil y con más detalle los guiones, personajes y escenarios. 6.1.1.2. Escribir concepto de la Historia En esta parte se toman todas las ideas y la documentación que se tenga sobre ellas, todo lo que se documentó en el momento en que se realizó la definición de la temática. Esto se plasma en un solo concepto de la historia el cual describirá paso a paso la historia con un inicio, nudo y desenlace. En este concepto es importante tener definido por capítulos todos los momentos importantes y que generan una marca importante en el transcurso de la historia que se va a contar, deben estar presentes los personajes involucrados en la historia y una aproximación a las acciones de cada uno en la historia. Este paso es casi como escribir un libro o un cuento sobre el juego, es importante que todas las personas que están involucradas en el desarrollo del juego aporten al contenido de este documento. 6.1.1.3. Establecer Personajes y Describirlos Es importante dedicarle un buen tiempo a esta parte ya que complementada y basada en el paso anterior en la historia se debe definir todos los personajes y que su personalidad sea acorde a sus acciones dentro de la historia. Es necesario realizar una descripción de los personajes desde su forma física y rasgos importantes que marquen su personalidad, por eso ahí tener 29 no solo la descripción física sino la descripción de la personalidad una breve biografía del personaje hechos que han marcado su forma de ser, imaginarse la vida de ese personaje porque es así, porque se comporta de esa manera en la historia, esto es importante porque le va a permitir al ilustrador y a todo el equipo acoplarse a el personaje, tratarlo, darle la forma y la caracterización que debe tener para hacerlo sentir real, y esto estará reflejado y se proyectara hacia las personas que jueguen el videojuego. 6.1.1.4. Definir niveles y escribir diálogos Hasta el momento el tema ha estado más enfocado a documentar y dedicarse a escribir pero ya empieza lo más interesante. Para llegar a obtener un trabajo de calidad es necesario dedicarle mucho tiempo y esfuerzos a la documentación ya que marca desde el comienzo la calidad en todo sentido del videojuego a desarrollar. Continuando con el tema definir niveles y escribir diálogos se debe escribir un guion para tu videojuego, pero es necesario e importante ya hacerlo súper enfocado a cada nivel existente en el juego. Al definir niveles se debe tener en cuenta el hilo de la historia y como se desea contarlo definir qué niveles o que escenas hablando más de un guion, cuáles de estas escenas van a ser gameplay y cuáles van a ser videos. Por cada uno es necesario escribir el guion para cada personaje implicado en cada escena. En esta parte también se empieza a involucrarse con la descripción de los escenarios y que debe estar involucrado de cada escenario en las acciones de la escena. 6.1.1.5. Describir Escenarios Basado en la historia y en la definición de los niveles es necesario dar una aproximación más clara de los escenarios en que transcurren los hechos en el juego: se debe tener presente el nivel de detalle al momento de hacer su descripción, desde describir que tipo de iluminación debe tener, cuales objetos están involucrados la ambientación, que objetos tiene sonido y la musicalización de cada nivel y escena; todo es importante tenerlo claro y definirlo muy bien antes de la construcción de cada escenario o personaje. 30 6.1.1.6. Realizar Bocetos de personajes y Escenarios En este paso se toman todas las descripciones realizadas anteriormente y se empiezan a plasmar en varios bocetos de personajes y escenarios generalmente se realizan varios bocetos de un mismo personaje hasta encontrar el que se ajuste más a la descripción y que exprese más las aptitudes y actitudes de los personajes y en cuanto a los escenarios es bueno hacer unos planos de los lugares muchas veces es necesario y acomodar cada detalle y verlos desde distintos puntos para que sea más fácil adaptarse y construir los escenarios. 6.1.1.7. Modelado de personajes y Escenarios En esta parte se toman todos los bosquejos y se construyen ya sea en 3D o en 2D, es el momento en que se comienza con la producción como tal del videojuego. Se empieza a construir los sprites si es 2D o los modelos en 3D y agregarle el nivel de detalle deseado, es muy importante tener un modelo con más bajo detalle que es el que va a entrar al juego a este se le agregara detalle visual con texturas, el modelo con el nivel de alto detalle en 3D es el que será utilizado en videos y promociones ya que tendrá una imagen de mayor calidad. 6.1.1.8. Programar Lógica del Juego En esta etapa como ha sido llamada se dedica a la programación en donde se empieza a integrar los modelos de personajes y escenarios en el juego y hacer que tengan relación e interacción unos con otros, en este paso se debe programar la inteligencia artificial de los juegos, también diseñar la física que el juego use para hacerlo más real y no tan alejado del comportamiento de los objetos en el mundo real, preocuparse por cómo debe interactuar una cosa con otra, entran conceptos como detección de colisiones, transformaciones, efectos. Esto es muy importante porque es donde se ensambla todo el juego, se le dan las acciones para que se vea lo más real posible y se ponen todos los componentes en el lugar donde deben estar para que puedan responder a cualquier interaccion que se presente durante el juego, se programa la lógica que debe tener cada modelo y objeto presente en el escenario. 31 6.1.1.9. Diseñar y programar interfaces de usuario Es donde se define como el jugador va a interactuar con el videojuego para que tenga una mejor experiencia, como van a estar distribuidos los menús del juego, las ayudas como mapas, la disposición de los controles. Es muy importante pensar y colocarse en el lugar del jugador en cómo sería más cómodo para el vivir la experiencia del juego, como le gustaría, como se vería mejor y más llamativo para él. 6.1.1.10. Pruebas Como en todo proyecto es necesario realizar pruebas para garantizar que el usuario va a tener una experiencia de juego de excelente calidad, y que todo funciona correctamente de acuerdo a como se había diseñado. 6.1.2. Procesos de escritura y desarrollo En la creación de un videojuego existen cosas como el “opening” y el narrador artificial de la historia que hacen que un videojuego se vea más completo, pero muchos de estos son un campo de investigación largo y costoso el cual puede ocupar gran parte de los recursos, pero las personas no compran un juego por la forma de narrar la historia, sino por el modo de juego. Cuando un usuario quiere comprar un juego, pueda que lo esté comprando con una trama parecida a la de uno que ya tiene, pero él lo compra es por las cualidades del modo de juego que posee ya que se puede decir que es el corazón de todo videojuego; muchas personas no llegan muy lejos en el videojuego si el juego no les ofrece una gran experiencia de juego. Existe en la actualidad juegos que implementan la llamada narración interactiva la cual hace que la historia cambie dependiendo a las decisiones que tenga el jugador; además los personajes no evolucionan en muchos de los juegos, pueda que a medida que pasa el juego, él va adquiriendo nuevas habilidades pero al final será el mismo personaje que tenían al comienzo del juego. Pueda que esto no le importe al jugador ya que el juego es divertido y lo entretiene, cuando no es divertido tampoco le va a importar la evolución del personaje porque no le interesará seguir jugándolo; pueda que algunos juegos hagan creer que el jugador tiene la posibilidad de tener el control sobre la evolución o el cambio del personaje, 32 dándoles la opción de cambiarle el color y las prendas de vestir, esto no es una verdadera evolución del personaje solo le está dando a opción a los jugadores de cambiar las características del personaje. Para hacer que un juego sea interactivo existen varios métodos como el de hacer un personaje principal que no hable para nada, sino que al momento de interactuar con un personaje artificial, aparezcan las posibles respuestas, pero esto aburre a muchas de las personas que lo juegan, en otras formas lo que se hace es crear escenas que se pueden saltar pero esto necesita de más desarrollo y más dedicación al momento de desarrollar la trama. Cuando uno pone un jugador a cargo de un escuadrón, el cual él debe guiar se puede hacer una variación, ya que dependiendo de las acciones que tome el jugador el escuadrón responderá, por ejemplo si deja que el escuadrón pierda compañeros, este por medio de frases le hará saber su disgusto, el problema es que el jugador comenzara a aburrirse si estas frases son las mismas siempre o si se está usando la misma vos para varios personajes secundarios. No es necesario hacer una historia interactiva, ya que muchos juegos tienen muy buenas historias siendo lineales, en estas se tiene que dejar muy claro que tanta interactividad puede tener el jugador (toca dejar esto claro con los diseñadores), aquí se aplican nodos que se pueden tomar como ChekPoints (Imagen 5), los cuales son puntos donde el jugador puede premiársele por haber llegado hasta ese punto ya sea con nuevas armas o nuevos poderes, etc. Estos deben ser invisibles para el usuario, ya que en estos se pueden introducir nuevos nodos como la descarga de mapas o cambiar las características de los jefes (normalmente el objetivo final de un juego siempre es matar el jefe que es el que más fuerza tiene). Lo que se quiere buscar con esto es que se pueda trabajar bien con el camino que tomara la historia y la experiencia del juego. Con el juego linear las ventajas es que no se tiene que pasar tiempo en crear nuevos parlamentos y escenas o los otros caminos que pueden tomar y se dedican a mejor la calidad del único camino que tiene la historia. 33 Imagen 5 Historia y experiencia de juego Lineales 23 También existe la opción de tener una historia lineal pero una experiencia de juego no lineal donde el jugador aunque va a llegar al mismo nodo, va a tener distintos caminos por los que puede llegar dándole así la experiencia de que tiene el control (Imagen 6). Imagen 6 Historia lineal – experiencia del juego no lineal 24 Uno puede crear un juego que tenga varios nodos, pero se verá que después de algunos niveles se incrementa considerablemente la parte de desarrollo, tales como escenas, parlamentos y los desenlaces que puede tener la historia. Esto sería un juego perfecto para un jugador normal, pero estos recursos no existen ya que sería un total descontrol y esa libertad no se puede dar tan a la ligera. Se puede apreciar en la Imagen 7. 23 Steve Ince Writing for Video Games [Libro]. - [s.l.] : A&C Black, 2006. 24 Steve Ince Writing for Video Games [Libro]. - [s.l.] : A&C Black, 2006. 34 Imagen 7 historia y experiencia del juego No lineales25 Teniendo un control sobre la libertad que tendrán los jugadores, una buena opción es mostrándole al jugador que en un principio puede elegir por qué camino coger (Imagen 8), dándole la libertad que quiere, además se le puede agregar que en cualquier nodo que el este puede cambiar de camino, la única desventaja es que al momento de que se pase el juego quedara con la mitad del juego sin ver, pero para eso el juego se hace interesante y que los jugadores quieran volvérselo a pasar. Imagen 8 Experiencia del juego Lineal con dos historias distintas 26 25 Steve Ince Writing for Video Games [Libro]. - [s.l.] : A&C Black, 2006. 35 Haciéndolo en un caso contrario, podríamos dejar lineal el modo del juego, pero dependiendo a las opciones que tome el jugador, cambie la historia, dando así una experiencia distinta, como se aprecia en la Imagen 9. Imagen 9 Experiencia lineal sin historia lineal 27 O podría hacerse una unión de nodos donde el usuario pueda tomar cualquier camino que quiera, pero siempre llegando a una misma conclusión, hay que tener en cuenta que en cada nodo se le pueden dar bonificaciones al jugador, haciendo que el nodo final cambie por las nuevas características del personaje28 (Imagen 10). Imagen 10 historia con inicio y desenlace lineal pero con un nudo no lineal 29 26 Steve Ince Writing for Video Games [Libro]. - [s.l.] : A&C Black, 2006. 27 Steve Ince Writing for Video Games [Libro]. - [s.l.] : A&C Black, 2006. 28 Steve Ince Writing for Video Games [Libro]. - [s.l.] : A&C Black, 2006. 29 Steve Ince Writing for Video Games [Libro]. - [s.l.] : A&C Black, 2006. 36 6.1.3. Detección de colisiones Un videojuego representa un ambiente virtual el cual contiene diferentes objetos y elementos que interactúan entre sí, uno de los mayores problemas al tener esta interacción es poder hacer que esta sea lo más cercano a la realidad, poder representar los estados y comportamientos de un objeto en el ambiente virtual tal como se comportan en la vida real, para esto es necesario la detección de colisiones. Imagen 11 Composición de figuras en OpenGL sin detección de colisiones 30 Se puede observar en la Imagen 11 que los objetos se están penetrando unos a otros lo cual no sucede en la vida real ya que los objetos tienen proximidad y superposición sobre otros objetos, estas propiedades son las que deben ser simuladas y computadas en el ambiente virtual para darle un sentido más realista a las animaciones. En la vida real cuando un objeto interactúa con otro se ve la reacción de este, ya sea en un cambio de forma, cambio de dirección de desplazamiento, unión de los objetos, entre muchas otras posibles acciones. Los videojuegos tratan de imitar estos comportamientos con gran similitud para que la experiencia del jugador sea más realista, para estos desarrollos existen varios motores diseñados con este propósito que manejan distintos algoritmos los cuales manejan los mismos principios que en la realidad. 30 Imagen obtenida de http://www.opengl.org/resources/code/samples/redbook/ 37 Imagen 12 Error en detección de colisiones en el juego NFSU (need for speed underground) 31 En la Imagen 12 se observa un error en la detección de colisiones ya que se observa como el carro se encuentra dentro de una columna, algo que en la vida real no sucede lo cual hace que el juego no sea tan realista y la experiencia para el usuario se vea afectada. Esto se debe a una mala implementación de los algoritmos de colisión. Caso contrario se ve en la Imagen 13 que se observa un sistema de colisiones muy avanzado que genera gran realismo al simular el choque entre estos dos autos, ya que el nivel de detalle de las colisiones es muy alto. Imagen 13 ejemplo detección de colisiones en el videojuego GT5 (Gran turismo 5) Los objetos en un mundo virtual son construidos por polígonos, siendo los triángulos y los quads (polígonos de cuatro lados) la mejor forma en que se 31 Imagen obtenida el 20 de Octubre de 2011 de http://img91.exs.cx/img91/6545/g1b693.jpg 38 representen para lograr tener un mayor control de sus superficies y evitar que exista superposición y cruces de vértices o aristas entre el mismo objeto lo cual al implementar sistemas de colisiones ocasionara errores produciendo una mala simulación de el comportamiento de los objetos en la vida real. Una forma de detectar colisiones es el verificar si los polígonos de un objeto no se intersecan con los polígonos de otro objeto, esto mostrara si existe o no colisión entre ellos, el problema se presenta entre más detalle tengan los objetos, ya que el detalle que tienen los objetos es directamente proporcional al número de polígonos de los cuales están compuestos (ver Imagen 14) , lo cual al intentar verificar polígono por polígono producirá que se aumente el tiempo de verificación y se consuman más recursos, lo cual se puede llamar cuellos de botella, ya que si se tiene gran cantidad de objetos para verificar (teniendo en cuenta que los objetos pueden estar en movimiento o estáticos), el esfuerzo que produce este algoritmo a la maquina es bastante.32 Imagen 14 ejemplo de colisiones a nivel detallado 33 Al momento de uso de un algoritmo de colisiones se deben tener en cuenta 4 puntos esenciales para tener el mejor equilibrio entre experiencia del jugador y rendimiento de la maquina: Uso de recursos: al momento de calcular si existe o no una colisión en el juego, el sistema debe realizar más de una validación de colisión a la vez 32 Ortega Ramirez Maria Del Carmen Unversidad De las Americas Puebla [En línea] = Estudio e Implementación de un Algoritmo de Detección de Colisiones Basado en Esferas . - 14 de Marzo de 2011. - http://catarina.udlap.mx/u_dl_a/tales/documentos/msp/ramirez_o_md/. 33 (Alebrije Estudios, 2011) 39 en tiempo real, si el número de colisiones que debe validar es demasiado alto puede verse como el rendimiento del juego disminuye. Colisiones Falsas: normalmente se usan figuras geométricas para calcular el área de colisión de un objeto por lo cual a veces sobran espacios entre el objeto y la figura geométrica, para tener un buen rendimiento, se debe intentar usar la menor cantidad de figuras geométricas por objeto para que no se deba calcular una gran cantidad de áreas por objeto, aunque gráficamente no sean correctas. Colisiones faltantes: dejar objetos sin colisiones, en un videojuego se busca tener una interacción con el escenario en un nivel donde el jugador se sienta cómodo. Escalabilidad: el rendimiento de la maquina no se vea afectado por la cantidad de colisiones que se deben validar. Como se ha mencionado anteriormente, el uso de algoritmos de colisiones va fuertemente ligado al uso de figuras geométricas y física, comúnmente se usan figuras como el rectángulo, el círculo y polígonos convexos porque tienen una implementación sencilla, en donde solo se debe calcular para cada uno de sus ejes su medida e implementar algunas fórmulas geométricas, que facilitan la validación de la colisión. Por ejemplo, sabiendo el punto medio de un cuadrado y la medida de sus lados, ya se puede calcular cuando otro objeto cuadrado con los mismos valores identificados, se colisionan solo haciendo operaciones matemáticas sencillas como sumar y restar. 6.1.4. Inteligencia artificial 6.1.4.1. Descripción La inteligencia artificial es lo que toma decisiones basado en información existente, la cual se ve reflejada en alguna acción. Esto lo podemos ver como un mecanismo que recibe algo de entrada lo analiza y devuelve algo de salida, la parte donde analiza se le puede llamar la parte inteligente el cual es un aspecto del sistema, a diferencia de un sistema normal el objeto de salida, sale esperando una respuesta para saber cuál es la siguiente decisión a tomar. Existen sistemas a los que se les puede dar el nombre de “IA universal”, se les denomina así ya que pueden ser usadas en distintas situaciones, esto no está para el alcance de los videojuegos ya que el implementar este tipo 40 de modelos en los videojuegos, el jugador después de un periodo de tiempo puede detectar el patrón y hacer un “contra” frente a este, para los jugadores, esto es algo fácil ya que todos los humanos tenemos la capacidad de solucionar problemas, que consiste en la capacidad de usar conocimiento adquirido por la experiencia para tomar la decisión más sencilla y efectiva. Muchas de estas IA, son basadas en el comportamiento humano, lo que hacen es tomar un problema específico y analizar las posibles acciones que tomaría un humano, por eso es que sería tan fácil para el jugador resolver el patrón, ya que es darse cuenta que está pensando el otro humano (el diseñador). Algo que se quiere hacer en el futuro es a lo que llaman “IA Real” lo cual es la capacidad del sistema para darse cuenta cuando un humano ha encontrado la forma para contrarrestarlo, y cambie sus acciones. El uso de IA se da en juegos de carreras, shooters de primera persona, de peleas, deportes y muchos más, ya sea en los enemigos o los compañeros de equipo (que sean en el mismo juego no significa que usen la misma IA), existe la posibilidad que la IA de los juegos no sea tan buena, ya sea porque se ve a personajes secundarios intentar atravesar una piedra o carros chocándose entre sí, estos casos se dan por el nivel que tiene la IA, esto se debe a que el desarrollar una inteligencia artificial buena es costoso y largo, y como es muy unida a la experiencia del juego se les debe dar un nivel promedio a las dos para que el juego sea bueno, al momento en que se deje alguna de lado da a que el juego genere críticas no muy agradables entre los jugadores. 6.1.4.2. Aplicaciones Tomando como ejemplo un juego donde se le debe disparar a alienígenas, los cuales a la vez dejan caer bombas podemos mostrar el uso de la inteligencia artificial, ya que cada alien tiene que tener muchas cosas en cuenta antes de tirar la bomba, cosas como: la posición de los otros aliens, la del jugador, otras bombas, el no suicidarse, entre otras. 6.1.5. Teoría de grafos Uno de los usos de la inteligencia artificial es el movimiento que se le quiere dar a un objeto autónomo, haciendo que este muñeco no solo se mueva hacia un 41 objetivo sino que sepa que cuando se encuentre con un obstáculo deba cambiar de dirección, además este debe saber porque dirección girar para estar cada vez más cerca del objetivo. Normalmente para que un objeto haga estas acciones adecuadamente, se implementan el uso de grafos, estos están compuestos por unos vértices y unas aristas: Vértice: es la unidad fundamental de lo que están compuestos los grafos, cuando se refieren al “grado” de un vértice, se está hablando de la cantidad de aristas que tiene este vértice. Arista es la unión de dos vértices la cual puede tener una dirección, cada uno de los vértices que lo componen se le llama “Punto final”; estas pueden ser dirigidas o no dirigidas dependiendo el uso que se le vaya a dar, cuando un grafo es dirigido, los grados de los vértices son representados por valores positivos y negativos, mostrando la cantidad de vértices que entran o salen de él, mientras que un grafo no dirigido, el grado de los vértices representa la cantidad de aristas que tiene relación con este vértice. El uso de estos Grafos en los computadores tiene a tener un costo de memoria significante, dependiendo del tipo de estructura de datos que se use para su almacenamiento y el algoritmo que se use, las estructuras que se usan para el manejo de estos son las matrices y las listas, pero cada una se usa en distintos momentos: las listas son preferibles en grafos dispersos por el eficiente uso de memoria que le dan, aunque las matrices den un mejor acceso por un mayor costo de memoria. 6.1.5.1. Tipos de Estructuras: Listas de incidencia: vector de pares de vértices donde un par es representado como una arista Lista de adyacencia: cada vértice maneja su propia lista donde almacena cada vértice con el que forma una arista. En el caso de un grafo no dirigido creara una redundancia que hará más fácil la búsqueda pero necesitara de un almacenamiento extra. 42 Matrices de incidencia: es una matriz del tamaño de la cantidad de aristas por la cantidad de vértices, donde se pondrá un 1 en los vértices que esa arista conecte. Matrices de adyacencia: es una matriz del tamaño de la cantidad de vértices tanto en x como en y donde se pondrá un 1 en la posición (x,y) que exista una arista. 6.1.5.2. Clases de Grafos: Grafos Libres: Cuando un Grafo no tiene Aristas. Grafos simples: las aristas que une dos vértices son únicas. Grafos regulares: cuando todos los vértices tiene el mismo grado. Grafos Conexos: cuando todos los vértices están conectados entre sí por medio de aristas, es decir que desde cualquier vértice por medio de las aristas puedo comunicarme con otro vértice del grafo. Grafos no conexos: es cuando no todos los vértices se pueden comunicar entre ellos por medio de las aristas existentes. Grafos completos: cuando existe una arista para todo tipo posible par de vértices en el grafo. Grafos complementarios: cuando un Grafo contiene todas las aristas faltantes de otro grafo con los mismos vértices para que se convierta en un grafo completo. Grafos bipartitos: se denomina al grafo que se puede dividir en dos conjuntos de vértices distintos donde los vértices de un conjunto solo se unen con los del otro conjunto y no entre los vértices del mismo conjunto. Arboles: son los grafos que conectan todos los vértices en un grafo conexo con la menor cantidad de aristas el cual no es un ciclo. 43 Grafos ponderado o etiquetados: grafos con valores en las aristas ya sea numeración o valores (por ejemplo distancia entre un vértice y el otro). Grafos Planos: es cuando un grafo o multígrafo se puede dibujar en un plano sin que se cruce ninguno de sus vértices. Grafos isomorfos: cuando dos grafos tiene el mismo número de vértices, mismo número de aristas, el mismo número de vértices en cualquier grado, etc. 6.1.5.3. Algoritmos de búsqueda Búsqueda de profundidad: El objetivo de este algoritmo de búsqueda, es recorrer todos los vértices sin repetir ninguno, desde un punto de inicio que se le haya dado, internándose cada vez más profundamente, cuando se llega a un vértice cuyos vecinos ya fueron explorados, se devuelve a un nivel menos profundo para validar la existencia de otros vecinos que no hayan sido explorados, hay que tener en cuenta que el grafo para este caso debe ser un grafo árbol conexo donde su seudocódigo seria: Se comienza en el vértice raíz R y se convierte en nuestro vértice activo. Se selecciona un vértice vecino del vértice activo que no esté marcado, si no tiene más vértices vecinos ir al paso (iv). Se añade a la lista de vértices recorridos y se selecciona como vértice activo pasando al paso (ii). Se valida que ya no tenga más vértices que falten por recorrer, si todavía existen se selecciona el vértice padre del vértice activo y se retorna al paso (ii). Se puede ver que con este método también se puede validar que un grafo es conexo, ya que modificando el (iv) paso podríamos validar que si se 44 retornó al vértice Raíz y todavía quedan vértices por recorrer nos indica que no están conectados por medio de una arista. Búsqueda en anchura: Este algoritmo es adecuado para elegir la mejor solución entre varias posibles opciones; usado para resolver problemas de optimización, su funcionamiento es parecido al de profundidad, teniendo en cuenta que este método funciona en un grafo árbol conexo. Sea G(V, E) un grafo conexo y v un vértice de V. El algoritmo de búsqueda en anchura puede detallarse así: Designamos a v como vértice activo y como raíz del árbol generador T que se construirá. Se le asigna a v la etiqueta 0. Sea i=0 y S={v}. Hallar el conjunto M de todos los vértices no etiquetados que son adyacentes a algún vértice de S. Si M es vacío el algoritmo termina. En caso contrario, se etiquetan todos los vértices de M con i+1, se añaden a T las aristas entre cada vértice de S y su vecino en M y se hace S=M. i=i+1 y volver al paso 3. Algoritmo de Dijkstra También llamado algoritmo de caminos mínimos, su objetivo como su nombre lo dice es hallar desde un nodo dado el camino más corto al nodo objetivo. Para esto se deben sumar los costos de los arcos que lo componen. 45 Trabajo por etapas tomando la mejor decisión del momento sin tener en cuenta consecuencias futuras, pero si en una etapa posterior encuentra uno más óptimo, puede adaptarse fácilmente.34 Algoritmo de Floyd-Warshall A diferencia de los otros algoritmos este algoritmo haya la ruta más corta entre cualquier par de nodos en un grafo ponderado. Algoritmo de Bellman-Ford Desarrollado para hallar el camino más corto en un gráfico dirigido, es muy parecido al de dijkstra, con la diferencia de que este puede tener valores negativos en las aristas, pero el de dijkstra lo resuelve en menos tiempo.35 A*(A-star) En la ciencia de la computación es un algoritmo usado para hallar un camino eficiente entre dos posiciones por medio de puntos a los cuales se les dice nodos, este algoritmo es una extensión del algoritmo de dijkstra’s más adelante se continua con este algoritmo. Estas posibles decisiones del alien, de lanzar o no lanzar la bomba va todas en un modelo de decisiones que debe seguir, este modelo entre más sofisticado más Inteligente es, este modelo puede estar prescrito anteriormente, pero es flexible. Al momento de crear un nuevo modelo se debe tener en cuenta que se deben cambiar tanto la información que debe entrar como las acciones que debe generar (input – output). 6.1.6. ¿Qué es un motor de videojuegos? Es aquel que brinda soporte completo y proporciona la capacidad o el ambiente para la solución específica, permitiendo el manejo de los elementos del juego tales como: sonido, gráficas, entrada y salida de datos entre otros. 34 (ECURED, 2011) 35 (rodriguez) 46 Los motores de videojuegos actuales cuentan con diferentes aplicaciones integradas que soportan a los desarrolladores facilitando el proceso y proporcionan herramientas para medir el rendimiento del juego factor fundamental para el éxito de este. Además, contiene una gran cantidad de librerías para cada uno de los elementos que componen un videojuego, como el complemente de physX 36 El uso de los motores para la creación de videojuegos reduce costos, complejidades y tiempo de desarrollo, la mayoría de estos motores dejan crear juegos multiplataforma y no solo sirven para crear videojuegos, también son usados para la creación de simuladores demostraciones publicitarias, arquitecturas entre muchas más. 6.2. Producción de animación digital y videojuegos en el ámbito mundial Esta sección muestra como es el comportamiento de la industria de la animación digital y videojuegos en el mundo, basado en la explicación de diferentes modelos utilizados en varios países. Esto nos da la oportunidad de analizar el comportamiento del sector en el cual se encuentra este proyecto y de qué manera puede orientar en la búsqueda de un desarrollo comercial a futuro del mismo. 6.2.1. Modelos37 6.2.1.1. El modelo pixar Pixar se ha centrado en la generación de historias creativas y en el desarrollo y uso de tecnologías innovadoras en el formato 3D. Cada trabajo de pixar tiene características basadas en el uso de avances tecnológicos, este énfasis hace que la producción tenga costos altos ya que tienen que disponer de gran cantidad de recursos para el desarrollo y generación de nueva tecnología, este modelo en la industria es de alto riesgo debido a que las inversiones que tienen que hacerse son demasiado alta y el mercado es incierto. En la producción para pixar es importante contratar un director de alta 36 (Terán, 2011) 37 (Camara de comercio de Bogotá, 2010) 47 calidad al cual le dan un equipo de creativos a su disposición y la autonomía sobre los productos para que trabajen los aspectos que crean convenientes en la historia y el arte, el director tiene un trabajo de colaboración los creativos y propician un ambiente a la innovación creativa, artística y técnica. En pixar los animadores siempre tienen el acompañamiento de técnicos para cuando necesiten el apoyo en el desarrollo de gráficas, arte y programación de esta manera se garantiza que se cumpla con un trabajo con los más altos estándares de carácter artístico. 6.2.1.2. El modelo japonés La animación japonesa (anime) tiene un gran éxito internacional y ha tenido éxitos en taquillas aun así poseen varios problemas los cuales generan sobrecostos en el proceso de producción, ellos tienen falta de animadores capacitados y dependen de la tercerización de su producción. El producir animaciones para televisión les cuesta más del dinero que reciben por la transmisión de estas por eso deben apoyarse en usos secundarios del contenido como DVD, venta de videos, avatares, juguetes entre otros productos para no incurrir en pérdidas de capital poder hacer rentable sus producciones. El problema de los costos elevados en producción radica en que los salarios en la industria del anime son muy bajos y hace que los empleados no estén estables y disminuyan su producción y calidad de trabajo, o a la migración de la mano de obra más calificada a otros sectores. La mayoría de las producciones japonesas son subcontratadas, envían las ideas originales a otras empresas de producciones China, Corea y otros lugares. Pero la planeación y dirección se continúa haciendo en Japón. 6.2.1.3. El modelo coreano Este modelo está basado principalmente en estar como subcontratista del Japón, pero ha aprovechado rápidamente su experiencia como 48 subcontratista para empezar a desarrollar e incrementar su producción localmente y se establecieron políticas de promoción de la industria para incrementar sus producciones locales y regionales. 6.2.1.4. Modelo Filipino Este modelo está enfocado en la búsqueda de inversión extranjera en su territorio, de esta manera las empresas locales involucradas en el sector muchas veces son de propiedad extranjera, y las que no lo son adquieren los contactos, credibilidad frente a los compradores, financiación, capacidad de producción y experiencia para poder competir internacionalmente especialmente con productos 2D, aunque sus precios no son bajos como lo son en otros países de su región. Filipinas compite con su proclamada afinidad cultural con los clientes pero esto no es suficiente ya que sus salarios son muchas veces más altos que lo que pueden asumir y la entrada de nuevos competidores como India y China empeora esta situación. Por esta razón están iniciando a atender más el mercado local y empezar a desarrollar sus habilidades en la producción 3D que para esto necesitan financiación para adquirir las tecnologías necesarias. 6.2.1.5. Modelo Tailandés Este modelo está interesado en fomentar las grandes empresas en la participación de nuevos proyectos en el sector en temas como animación, videojuegos, producción de video digital, posproducción, diseño de páginas web, efectos especiales y servicios de aprendizaje. Tailandia ofrece incentivos y estabilidad con un gran talento creativo para satisfacer las necesidades propuestas. Tailandia se presta como una industria en crecimiento que está iniciando su capitalización en estas tendencias de la industria y posee grandes fortalezas como lo son:  Talento creativo y hábil con una larga tradición en artes.  Bajo riesgo geopolítico y un entorno seguro para los inversores. 49  Disposición del gobierno para promover la capacitación profesional en animación y tecnologías de información y comunicación.  Fuerte compromiso del gobierno nacional con la construcción de un clúster de éxito.  Protección estatal a los innovadores en nuevos medios.  Bajos precios de producción aproximadamente a un 50% de los de las naciones exportadoras. 6.2.1.6. Modelo Indio El modelo de India está en aprovechar la oportunidades mundiales de negocios de esta manera se han multiplicado las empresas de animación en todo el país, ellos poseen la experiencia en software producción y animación e infraestructura que mantienen actualizada para cumplir con los estándares internacionales. Esta mercado presenta un crecimiento notable en el sector poro India se ha dedicado a realizar estudios por encargo, ellos se dedican a la animación pero la gran parte de la escritura, storyboard se realizan en el extranjero, India no se ha convertido en un creador de conceptos en la industria. 50 7. MARCO DE REFERENCIA 7.1. VideoJuegos FPS (First Person Shooters) 7.1.1. Descripción Los videojuegos tipo FPS siglas en inglés para first person shooter, son aquellos en los cuales toda la acción se desarrolla en una perspectiva en primera persona y el jugador debe cumplir unos objetivos especificados por una serie de misiones consecutivas mientras se abre paso disparando. En estos videojuegos el jugador se integra con el personaje y asume su papel dentro de la historia, la base de estos juegos consiste en la supervivencia a través de los niveles del juego destruyendo los enemigos que se encentren y se interpongan en su camino.38 En este tipo de juegos lo que se ve en la pantalla es lo que directamente está viviendo el personaje agregándole las características que se incluyen por medio del HUD39, por lo general se ve las manos y el arma del personaje. El componente más atractivo es el jugar contra otros jugadores en el mundo gracias a sus opciones de multijugador online lo cual los hace más populares debido a la experiencia que brindan al jugador.40 7.1.2. Características  Usan ambientes 3D programados y renderizados para una vista realista.  Son usados para entrenamientos y simulaciones militares.  Usan ambientes en los cuales se incluyen efectos físicos. 38 (BBVA) 39 ¡Error! No se encuentra el origen de la referencia. 40 (Polaino) 51  Utilizan entidades de inteligencia artificial para los comportamientos de los enemigos y entidades virtuales que no son controlados por el jugador. Ejemplos A continuación nombramos unos de los videojuegos FPS más exitosos y que influenciaron el desarrollo de estos. Wolfestein 3D: este es considerado el padre de los FPS, fue el que abrió el camino a que los FPS fueran uno de los géneros de videojuegos más populares en la industria. Este juego consistía en acabar a los soldados nazis y unos monstruos controlados por ellos. Imagen 15 FPS wolfenstein 3D 41 DOOM: Es uno de los más populares FPS que generaron mayor influencia para el desarrollo de este tipo de juegos. Doom fue el videojuego que inicio la problemática de la violencia en estos juegos. 41 (the telegraph) 52 Imagen 16 FPS Doom 42 HALO: Uno de los mejores juegos de disparos, con una fascinante historia y modelo de juego multijugador. Este juego fue el que posiciono a Microsoft como una potencia en el mercado de las consolas y desarrollo de videojuegos. Este es otro de los títulos que popularizo el género FPS como uno de los de mayor audiencia. Imagen 17 FPS Halo 43 Call Of Duty: Uno de los juegos con mayor nivel de ventas a nivel mundial, se encuentra entre los más populares del genero FPS este juego ya tiene 8 versiones en el mercado todas con un gran nivel de éxito sobre todo por las 42 (the telegraph) 43 (the telegraph) 53 partidas multijugador, este es un juego multiplataforma que se encuentra para la mayoría de consolas en el mercado como PS3, XBOX 360, PC, Wii. Imagen 18 FPS Call of Dutty 44 7.2. Motores 7.2.1. UDK (Unreal Development Kit) Imagen 19 Logo Motor Unreal 45 El UDK es un motor de videojuegos que provee una gran variedad de herramientas necesarias para el desarrollo de videojuegos, combinando desde el diseño 3D hasta la programación de los videojuegos. UDK es uno de los motores de videojuegos más potentes actualmente y de uso libre. Este motor de videojuegos es actualizado constantemente agregando mejoras y nuevas herramientas que facilitan y mejoran el desarrollo de videojuegos, el UDK contiene “Unreal Editor” que permite importar, crear contenido y niveles en los 44 (Activision, Infinity ward) 45 (engine) 54 juegos, también contiene “-UnrealFrontend” usado para desarrollar, empaquetar y publicar las aplicaciones hechas con el motor y contiene la herramienta ActorX que es usada para importar modelos y animaciones de diferentes programas como Maya, 3DMax entre otros.46 7.2.1.1. Requerimientos del UDK47  Los requerimientos mínimos para desarrollar con el UDK son:  Windows XP SP2 con DirectX 9.0c  Procesador de 2GHz o superior  2GB de memoria RAM o superior  Tarjeta Gráfica que soporte Shader Model 3.0, como una nVidia GeForce 7800  Los requerimientos recomendados para desarrollar con el UDK son:  Windows 7 64-bit  Procesador multinucleo de 2.0 GHz  8 GB de memoria RAM  Tarjeta Gráfica NVIDIA 8000 series o superior 7.2.1.2. Generalidades del UDK El UDK usa un lenguaje de programación llamado UnrealScript que es orientado a objetos y con características especiales para el desarrollo de videojuegos. 46 Unreal Development Network [En línea]. - 13 de Marzo de 2011. - http://udn.epicgames.com/Three/DevelopmentKitGettingStarted.html. 47 Unreal Development Network [En línea]. - 13 de Marzo de 2011. - http://udn.epicgames.com/Three/UE3MinSpecs.html. 55 Los diseñadores, artistas, animadores y los expertos en musicalización pueden usar el UnrealEditor para realizar gran parte de su trabajo desde crear texturas, materiales y usar contenido existente en el motor para la creación de contenidos personalizados para videojuegos. 7.2.1.3. Antecedentes del uso del UDK Este motor se ha utilizado para el desarrollo de diferentes videojuegos, algunos de los más reconocidos son:  Gears Of War  Unreal Torunament  Sanctum 7.2.2. Unity 3 Imagen 20Logo Unity Unity es un motor de videojuegos el cual busca democratizar el desarrollo de videojuegos para que esté disponible a cualquier persona que desee crear un contenido interactivo en 3D por lo cual su uso es libre. Unitiy es una herramienta que ha sido diseñada para permitir la creación de sorprendentes juegos, esta herramienta permite hacer de cada juego una pieza maestra, permite tener juegos de alta calidad y multiplataforma. 48 48 ( Unity) 56 7.2.2.1. Plataformas soportadas  WEB  PC  MAC  Android  iOS ( iPhone and iPad)  Nintendo Wii  Ps3 (Play Station 3)  Xbox 360 7.2.2.2. Soporte gráficos de diferentes herramientas de diseño como  Maya  3ds Max  Cinema 4D  Cheetah 3D  Blender 7.2.2.3. Lenguajes de programación soportados  Javascript  C Sharp (C#)  Phyton 57 7.2.2.4. COMPONENTES Renderizado: optimiza la calidad y el rendimiento. Iluminación: permite crear ambientes con mayor precisión ya que permite realizar la edición en el motor y observar los resultados en tiempo real. Terrenos: permite crear terrenos con excelentes vistas y calidad de una manera rápida. Física: permite hacer cuerpos suaves que interactúen con el ambiente físicamente correcto y permite que los objetos actúen bajo el control de la física utilizando cuerpos rígidos. Audio: soporta formatos de video como MOV, AVI, ASF, MPG, MPEG, MP4VIDEO y formatos de audio como MP3, Ogg Vorbis, AIFF, WAV. Tiene características para agregar distorsión a los sonidos según sea necesario en el ambiente creado, permite que los sonidos sean más realistas según el ambiente. Programación: provee flexibilidad y facilidad para duplicar, remover, cambiar propiedades de los objetos, todos los objetos pueden ser referenciados directamente por su nombre. Redes: facilita la complejidad de la creación de redes, el convertir un juego de un solo jugador en uno multijugador en red requiere solo pocos cambios al código existente. 7.2.2.5. Antecedentes de Unity49  ShadowGun  Interstellar Marines  Battlestar Galactica 49 (unity) 58 7.2.3. Cryengine Imagen 21 Logo cryENGINE 3 50 El CryEngine es una solución avanzada que supera las expectativas para la creación de juegos, películas, simulaciones de alta calidad y aplicaciones interactivas. CryEngine 3 es la solución para el desarrollo de videojuegos para PC, Xbox360 y Playstation3 que es realmente de la siguiente generación. 7.2.3.1. Componentes Iluminación en tiempo real: ofrece manejo dinámico del tiempo del día. Estilo visual: ofrece graduación de colores en los escenarios, mezclas de sombras. Mundos destruibles: integra la física para hacer interacción completa y realista con el escenario. Haciendo escenarios destruibles y deformables. Inteligencia artificial avanzada: posee un sistema dinámico de cobertura, sistema de reacciones a golpes, esto hace que las reacciones de los personajes y enemigos sea mucho más realista y adecuada a la situación de juego. 50 (crytek) 59 Creación en vivo: pude apreciarse en tiempo real como se ve el desarrollo en la consola o plataforma deseada. Personajes realistas: posee un sistema de animación facial. La siguiente generación de gráficos en tiempo real: provee el Renderizado más rápido en el mundo. 7.2.3.2. Antecedentes de CryEngine51 Crysis Crysis2 Farcry 7.3. Herramientas de modelado y animación 7.3.1. Autodesk 3DS MAX Studio Imagen 22 Logo 3Ds Max estudio 3Ds Max Studio es un software que permite el uso de diferentes herramientas para el modelado, rigging, animación, renderizado y composición 3D, usado para realizar desde imágenes publicitarias, cabezotes de televisión, cortos de animación películas animadas, modelado para videojuegos y modelado arquitectónico. 3DS Max provee herramientas que permiten realizar texturas realistas, integrando elementos como pelo, piel y telas (ropa) con dinamismo en los movimientos para hacer las animaciones más realistas. 3DS Max ha sido utilizado para videojuegos como Dance Central (Imagen 23) de la empresa Harmonix para diseñar los modelos de los personajes y las 51 (crytek) 60 animaciones de los mismos para darles a los personajes movimientos más realistas.52 Imagen 23 Videojuego Dance Central 7.3.1.1. Requerimientos del sistema53 Los Requerimientos de Hardware mínimos para poder utilizar satisfactoriamente 3DS Max son:  Procesador Intel® Pentium® 4 1.4 GHz o su equivalente en procesadores AMD que use la tecnología SSE2 technology.  2 GB de memoria RAM (4 GB recomendado).  2 GB espacio de intercambio (4 GB recomendado).  3 GB libres de espacio en el disco duro  Direct3D® 10 technology, Direct3D 9, or OpenGL-capable graphics card† (256 MB or higher video card memory, 1 GB or higher recommended). 52 (Kim) 53 (Kim) 61  Three-button mouse with mouse driver software.  DVD-ROM driver.  Microsoft® Internet Explorer® 8.0 internet browser or higher or Mozilla® Firefox® 3.0 internet browser or higher.  Internet connection for web downloads and Autodesk® Subscription- aware access. 7.3.2. Blender Es una aplicación integrada que permite la creación de un rango diverso de contenido 2D y 3D, tiene una amplia gama de funcionalidades de modelado, texturizado, iluminación, animación y post-producción en un solo paquete, Blender tiene una arquitectura abierta, es uno de las aplicaciones de gráficos 3D open source más populares en el mundo.54 7.3.2.1. Características:55  Contiene una Suite de creación completamente integrada, ofreciendo un amplio rango de herramientas para la creación de contenido 3D, incluyendo, modelado, texturizado, animación, partículas, scripting, simulación, renderizado, post-producción y creación de juegos.  Utiliza librerías graficas de OpenGL las cuales son uniformes en todas las plataformas y puede ser personalizable con scripts en phyton, está listo para utilizar en plataformas Windows, Linux, OS X, Sun otros sistemas operativos.  Tiene un ejecutable de tamaño pequeño y de fácil distribución.  Flexible y totalmente configurable 54 (Wiki Blender , 2011) 55 (Blender, 2011) 62  Cualquier ventana puede ser personalizada para tener la vista deseada.  Interface estable y consistente en todas las plataformas.  Interface gráfica para desarrollar scripts en phyton.  Un rango amplio de tipos de objetos 3D, polígonos, superficies, curvas entre otros. 63 8. METODOLOGÍA GENERAL DE DESARROLLO Al momento de elegir nuestra forma de desarrollo en la investigación y creación, nos encontramos dos metodologías con características que son útiles para el fin de nuestro proyecto, estas son: la metodología en espiral y Extreme programing. 8.1. Modelo Espiral Es un modelo de desarrollo de software que está basado en múltiples iteraciones, donde de cada una se obtiene un prototipo hasta llegar al desarrollo completo del proyecto. Para cada iteración se completa un ciclo de vida el cual está formado por diferentes etapas y al completar la iteración se produce un prototipo y se procede a realizar una nueva iteración en la cual se define cuales requerimientos se van a implementar y qué ajustes se deben realizar dependiendo del prototipo anterior. Las etapas de las que está compuesto cada ciclo son: Definición de Objetivos: Se definen los objetivos específicos. Se identifican las restricciones del proceso y el producto Se estipula un plan detallado de administración Se identifican los riesgos del proyecto (para planear estrategias alternativas) Evaluación y reducción de riesgos: Análisis detallado para cada uno de les riesgos del proyecto Se identifican los para reducir dichos riesgos Desarrollo y validación: Se elige el modelo para el desarrollo del sistema Planeación: Se revisa el proyecto y se toma la decisión de si se debe continuar con un ciclo posterior de la espiral. 64 Al estar evaluando constantemente los riesgos del desarrollo nos permite detectar las posibles fuentes de riesgo, para poder tener un plan secundario (estrategia de resolución de riesgos). Este modelo define al principio de cada ciclo una parte de negociación con el cliente que además sirve para definir las siguientes actividades: Identificación del sistema o subsistema clave Determinación de las condiciones 8.2. Modelo Extreme programming (XP) Es una metodología de desarrollo de software basada en un concepto de simplicidad, comunicación y retroalimentación. Esta metodología busca brindarle a todo el equipo de trabajo la puesta en marcha de prácticas simples, con suficiente retroalimentación en cada etapa del desarrollo del proyecto. Esta retroalimentación logra poner a todo el equipo de trabajo en sintonía con una única situación y así poder realizar los ajustes necesarios a cada requerimiento según la necesidad.56 Esta metodología es ágil y se adapta a equipos de desarrollo pequeños, incluyendo en todo momento al cliente para la definición de requerimientos y evaluación de los avances del proyecto. De esta manera, se desarrollan uno a uno los requerimientos permitiendo realizar ajustes a cada uno en cualquier etapa del desarrollo. Extreme Programming se enfoca en el trabajo en equipo donde todos los miembros deben participar en la retroalimentación, evaluación de problemas, definición de requerimientos y proposición de soluciones. Extreme Programming se compone de cinco etapas que se ejecutan de manera iterativa durante el desarrollo del proyecto.57 Planeación Gestión 56 Jeffries Ronald E. XProgramming [En línea]. - 21 de 03 de 2011. - http://xprogramming.com/book/whatisxp/. 57 Extreme Programming [En línea]. - 22 de 03 de 2011. - http://www.extremeprogramming.org/. 65 Diseño Codificación Pruebas 9. METODOLOGÍA ESPECÍFICA Se propone usar conjuntamente la metodología en Espiral y la metodología Extreme Programming dado que el ciclo de vida del modelo en Espiral se ajusta adecuadamente al desarrollo de proyectos complejos y dinámicos como el que se va a implementar ya que permite un cubrimiento completo del proceso de desarrollo del software. Se desea combinar con el modelo Extreme Programming ya que permite una mayor flexibilidad y se ajusta más a las necesidades del equipo de desarrollo y a las características mismas del proyecto. Esta metodología permite realizar ajustes a los requerimientos en el transcurso del proceso sin exigir el cambio del proyecto, permite enfocarse en los requerimientos uno por uno y tener prototipos del proyecto rápidamente, también permite corregir la mayor cantidad de defectos (bugs) encontrados en el sistema, así mejorando su calidad sin una dedicación de tiempo excesiva. Debido a que se implementan estas metodologías, en el desarrollo del documento se incluyen iteraciones que hacen referencia a la evolución que se llevo por cada requerimiento y actividad desarrollada, cada iteración muestra un cambio hecho en la actividad hasta llegar al implementado. 66 10. PRESENTACIÓN En un planeta llamada thera se encuentra una raza llamada nohumas que son los seres más inteligentes del planeta, pero son muy poco interesados en el aseo y el cuidado ambiental. Después de varios años de indiferencia sobre lo que hacían al no cuidar su ambiente, thera empezó a reaccionar de forma catastrófica; como medida de solución se desarrolló un plan para la limpieza del planeta, el objetivo era enviar todos los desechos hacia el sol para que este los incinerara, pero al momento de reunir toda la basura en un solo lugar sin clasificarla, se crearon nuevos microorganismos que eran mortales para los nohumas, al intentar destruir estos nuevos seres orgánicos con una sustancia química, hicieron que estos crecieran descontroladamente creando la raza subara. En el susto y la confusión los nohumas deciden atacar esta nueva raza, al enfrentarse contra los subaras, los nohumas fueron derrotados casi sin lograr hacerles daño alguno ya que no conocían su comportamiento ni sus debilidades y fortalezas. Como plan de contingencia decidieron crear un grupo llamado Nova spes conformados por una nave llamada “suyana” y un equipo de tierra, se les dio la tarea de descubrir como destruir esta nueva raza. En este juego el personaje principal maneja la nave y tiene la tarea de capturar o destruir los subaras que se interpongan en su camino. 67 11. ARQUITECTURA DEL PROTOTIPO 11.1. Especificación de requerimientos NÚMERO RF-001 NOMBRE Tener interacción con el teclado FUENTE usuario TIPO Requisito Restricción PRIORIDAD Alta/Esencial Media/Deseado Baja/Opcional DESCRIPCIÓN El usuario debe poder interactuar con el juego haciendo uso del teclado para realizar diferentes acciones dentro de este. Tabla 2 RF Tener interacción con el teclado NÚMERO RF-002 NOMBRE Tener interacción del mouse FUENTE usuario TIPO Requisito Restricción PRIORIDAD Alta/Esencial Media/Deseado Baja/Opcional DESCRIPCIÓN El usuario debe poder interactuar con el juego haciendo uso del mouse para realizar diferentes acciones dentro de este. Tabla 3 RF Tener interacción con el mouse 68 NÚMERO RF-003 NOMBRE Manejar colisiones con un comportamiento físico FUENTE sistema TIPO Requisito Restricción PRIORIDAD Alta/Esencial Media/Deseado Baja/Opcional DESCRIPCIÓN Los objetos que se encuentren en el escenario del juego deben tener un comportamiento acorde con el contexto del juego en el cual se manejen colisiones entre cada objeto con el resto de objetos en el escenario, este comportamiento está definido por las leyes de la física de newton. Tabla 4 RF Manejar colisiones con un comportamiento físico NÚMERO RF-004 NOMBRE Controlar Inteligencia artificial para el comportamiento de los enemigos del personaje FUENTE sistema TIPO Requisito Restricción PRIORIDAD Alta/Esencial Media/Deseado Baja/Opcional DESCRIPCIÓN Los enemigos presentes en el juego deben tener un comportamiento el cual les permita tomar decisiones de acuerdo a las situaciones que se presenten el juego, la inteligencia artificial que se va a aplicar a los enemigos dentro del prototipo se define para la elegibilidad de su posicionamiento en el escenario y de la elegibilidad de cuando atacar al personaje. Tabla 5 RF Controlar inteligencia artificial para el comportamiento de los enemigos del personaje 69 NÚMERO RF-005 NOMBRE Manejar efectos de audio para las interacciones del jugador con el videojuego FUENTE usuario TIPO Requisito Restricción PRIORIDAD Alta/Esencial Media/Deseado Baja/Opcional DESCRIPCIÓN Cuando el jugador realice alguna acción dentro del escenario debe emitir sonido en la interacción, para el prototipo se definió utilizar efectos de sonido solo para el disparo. Tabla 6 RF Manejar efectos de audio para las interacciones del jugador con el videojuego NÚMERO RF-006 NOMBRE Iniciar una partida FUENTE usuario TIPO Requisito Restricción PRIORIDAD Alta/Esencial Media/Deseado Baja/Opcional DESCRIPCIÓN El jugador debe poder iniciar una partida en la cual empiece a jugar, en el prototipo solo tendrá la opción de iniciar partida en un único nivel de juego Tabla 7 RF iniciar partida 70 NÚMERO RF-007 NOMBRE Mostrar puntaje del jugador FUENTE usuario TIPO Requisito Restricción PRIORIDAD Alta/Esencial Media/Deseado Baja/Opcional DESCRIPCIÓN El jugador debe tener la opción de ver su puntaje mientras se encuentra jugando, en el prototipo el jugador debe tener la opción de visualizar el puntaje en el lado superior derecho de la pantalla. Tabla 8 RF Mostrar puntaje del jugador NÚMERO RF-008 NOMBRE Mostrar estado de energía, vida y municiones. FUENTE usuario TIPO Requisito Restricción PRIORIDAD Alta/Esencial Media/Deseado Baja/Opcional DESCRIPCIÓN El jugador debe tener la opción de ver su nivel de vida, energía y municiones mientras se encuentra jugando, en el prototipo el jugador debe tener la opción de ver esta información en el lado inferior izquierdo de la pantalla. Tabla 9 RF Mostrar estado de energía, vida y municiones 71 11.2. Requerimientos no funcionales NÚMERO RNF-001 NOMBRE Modelar los personajes con no más de 7000 polígonos FUENTE Sistema TIPO Requisito Restricción PRIORIDAD Alta/Esencial Media/Deseado Baja/Opcional DESCRIPCIÓN En el momento de realizar el modelamiento de los personajes estos no debe tener más de 7000 polígonos, en caso de excederse esto afectara el rendimiento del juego. Tabla 10 RNF Modelar personajes con más de 7000 plígonos NÚMERO RNF-002 NOMBRE Crear las texturas de los escenarios deben ser de cualquier combinación de resoluciones entre (8,10,32, 64,128, 256, 1024, 2048) FUENTE Sistema TIPO Requisito Restricción PRIORIDAD Alta/Esencial Media/Deseado Baja/Opcional DESCRIPCIÓN Las texturas que se apliquen a los personajes es necesario que estén en estas resoluciones para que se puedan mapear correctamente a los objetos. Ejemplo: una textura pe ter una resolución de 1024x256 o 256x64 Tabla 11 RNF Crear las texturas de los escenarios 72 NÚMERO RNF-003 NOMBRE Modelar los escenarios con no más de 60´000 polígonos FUENTE sistema TIPO Requisito Restricción PRIORIDAD Alta/Esencial Media/Deseado Baja/Opcional DESCRIPCIÓN En el momento de realizar el modelamiento de los escenarios estos no debe tener más de 60000 polígonos, en caso de excederse esto afectara el rendimiento del juego. Tabla 12 Modelar los escenarios con más de 60.000 polígonos NÚMERO RNF-004 NOMBRE Exportar todos los modelos en formato FBX FUENTE sistema TIPO Requisito Restricción PRIORIDAD Alta/Esencial Media/Deseado Baja/Opcional DESCRIPCIÓN Los modelos que se carguen a Unity deben ser cargados en formato FBX ya que es un estándar para utilizarlos correctamente y sin generar problemas. Tabla 13 Exportar todos los modelos en formato FBX 73 NÚMERO RNF-005 NOMBRE Crear las texturas en formato PNG FUENTE sistema TIPO Requisito Restricción PRIORIDAD Alta/Esencial Media/Deseado Baja/Opcional DESCRIPCIÓN Las texturas que se carguen a Unity deben ser cargadas en formato PNG ya que es un estándar para utilizarlos correctamente y sin generar problemas. Tabla 14 Crear las texturas en formato PNG 74 11.3. Diagramas de clases En esta sección del documento se presentaran los diferentes diagramas de clases que se plantearon en el diseño del prototipo, se muestran en diferentes iteraciones la evolución del diagrama y el aplicativo conforme se encontraban fallos y mejoras en el proceso de desarrollo del prototipo, los diagramas que hacen referencia a estos pasos son Imagen 24, Imagen 25, Imagen 26 e Imagen 27 que es el diagrama definitivo utilizado en la implementación. Iteracion1: Imagen 24 Diagrama de clases primera iteración 75 Iteracion2: Imagen 25 Diagrama de clases segunda iteración 76 Iteracion3: Imagen 26 Diagrama de clases tercera iteración 77 Iteración 4: Imagen 27 Diagrama de clases ultima iteración 78 11.4. Casos de uso En esta sección del documento se encuentran los casos de uso identificados con su respectivo diagrama (Imagen 28) y especificación. 11.4.1. Diagrama de casos de uso Imagen 28 Diagramas de Casos de uso 58 58 Desarrollado en la herramienta Enterprise Architecture por los autores 79 11.4.2. Especificación casos de uso CASO DE USO 1. Iniciar Partida NOMBRE: Incitar Partida ALIAS: iniciar Partida ACTORES : Jugador, Sistema DESCRIPCION: Este caso de uso hace referencia a cuando el jugador desea iniciar a jugar debe activar en el menú del juego la opción para empezar a jugar. PRE-CONDICION 1 : REFERENCIA: RF-006, RF-002 FLUJO NORMAL DE EVENTOS: El Jugador abre el juego. El sistema carga el menú principal del juego. El jugador elige la opción "PLAY GAME". El sistema valida la opción seleccionada al ser "PLAY GAME", el sistema carga la escena del prototipo y cambia la pantalla del jugador del menú al nivel del juego. El jugador inicia la partida y queda listo para empezar a jugar FLUJO ALTERNO : El jugador abre el juego. El sistema carga el menú principal del juego. El jugador elige la opción "QUIT". El sistema cierra el juego y libera todos los recursos. 80 POST CONDICIONES : Se inicia la partida y el jugador queda en la pantalla del escenario listo para jugar e interactuar con el escenario Tabla 15 Caso de uso Iniciar partida CASO DE USO 2. Jugar al Juego NOMBRE: Jugar al Juego ALIAS: Jugar al Juego ACTORES : Jugador, Sistema DESCRIPCION: Este caso hace referencia a cuando el jugador inicia el juego y empieza a interactuar con el escenario y sus objetos en el único nivel disponible. PRE-CONDICION 1 : Debe haber iniciado una partida y el sistema haber cargado los recursos del nivel REFERENCIA: RF-001, RF-2, RF-003, RF-004, RF-005, RF-007, RF-008 FLUJO NORMAL DE EVENTOS: El Jugador empieza a jugar y a desplazarse en el escenario con el teclado y el mouse. El sistema realiza actualización de las gráficas en la pantalla dependiendo de las interacciones de los objetos en la escena con una frecuencia determinada por los FPS (frame por segundo) a los cuales este corriendo la máquina. Por cada frame o actualización de la pantalla el sistema verifica detección de colisiones de los objetos en la escena. El sistema mueve los enemigos basados en el algoritmo A* para controlar la inteligencia artificial de los caminos que deben recorrer. 81 El sistema mueve y calcula cuando el enemigo debe atacar al jugador. El sistema actualiza en pantalla la posición de los objetos de la escena. El sistema actualiza en pantalla la posición del jugador en la escena según la interacción que haga con el teclado. El sistema actualiza en pantalla la posición de la mira del jugador según su interacción con el mouse. El sistema actualiza la vida, energía, municiones del jugador. El sistema actualiza la vida de los enemigos. El sistema actualiza el puntaje del jugador. El sistema destruye los objetos que pierden su vida y los elimina de la escena. El sistema verifica el estado de los objetivos que el jugador debe cumplir. El jugador cumplió los objetivos. El sistema arroja que el jugador gano la partida. FLUJO ALTERNO : 82 POST CONDICIONES : El jugador interactúa con el escenario y los objetos en el disfrutando de la experiencia de juego Tabla 16 Caso de Uso Jugar al juego CASO DE USO 3. Pausar Juego NOMBRE: Pausar Juego ALIAS: Pausar Juego ACTORES : Jugador, Sistema DESCRIPCION: Este caso de uso hace referencia cuando el jugador quiere parar de jugar pero no perder su avance, esta pausa se hace cuando se quiere reanudar el juego dentro de un tiempo corto, el jugador pausa el juego y al reanudarlo quedara en la posición en la que se encontraba. PRE-CONDICION 1 : el jugador debe estar jugando la partida REFERENCIA: RF-001, RF-002, RF-007, RF-008 FLUJO NORMAL DE EVENTOS: El jugador presiona la tecla ESC. El sistema verifica la tecla presionada. Detiene el juego guardando las posiciones y estados de todos los objetos dentro de la escena. Despliega un menú de opciones FLUJO ALTERNO : POST CONDICIONES : El juego se detiene y el sistema queda a la espera de una acción del jugador dependiendo de la opción seleccionada en el menú que se despliega. Tabla 17 Caso de Uso Pausar juego 83 CASO DE USO 4. Reanudar Juego NOMBRE: Reanudar Juego ALIAS: Reanudar Juego ACTORES : Jugador, Sistema DESCRIPCION: Este caso de uso hace referencia cuando el jugador quiere parar el juego pero no perder su avance, esta pausa se hace cuando se quiere reanudar el juego dentro de un tiempo corto, el jugador pausa el juego y al reanudarlo quedara en la posición en la que se encontraba. PRE-CONDICION 1 : El juego debe estar en estado pausado REFERENCIA: RF-001, RF-002, RF-007, RF-008 FLUJO NORMAL DE EVENTOS: El Jugador selecciona reanudar en el menú de pausa del juego El sistema carga la escena en el último estado antes de pausarlo FLUJO ALTERNO : El jugador selecciona una opción diferente a reanudar en el menú de pausa El sistema responde con la acción seleccionada pero no reanuda la partida POST CONDICIONES : El jugador vuelve a jugar en el estado en que se encontraba al momento de pausar el juego Tabla 18 Caso de uso Reanudar Juego 84 CASO DE USO 5. Detener Partida NOMBRE: Detener Partida ALIAS: Detener Partida ACTORES : Jugador, Sistema DESCRIPCION: Es cuando el jugador no desea jugar más pero no salir del juego. PRE-CONDICION 1 : El juego debe estar en estado pausado REFERENCIA: RF-001, RF-002 FLUJO NORMAL DE EVENTOS: el jugador selecciona en el menú de pausa la opción de detener juego. El sistema evalúa la opción seleccionada, libera los recursos. El sistema destruye todas las instancias de los objetos de la escena del juego. El sistema re direcciona al menú principal del juego. FLUJO ALTERNO : El jugador selecciona una opción diferente a reanudar en el menú de pausa. El sistema responde con la acción seleccionada pero no detiene la partida. POST CONDICIONES : El sistema muestra el menú principal del juego Tabla 19 Caso de Uso Detener Partida 85 CASO DE USO 6. Salir del juego NOMBRE: Salir del juego ALIAS: Salir del juego ACTORES : Jugador, Sistema DESCRIPCION: El jugador desea dejar de utilizar juego y salir de la aplicación PRE-CONDICION 1 : El juego debe estar en el menú principal. REFERENCIA: RF-001, RF-002 FLUJO NORMAL DE EVENTOS: El jugador selecciona la opción "Quit" en el menú principal del juego El sistema evalúa la opción seleccionada, libera los recursos. El sistema destruye todas las instancias de los objetos del menú. El sistema cierra el aplicativo. FLUJO ALTERNO : El jugador selecciona una opción diferente a "QUIT" en el menú principal del juego. El sistema responde con la acción seleccionada pero no cierra la aplicación. POST CONDICIONES : El sistema muestra el menú principal del juego Tabla 20 Salir del Juego 86 11.4.3. Diagrama de secuencias Imagen 29 Diagrama secuencia iniciar juego Imagen 30 Diagrama secuencia iniciar salir juego 87 Imagen 31 Diagrama de secuencia Jugar 88 Imagen 32 Diagrama de secuencia Pausar juego Imagen 33 Diagrama de secuencia Reanudar juego 89 Imagen 34 Diagrama de secuencia Salir juego desde el menú Pausa 90 12. DISEÑO DEL JUEGO59 12.1. Definición temática del juego Aquí se desarrollan los aspectos generales según lo especificado anteriormente (Imagen 4) 12.1.1. Temática Iteración 1: Juego de Acción FPS donde se encuentra un héroe que se enfrenta contra una cantidad de enemigos los cuales tiene que destruir o capturar dependiendo de la misión en que se encuentre. Iteración 2: Para atacar estos enemigos se tiene una variedad de armas que tiene diferentes efectos en diferentes monstruos. Iteración 3: El jugador tendrá que seleccionar con precisión el tipo de arma que tendrá que usar para destruir a un enemigo, ya que existirán varias clases de enemigos que serán resistentes a diferentes tipos de armas. Iteración 4: Al dispararle a un enemigo con un arma equivocada puede hacer que el enemigo incremente su vida o se cure. Para poder capturar un enemigo tendrá que dejarlo con la vida en un nivel crítico, y así usar la acción capturar para que sea encapsulado. Cuando el enemigo este destruido, este arrojara unos objetos que el usuario tendrá que recoger para obtener energía, ataque, o podrán hacerle daño. 59 Al haber usado el método en espiral como parte de nuestro desarrollo se verán varias iteraciones en algunos de los pasos del diseño 91 12.2. Definir plataforma Iteración 1: Este proyecto se ejecutara en la plataforma de un computador ya que se especificó desde un principio que la interacción del jugador con el Demo seria mediante teclado y mouse. El desarrollo para consolas es algo más largo ya que la tarea de compilación se vuelve un poco más complicada y al estar en constantes cambios en el Juego por el modelo de desarrollo que se eligió se convertiría en tiempo perdido. Iteración 2: El motor que se eligió para el desarrollo permite la implementación en la consola PlayStation3 por lo cual se podría estar pensando en adaptar el demo en una segunda fase para probarla en esta consola. 12.2.1. Interacciones con el jugador Acciones La experiencia de juego que vivirá el jugador estará delimitada por las siguientes acciones:  Avanzar  Desplazarse a la izquierda  Desplazarse a la derecha  Retroceder  Disparar  Capturar objetos  Saltar  Turbo (aumentar velocidad de avance)  Cambiar tipo de arma A continuación en las Imagen 35, Imagen 36 e Imagen 37 se especifica como el jugador interactúa con el juego a través del teclado y el mouse controlando las acciones anteriormente escrito. 92 Iteración 1: Imagen 35 Controles Movimiento personaje principal Imagen 36 Movimiento Visión Cámara personaje Principal 93 Iteracion 2: Imagen 37 Comandos Extra personaje Principal Iteración 3: Poder pausar le juego en cualquier momento de la partida al presionar la tecla escape 12.3. Escribir concepto de la historia A continuación se muestra la historia propuesta descrita por capítulos. Capítulo 1 - El comienzo de todo Caivan: este planeta alguna vez fue hermoso, su gran variedad de flora, su cantidad de hermosos y…deliciosos animales su jugosa carne, cuando se cocinaba al carbón…mmm bueno me estoy perdiendo! THERA agg!! Qué tiempos aquellos, donde todavía se encontraban lagos donde se veía el fondo por lo clara y limpia que estaba el agua, que en algunos lados se podía beber sin necesidad de pagar por ella…. Jejeje que torpes fuimos una raza tan inteligente como los nohumas, que ha demostrado con el tiempo sus grandes potenciales, no tuvimos la característica más importante… el respeto, no solo frente a nosotros mismos, sino frente al planeta… a estas alturas de la vida no fuimos capaces de darnos 94 cuenta del daño que le hicimos al planeta, por no reciclar nuestros desechos, por no ser más cuidadosos al momento de no contaminar el agua con los residuos de nuestras grandes empresas, por no contaminar el aire, por … muchas cosas, ahora es que nos damos cuenta que para ver una flor hermosa solo la podemos ver en papel, que si queremos volver a comer carne, nos tocaría inventar nuevos animales porque los que existen ya no son comestibles y los que sí lo eran se extinguieron. Pero bueno más tarde que nunca nos empezamos a dar cuenta de este daño que pronto se volvería irreversible. Capítulo 2 - La mala decisión En nuestro planeta las ordenes la dan un grupo de ancianos sabios, que al ver que su pueblo era reducido por nuevas enfermedades mortales y que los alimentos comenzaban a escasear, hicieron crear un grupo con el objetivo de descubrir cuál era el problema y le dieran una solución, cuando el grupo de personas se reunió para determinar el problema, no tardaron en darse cuenta cual era, comenzaron a existir nuevas enfermedades por que el nivel de contaminación está muy alto, al no existir un control para el manejo de los desechos de cualquier tipo. La escases de comida es por la misma razón, como se va a cultivar comida si la tierra cada día se vuelve más infértil … cuando se informó del problema, el grupo de ancianos pregunto sobre la solución que le deberían dar a este problema… jejeje…nunca aprendemos de nuestros errores … se acordó que la solución más sencilla era deshacerse de los contaminantes lo más rápido posible, así que el plan era enviar todos estos contaminantes fuera del planeta, directamente al sol, donde todo esto se consumiría por su gran temperatura; se accedió a esta opción y el grupo fue asignado a cumplir esta tarea. Ellos al no ver otra alternativa, aceptaron y desde allí se hicieron llamar el grupo recolectores, estas personas se enfocaron en mirar cómo deshacerse de todo lo que contaminara el planeta, así que decidieron buscar la zona más contaminada, y juntar todo en ella, para que después por medio de algún transporte, este sea llevado al sol, a esta zona se le denominó zona impura. Capítulo 3 - Efectos de una mala decisión Los recolectores crearon naves encargadas de la recolección de los contaminantes de las zonas haciendo que la tarea se hiciera más rápido; cuando 95 ya se había recogido gran cantidad de los residuos en varias zonas importantes del planeta y llevándolas a la zona impura se empezaron a observar que la gente que ingresaba a la zona, se enfermaba y al tiempo se le declaraba muerte cerebral aún que todo su cuerpo seguía funcionando normalmente, ahí fue cuando descubrieron que se estaban creando un nuevo tipo de micro organismos que atacaban todo ser vivo y lo consumían por dentro haciendo de este un ser sin conciencia como una marioneta. Cuando los recolectores le dijeron al grupo de ancianos, estos decidieron seguir con el plan de recolectar la basura creando unos trajes para resistir dentro de la zona impura sin acabar muertos y un químico que destruyera este nuevo peligro, con el tiempo se inventó el químico que fue esparcido por toda la zona impura, esperando que fuera destruido todo micro organismo viviente en esta zona… pero los resultados fueron todo lo contrario, los micro organismos se adaptaron al químico y lo usaron a su favor para convertirse en una especia de ser viviente, que era altamente agresivo, fueron llamados subaras, esto fue algo que nadie se creía, era algo nunca antes visto, como era posible que de la basura se hubiera creado una nueva especie!! … eso fue un desastre total, el grupo de ancianos hizo que nuestras fuerzas atacaran a los subaras… a veces el miedo hace tomar muy malas decisiones, aunque sean llamados el grupo de ancianos sabios... Muchos compañeros murieron en esa batalla!! Por alguna extraña razón nuestra armas eran eficaces contra algunas criaturas, pero contra otras los hacía más fuertes… se desistió de seguir atacando la zona impura. Pero algo extraño paso con los subaras ya que nunca habían abandonado la zona impura, después del ataque comenzaron a invadir los alrededores de la zona impura sin perdonar a ningún ser viviente, estaban arrasando todo a su paso. su avance es lento pero efectivo, es como si la contaminación se propagara a todo su alrededor… solo unos pocos se quedaron no con el fin de proteger un sitio, sino con el fin de recolectar información sobre los subaras, en ese grupo estoy yo y varios compañeros y amigos, nuestro objetivo fue capturar a uno de estos subaras y poder estudiarlo en aquellos tiempos nos llamaban el escuadrón “C” liderados por una persona fría y calculadora que gracias a sus estrategias siempre teníamos las de salir victoriosos o escapar con la menor cantidad de bajas … esa persona era… no, no era yo, era jack, de él fue la gran idea de capturar una de estas criaturas y llevarla al centro de investigación pero cada vez que capturábamos una y salíamos del área contaminada se desintegraba, esto dio una gran pista en las investigaciones, cuando se llevó esta información al grupo de ancianos, ellos nos dieron todos los recursos necesarios para continuar con esta tarea, y construir las herramientas necesarias para acabar con este problema o aun quesea conseguir información para parar su avance. 96 Capítulo 4 - Una nueva esperanza Desde ese momento se nos dio el nombre “nova spes” al comienzo nos tocó crear una base en la zona de contaminación la cual era muy difícil de ocultar y defender, pero solo la necesitábamos mientras recopilábamos información de los subara, con el tiempo logramos entender que los subaras eran organismos que se componían de los diferentes contaminantes que se habían aglomerado en la zona impura, por eso las armas actuaban diferente en cada uno de estas criaturas, con el tiempo se empezó a ver la solución, se cogió la nave que usaban los recolectores y se modificó para no solo recolectar los desechos sino también poder combatir estas criaturas y además usar a su favor los desechos para mejorar su potencia, recuperar fuerzas, entre otras cosas que con el tiempo se le fueron agregando, todavía con la habilidad de limpiar la zona por donde estuviera, ya que los subaras se debilitaban en lugares más limpios; también nos empezaron a entrenar para defendernos de estas criatura, la contaminación en la zona impura era fuerte, los trajes que usaban los recolectares fueron mejorados pero aun así no se podía ingresar a todos los lugares ni por mucho tiempo en la zona impura, el deber de nosotros no era más que asegurar las zonas que se iban recuperando. Ya el proyecto de defender a THERA estaba teniendo buenos pasos se seleccionó a nuestro capitán jack como el piloto de la primera nave de prueba que se le dio el nombre de Suyana y a mí como el comandante de las fuerzas de tierra que se le dio el nombre de hoplón… aunque eso solo eran palabras… Capítulo 5 - Problemas La nave Suyana ya estaba en periodo de prueba e integración de las nuevas armas para ser lo más efectiva contra los subaras cuando de pronto hubo un ataque de subaras que nunca antes habíamos visto, fuimos atacados en lo que se suponía era el lugar más seguro contra los subaras y por estar limpio, estábamos confiados que no aparecerían, además no sabíamos contra que nos estábamos enfrentando; gracias a las rápidas acciones e instrucciones de jack fuimos capaces de contenerlos hasta que sacamos la nave de ahí, pero nuestras armas no eran totalmente efectivas contra esta amenaza desconocida, perdimos mucho tiempo de investigación en esa base, la nave no quedo totalmente completada y pasaría mucho tiempo hasta que lográramos volver a recuperar esa información para terminarla, sabemos que todavía hay muchas cosas que no conocemos de esta raza y… perdimos a nuestro piloto… jack fue mordido por uno de estos subaras en un brazo y para que no fuera contaminado, el mismo decidió quitarse el brazo… yo alcance a rescatarlo y sacarlo de la base pero su estado era crítico, 97 logro recuperarse pero los gérmenes alcanzaron a tener efecto en él, ya sus habilidades de combate no eran las mismas. Capítulo 6 - Cambios En ese instante fue cuando yo me postule como el nuevo piloto, nadie estaba de acuerdo con mi acción, solo jack y por lo que había demostrado en sus anteriores batallas y lo que hizo en la huida de la base, nadie le dijo nada; así que me aceptaron y me entrenaron; ahí fue cuando se cambiaron los papeles, ahora yo era el piloto y jack era el comandante de las fuerzas de tierra con la diferencia de que también me dirigía a mi desde la base, ya que todavía no se había recuperado. Viendo lo que había ocurrido en la base, se tomaron algunas modificaciones con la nave, ahora esta era capaz de capturar subaras debilitados en capsulas sin desintegrarlos para llevarlos hasta la nueva base y analizarlos así recoger la información desde un lugar más seguro que cerca de la zona impura. Capítulo 7 - Primera prueba La nave fue puesta en marcha poco después de que se encontrara un lugar seguro para la base, tocaba probar la nave para ver qué tan efectiva era contra estas criaturas, fue la primera misión que tuve solo, me toco contra una zona que estaba convirtiéndose en parte de la zona impura, mi objetivo era limpiar la zona y atrapar un subara para continuar con los análisis que se tenía además de poner a prueba las armas y los rayos recolectores, cuando llegue a la zona ya era un desastre, la fauna estaba desapareciendo rápidamente eran pocos subaras al menos unos 10 o 15 la verdad no me detuve a contarlos, empecé el ataque, me enrede al principio con las armas que tenía que usar con los subaras, y al momento de identificarlos se me hacía difícil, menos mal el escáner fue de gran ayuda, ya había destruido a 5 de ellos y había capturado a uno de estos, era difícil me estaba quedando sin energía para las armas y al intentar escapar de los subaras me alejé de los desechos que habían dejado los otros subaras que me servían para recuperar mis energías, fue una gran pelea, pasaron unos minutos pero para mí fueron como horas, ya solo quedaba uno de ellos cuando empecé a sentir fallos en la nave, alcance a destruir el último de los subaras antes de que la nave dejara de funcionar, todo estaba tranquilo porque ya no quedaban subaras pero luego recordé el subara que estaba en el contenedor, y que sin energía este no resistiría mucho. Intente mover la nave, pero esta no me respondía, estaba perdido… Pasaron unos minutos cuando escuche como el contenedor era destruido era cuestión de minutos hasta que el subara lograra encontrarme y 98 destruirme, yo mientras hacia lo posible para que este armatoste hiciera movimiento alguno… de pronto el subara le pegó a la nave haciendo que se sacudiera... todo quedo en blanco pero de un momento a otro, un disparo que salió de la nada a destruido al subara al principio no sabía que pensar cuando a lo lejos vi a mis compañeros… estaba salvado, el mecánico del grupo logró hacer funcionar la nave con un poco de los contaminantes y nos fuimos a la base, había sido una victoria un poco difícil pero buena para la experiencia. Me felicitaron mis compañeros por haber destruido a todas esas criaturas y por haber limpiado el sector yo solo, dándoles la posibilidad a ellos de ayudarme, cosa que por estar concentrado en sobrevivir al ataque de los subaras no había caído en cuenta. Capítulo 8 - El comienzo En este nivel, ya sabiendo lo que me esperaba en el campo de batalla, me aferre a la idea de que nova spes iba a ser la salvación de este planeta así que tenía que dar todo de mi para ayudar en la tarea, menos mal esta tarea no era toda para mí, el comandante jack y nuestro equipo de tierra los hóplon eran la verdadera fuerza de este proceso. Con el primer territorio conquistado descubrimos que los subaras tiene la capacidad de regenerarse después de haber sido destruidos, y no solo eso, pueden incrementar su fuerza con otros restos de subaras que estén cerca de ellos. Además descubrimos que hay una clase de subara que es el encargado de hacer que la contaminación se extienda y es escoltado por otros más. Se le informó a los ancianos sobre el éxito de la nave y el equipo de tierra y sobre la nueva forma de recopilar información, fue muy gratificante ver como ellos nos felicitaban sobre esta gran Azaña, nos pidieron crear más naves como estas y entrenar más equipos como el que teníamos... debimos crear copias de la información del a nave y de los entrenamientos a los equipos que se dejó en la base. Aquí empezó nuestras misiones verdaderas, nos tocó crear una estrategia para recuperar la información que se dejó en la base abandonada para así hacer de la construcción de las nuevas naves algo más rápido y eficaz, era una misión riesgosa porque esos subaras que desconocíamos nos estarían esperando pero todos sabían lo que ganaríamos si lográbamos le éxito de esta misión. 99 Capítulo 9 - El plan El plan era grande teníamos que hacernos camino hasta la base por toda esa contaminación, limpiar la zona para que el equipo de tierra pudiera ayudar, llegar a la torre de control reactivar las autodefensas cargando la nueva información de las armas que debe usar contra cada subara para ganar tiempo mientras era extraída la información que se necesitaba después por el mismo camino que se había limpiado anteriormente al emprender la retirada. pero jack propuso algo que todo el mundo sabía que era lo mejor … aunque mi vida dependiera de eso... tenía que ir yo solo en la nave y ponerme en la tarea de capturar uno de esos nuevos subaras para que las autodefensas si fueran efectivas mientras se recogía la información... maldito jack pensé que en serio me apreciaba... acepte porque sabía que era la única forma... otra vez yo solo contra estas criaturas era mi segunda misión y las dos veces me ha tocado solo pero confío en lo que me dacia el jefe y en la experiencia de que ya hemos peleado contra esa criatura, el problema es que no creo que me vaya a caer una criatura sola del cielo diciendo “oh aquí estoy ven y captúrame” … además no va a estar sola. Capítulo 10 - La variación del plan Una vez estando en las cercanías de la base me dispuse a buscar a esta criatura sin que me descubrieran aunque es un poco difícil con una nave tan grande como esta cuando la descubrí intente capturarla pero era demasiado fuerte, así que me toco pelear lo difícil era que no sabía con qué arma dispararle sin volverla más fuerte, decidí disparar con cada una un solo disparo a la vez a ver con cual le hacía daño... ninguna le hacía daño... por qué?? me preguntaba, cuando caí en cuenta que cuando peleamos con estas criaturas estas eran capaces de resistir en zonas limpias pero se notaba la diferencia de fuerza estando en una zona contaminada, así que me dedique a limpiar la zona mientras esquivaba los ataques de todos los subaras que iban llegando, ya cuando tenía un buen sector limpio me dispuse a atraerlo a él, pero llegaron esos subaras que contaminan las zonas, para poder tener una zona limpia tenía que destruir esos subaras así que me puse en esa tarea primero, estaba dura la tarea, pero aun así ya me estaba volviéndome un experto en manipular la nave y en no asustarme al pelear contra estas criaturas yo solo... esto era imposible, cada vez que destruía uno de esos subaras que contaminaba, aparecía otro, además me estaba distrayendo del verdadero objetivo, cada vez era más difícil recuperar la energía que gastaba en la batalla, así que decidí cambiar de estrategia, decidí arriesgarme a limpiar mirando hacia atrás para solo atacar a los subaras que me atacaran, pero como solo los subaras que yo quiero son los que soportan las zonas limpias sería más fácil capturarlo, después de un largo enfrentamiento, logre mi objetivo, logre dejar tan débil uno de estos nuevos subaras que lo capture y emprendí el escape, pero 100 esto no fue tarea fácil ya que no tenía mucha energía, me enfoque en destruir algunos subaras menores para recolectar energía y poder escapar, lo logre!! Fue difícil pero lleno de experiencias que me servirán para el futuro. Capítulo 11 - Continuando con el plan Analizando a esta criatura en la otra base, supimos como actuar contra ella, haciendo armas más fuertes que pudieran herirlo cuando se encuentra en zona contaminada, lo malo de esto era que la instalación de nuevas armas se había quedado en la base abandonada, ósea que hubo un nuevo cambio de planes, se le agrego a la misión el traer a la nueva base el sistema que instala las armas de la nave. ¡Se empezó a ejecutar el plan!, yo iba adelante limpiando el camino, mientras el equipo de tierra cruzaba por el recolectando lo que yo no recolectaba y evitando que los subaras volvieran a contaminar el sector, cuando llegue a la base me dedique a huir de los subaras que no podía destruir en la zona contaminada, mientras limpiaba y eliminaba a los que si podía, cuando llego el equipo de tierra, ellos si tenían la posibilidad de destruirlos, cuando se activaron las autodefensas nos dieron la ventaja, alcanzamos a limpiar el sector, pero jack nos gritaba que no nos confiáramos, así que seguimos con el plan, cuando estaban a punto de desarmar la máquina para llevárnosla, se dieron cuenta que todavía funcionaba, así que no desaprovecharon el tiempo que estaban dando las autodefensas, así que se decidió mejorar las armas de la nave, mientras se extraía la información de la nave y el entrenamiento, cuando se terminó con estas dos tareas, se pasó a desmontar la máquina que mejora la nave... pero cuando estábamos en esas, llegaron los refuerzos, eran demasiados para pelear contra ellos, las autodefensas estaban siendo destruidas muy fácilmente, toco pensar rápido, yo decidí hacerme carnada mientras ellos terminaban de desarmar la máquina, cuando salí de la base, se veía como seguían saliendo de todas partes, lo bueno era que había arto contaminante del que yo podía recargar mi energía, así que me puse en la tarea de “probar mis armas mejoradas”, se estaba volviendo más fácil destruir estas criaturas, pero eran demasiadas, haciendo mi tarea más complicada, cuando terminaron de desarmar la maquina les fue imposible cogerla porque los subaras ya habían entrado a la base, así que se dio la orden de la retirada... la verdad perdimos muchos camaradas no iba a dejar que el plan no se completara tal cual se había cuadrado. 101 Capítulo 12 - Por el todo o por el nada: En esta etapa el equipo de tierra había emprendido la huida, yo era su muro de contención para que no los persiguieran, así que los acompañe un rato, haciendo que todos los subaras solo se enfocaran en mí, cuando ya tenían una gran ventaja, me devolví a la base por la máquina, jack desde la base me gritaba que no lo hiciera, ya que esta vez no podría yo solo y que no había forma de cargar la máquina, pero yo tenía mi propio plan, jeje trabajar al lado de jack durante tantos años, también ha hecho que aprenda cosas de él, una de ellas es la de mirar a tu alrededor cuidadosamente. Me abrí camino de nueva hasta la base, donde todavía había autodefensas sobre viviendo a esa oleada de subaras entre y vi la máquina, con la capsula que se capturan los subaras, intente cogerla, captura gran parte de la maquina pero no era toda... solo esperaba que haya capturado las partes más importantes.. Cuando estaba saliendo de la base escuche como explotaban las ultimas autodefensas, me disponía a salir cuando vi en el escáner algo gigantesco, no lo podía creer era un subara del tamaño de una montaña yo pensé dos veces antes de atacarlo, porque si existían subaras medianos que eran capaces de resistir las armas, no me imaginaba como iba a reaccionar mis armas contra ese monstruo, cuando se alejó, me marche a toda velocidad a reunirme con el equipo de tierra. Capítulo 13 - A unos pasos de la total victoria Cuando me los encontré, estaban bajo ataque, maldición la llegada a la base iba a ser un gran regaño por dejar a el equipo de tierra solos, lo primero que hice fue aligerar el peso de la nave por la maquinaria, poniéndola en un carro de transporte que tenían para la herramienta, cuando hice esto limpie la zona, y les informe del enemigo que vi anteriormente, así que les dije que era mejor apresurar el paso, yo me les adelante para limpiar el sector y me devolvía constantemente para prevenir que los atacaran por la espalda, después de un largo camino, por fin llegamos a la base... estaba dispuesto a que todo el mundo me insultara pero solo veía la gente mirándome con cara de haber logrado hoy lo que era la misión que cambiaría de nuevo el destino de la guerra, cuando llegue a donde jack el me miró fijamente con sus ojos fríos se me acerco y … bueno esto es vergonzoso, yo pensé que me felicitaría pero lo primero que hizo fue darme un puñetazo por no haber cumplido las ordenes después me ayudo a levantar y me dijo “aun así me alegro que hayas hecho lo que hiciste, esto demuestra porque fue que te elegí como mi sucesor a pilotear la nave ”. 102 Cuando ya todo se había calmado, se mandó la información a la base central para que empezara la construcción del nuevo ejército que haría que esta guerra desapareciera. En esta etapa inicia la preparación para enfrentar este nuevo enemigo del que solo conocemos lo que les he narrado en esta historia y que será parte de otro capítulo de esta guerra. 12.4. Establecer personajes y describirlos 12.4.1. Nohumas 12.4.1.1. Descripción general Habitantes del planeta THERA, dotados de una inteligencia extraordinaria están organizados en ciudades las cuales producen contaminación y daños ambientales de los cuales ellos no se mostraron ningún interés a tiempo, así contaminando el planeta y perdiendo calidad de vida provocando todos sus problemas con los subaras, son los principales culpables de la destrucción del planeta y de ellos mismos. 12.4.1.2. Personajes principales Caivan: Descripción personaje: Piloto de la nave, tiene una personalidad muy segura, siempre anda haciendo bromas sobre lo que pasa a su alrededor, es el segundo al mando de la unidad especial llamada nova spes, el accedió a la petición del jefe para pilotar la nave sin dudarlo, sabiendo que su misión seria ingresar en las profundidades del dominio de los subaras, sin posibilidad de ayuda para ir limpiando el nivel de contaminación a un nivel donde el escuadrón pueda entrar y ayudar a terminar de limpiarlo.60 Jack 60 ¡Error! No se encuentra el origen de la referencia. 103 Descripción personaje Capitán y jefe del escuadrón nova spes, es conocido como el mejor estratega del planeta thera, además porque en toda pelea que ha tenido nunca ha dejado atrás a ningún soldado, él era la primera elección para ser el piloto de la nave, pero después de la invasión a la base, fue atacado por un subara desconocido que lo ha dejado en un estado muy débil, aunque gracias a sus estrategias lograron salvar la nave y gran parte del escuadrón nova spes, él fue el que eligió a su sucesor como piloto, ya que vio en el algo que no vio en ningún otro que fue la capacidad de actuar con cabeza fría en momentos de crisis, siguiendo su patrón de nunca dejar a nadie atrás (lo demostró al rescatarlo del borde de la muerte).61 Suyana – nave Descripción Esta nave tiene como nombre Suyana que en quechua significa esperanza” La nave solo puede ser conducida por una persona a la vez, tiene satélites de transmisión, el movimiento de la nave no va a ser muy rápido esta nave es algo pesada porque tiene que llevar compartimientos, su coraza es fuerte y resistente, gruesa para que no la pueda atravesar fácilmente los ataques, su primer modelo no es muy aerodinámico, está hecha en metal, está pintada a un 60%, tiene los logos pintados de la compañía nova spes. El primer modelo de esta nave fue hecho para la recolección de grandes cantidades de basura, fue creada para que pudiera andar por cualquier tipo de terreno, así que se hizo la nave de tipo aerodeslizador. Cuando ocurrió la invasión de los subaras, este modelo fue mejorado con el fin de poder combatir estas criaturas, así que se le agrego armas para eliminar y capturar estas criaturas, también se le agregaron unos compartimientos en forma de tanque para poder guardar cada uno de los desechos por separado. 3 compartimientos uno por cada clase de desechos orgánicos, inorgánicos y residuos peligrosos. 61 ¡Error! No se encuentra el origen de la referencia. 104 Cuando se estaba en construcción de este nuevo modelo, la base fue invadida haciendo que tocara abandonarla con la nave sin terminar, en el gran escape la nave sufrió algunos rasguños pero no fue nada grave, se piensa poner a prueba la nave, así que se hacen unos arreglos con lo que se tiene a la mano. 12.4.2. Subaras (Enemigos) 12.4.2.1. Descripción general subaras Iteración 1: Seres que se formaron de la mezcla de desechos y residuos de los humanos estos seres son solo contaminación y quieren apoderarse de todo el planeta THERA y destruir a los nohumas, se alimentan de la basura y los desechos, entre más contaminado este su ambiente los hace más fuertes se debilitan al ir en grupos pequeños y encontrarse en un ambiente más limpio, por esto al atacar a los nohumas para apoderarse de nuevas tierras lo tienen que hacer en grupos y nunca están solos. Su epicentro y donde crecen nuevos subaras es la zona impura en donde ellos llevan más desechos para que crezcan más y más poderosos, zona impura está protegida por los subaras más poderosos y contaminados para evitar que los nohumas entren fácilmente a atacar su fuente de vida. Iteración 2: Los subaras expiden un mal olor y su apariencia es no deseable tienen forma humanoide pero no bien definida existen subaras de diferentes formas algunos caminan en 4 patas otros en 2, algunos tienen rasgos de insectos y roedores que los hacen despreciables a la vista humana, son criaturas sucias, generan sensación de miedo al observarlos, lucen fuertes y poderosos, existen desde subaras pequeños hasta subaras gigantes sus medidas oscilan entre los 50cm a 3mts, como surgieron de los desechos de los nohumas pueden comunicarse como ellos. No tienen organización nunca duermen y su forma para recuperar energía es comiendo desechos o ingresando a los alcantarillados, son rabiosos, atacan a los seres vivientes, destruyen la naturaleza. Existen dos clases de subaras mercurianos y plomorianos. 12.4.2.2. Subaras principales 105 Mercuriano Descripción del personaje Su forma física se asemeja a la de humano de gran tamaño, en lo que se supone que son sus brazos tiene dos afiladas cuchillas capaces de cortar el acero en segundos, estos bichos están compuestos de mercurio y otros materiales que se le van adhiriendo por donde va pasando, lo cual lo hace muy resistente a las balas normales, por su boca siempre están goteando mercurio el cual cuando se sienten amenazados lo comienzan a volver vapor asiendo mortal el acercarse a estos monstruos sin un traje especial, su piel es pegajosa y parece estar compuesta de carne vencida la cual tiene un color verdoso donde se ven quemaduras del sol y en algunos lados heridas como rasguños porque su piel no es tan dura, por eso prefiere pegar cosas de sus alrededores como una especia de traje para protegerse. No son muy veloces ya que se vuelven pesados por todos los materiales que se ponen encima para protegerse. Plomoriano Descripción personaje Iteración 1: Tiene la misma forma de un perro gigante, tiene 4 patas, una cola en punta que la usan para escalar, su mayor peligro es su mandíbula, ya que su saliva tiene la capacidad de derretir lo que sea, no la escupe, pero siempre se aferra a algo hasta que no lo derrite, su piel es una combinación de titanio con ácido, que se regenera cuando se come algo, estos monstruos tiene menos resistencia que los mercurianos. Su tamaño es de 1 metro de altura, por 1 metro de largo y medio metro de ancho. Iteración 2: Camina en 2 patas y cuando necesita de agilidad o correr lo hace en las 4, su forma es más como la de un hombre bestia y la cola es una extensión de una cadena con una punta afilada que usa para atacar 106 12.5. Definir niveles y escribir diálogos 12.5.1. Niveles del juego propuestos En el desarrollo de la historia se habla de varios posibles escenarios con un nivel de detalle muy general:  La mala decisión  Efectos de una mala decisión  Una nueva esperanza  Problemas  Cambios  Primera prueba  El comienzo  El plan  La variación del plan  Continuando con el plan  Por el todo o por el nada  A unos pasos de la total victoria 12.5.2. Nivel del prototipo Para la elección del escenario se tuvo en cuenta la facilidad de desarrollo y desenvolvimiento del juego para poder dejar un abrebocas de lo que será el juego cuando se desarrolle en su totalidad. El escenario que se eligió para el desarrollo de la prueba fue “Primera Prueba” 12.5.2.1. Objetivos a cumplir Eliminar 5 subaras Recoger 5 desechos biológicos Recoger 5 desechos peligrosos 107 12.5.2.2. Diálogos nivel del prototipo Se buscó un lugar seguro y nos instalamos en él, para que se pudiera atender a Jack con más calma, algunos de los soldados se pusieron a hacer guardia mientras los otros exploraban el perímetro. CAIVAN: científico necesitamos mejorar nuestras armas para poder causar más daño a los subaras y así llegar a la Base principal a salvo lo más pronto posible, necesitamos hablar con los ancianos para que se tomen nuevas decisiones sobre nuestro futuro. Científico: estoy observando la nave y la poca información con la que logramos escapar y después de unos pequeños análisis me doy cuenta que esta no es suficiente necesitamos obtener más información de los subaras y no podemos ir directamente a la ciudad ellos seguirán nuestro rastro y pondremos en peligro toda la civilización ya que no podremos defendernos eficazmente. CAIVAN: que nos está diciendo que no sobreviviremos con lo que tenemos, que no podemos mejorar nuestros ataques, debe haber una opción. (Alzando la voz) Científico: tenemos una opción y es capturar uno de esos subaras que nos atacó para poder realizar unos análisis y ver qué elementos necesitamos para poder contrarrestarlos. CAIVAN: De acuerdo, yo iré a capturarlo mientras ustedes encárguense de JACK, acompáñeme soldado1 tenemos que enfrentarnos a ellos como podamos. (Voz de líder y entusiasmo, desesperado por hacer algo) Soldado1: Si señor, vamos a enseñarles que no se pueden meter con nuestro planeta. (Voz con seguridad e ira, apretando su puño) Científico: Me place su ánimo y entusiasmo pero el hacerlo así sería inútil y estúpido de su parte ya que sin armas y buena protección no sobreviviría ni siquiera un segundo, recuerde que los subaras siempre andan en grupos y usted no se encuentra en la mejor condición. CAIVAN: no me interesa, habré hecho un intento por mi planeta, no me importa sacrificarme. 108 Científico: la única forma de hacerlo es con la nave y aun así es muy riesgoso ya que la nave no está en terminada pero esa es la única opción, pero la nave solo la ha conducido JACK y él no está en condiciones de hacerlo. CAIVAN: yo quisiera conducirla, yo tengo las habilidades para hacerlo. Científico: lo siento al capitán le tomo varios días de practica solo para poder hacerla mover. Los 2 Ingresaron a la carpa donde se encontraba el médico con JACK, observaron que JACK ya se encontraba más animado y ya estaba estable, podía hablar pero se encontraba débil y no podría pelear, estaba sentado en una camilla con vendas en su brazo el médico se encontraba a su lado le estaba aplicando una medicina especial para detener la infección. Medico: ya se encuentra estable, pero está muy débil debemos llegar a la Base Principal pronto para que pueda descansar y ser tratado mejor, tiene una recuperación muy rápida es muy resistente, cualquiera no hubiera sobrevivido a esa clase de ataque con solo la pérdida de un brazo, por eso es nuestro capitán. JACK: Me alegra que ya se encuentre bien, necesitamos salir de aquí inmediatamente, nuestras armas no son lo suficiente para protegernos de todos estos subaras. Científico: no podremos partir en la situación que estamos. CAIVAN: capitán necesitamos recolectar más información para poder actualizar nuestra nave, armas y empezar a descontaminar distintos sectores críticos del planeta.... JACK: (lo interrumpe) y que espera soldado que no consigue esa información. CAIVAN: para poder hacerlo es necesario usar la nave y usted es quien la pilotea, pero yo me ofrezco para hacerlo debido a sus condiciones capitán. 109 JACK: no sé qué tan buena idea sea esa, pero usted demostró que estará hasta las últimas por su planeta y su gente, tiene usted experiencia en navegación y conducción? CAIVAN: si señor yo he piloteado diferentes naves y conducido diferentes vehículos de combate siempre con excelentes resultados. JACK: Entonces adelante, científico dele todas las indicaciones de cómo pilotear la nave y abra un canal de comunicación para poder indicarle que hacer, soldado debe seguir mis instrucciones para que todo sea un éxito, recuerde que en sus manos estará el futuro de nuestro planeta desde este momento. CAIVAN: si señor seguiré sus instrucciones y le aseguro que no se va a arrepentir y realmente deseo asumir esta responsabilidad. Científico: acompáñeme a la nave por favor. Abrieron el camión donde se encontraba la nave y procedió el científico a revisarla y activar los sistemas de energía, los verifico y sacaron la nave del camión. Al encontrarse la nave fuera del camión el científico le indico que subiera a la nave. INICIO DE GAMEPLAY El jugador empieza a conducir la nave y en el camino va encontrando desechos y subaras que lo empiezan a atacar y él debe destruirlos con las armas de la nave, para cumplir con los objetivos propuestos. 12.6. Descripción escenario: Nos alejamos de la base HOPE en nuestra caravana la cual estaba compuesta por 1 camión en el cual se encontraba la nave suyana este era conducido por uno de los soldados de nuestra compañía nova spes, 2 vehículos de transporte en uno de estos está dotado para emergencias médicas y es en la cual se encuentra el capitán JACK gravemente herido, el médico haciendo lo posible por estabilizarlo y CAIVAN conduciendo, mientras esto se logra decidimos acampar en un lugar algo desértico y montañoso un pueblo donde ya no habían habitantes , este pueblo ahora lucia tenebroso no tenía ningún habitante, se lograban ver algunos cuerpos descompuestos de nohumas que habían muerto y de algunos animales por los 110 suelos, los edificios estaban abandonados, la mayoría ya eran solo ruinas los pocos campos se veían erosionados, era de día aun así se sentía mucho frio, podíamos apreciar un mal olor a descomposición, todo era algo callado. En el otro vehículo de transporte están otros dos soldados de la compañía y uno de los científicos de renacer, en este también se encuentra nuestro poco armamento pero este no es muy eficiente con los subaras, necesitamos mejorar nuestro armamento. 12.7. Realizar Bocetos de personajes y escenarios 12.7.1. Caivan Bocetos Imagen 38 Cara del personaje Caivan Blueprints 111 Imagen 39 Blueprint cara del personaje Caivan Imagen 40Blueprint cuerpo completo personaje Caivan 12.7.2. Jack Bocetos 112 Imagen 41 Cara del personaje Jack Blueprints Imagen 42 Blueprint cara del personaje Jack 113 Imagen 43 Blueprint cuerpo completo personaje Jack 12.7.3. Suyana - nave Bocetos Imagen 44 Boceto #1 nave Suyana 114 Imagen 45 Boceto #2 nave Suyana (algunos cambios) Blueprints Imagen 46 Blueprint nave Suyana a blanco y negro 115 Imagen 47 Blueprint nave Suyana a Color 12.7.4. Mercuriano Bocetos Imagen 48 Boceto#1 Mercuriano Cuerpo completo 116 Imagen 49 Boceto#2 Mercuriano cabeza Imagen 50 Boceto#3 Mercuriano Cuerpo completo 117 Imagen 51 Boceto#4 Mercuriano Comentarios al ilustrador Blueprints Imagen 52 Blueprint Mercuriano Cuerpo Completo blanco y negro 118 Imagen 53 Blueprint Mercuriano Cuerpo Completo Color 12.7.5. Plomoriano Bocetos Imagen 54 Boceto #1 Plomoriano 119 Imagen 55 Boceto#2 plomoriano comentarios al ilustrador Imagen 56 Boceto#3 plomoriano cuerpo completo 120 Blueprints Imagen 57 blueprints plomoriano cuerpo completo blanco y negro Imagen 58 Blueprints plomoriano cuerpo completo a color 12.8. Modelado de personajes y escenarios 12.8.1. Mercuriano 121 Imagen 59 Modelado 3D #1 Mercuriano Cabeza Imagen 60 Modelado 3D #2 Mercuriano Cuerpo completo 122 Imagen 61 Modelado 3D #3 Mercuriano Cabeza de perfil Imagen 62 Modelado 3D Mercuriano Textura cuerpo 123 Imagen 63 Modelado 3D Mercuriano terminado frente Imagen 64 Modelado 3D Mercuriano terminado brazos 124 Imagen 65 Modelado 3D Mercuriano terminado espalda 12.9. Programar lógica del juego 12.9.1. Comportamientos Inteligencias artificiales subaras 12.9.1.1. Definición Comportamientos Comportamiento Común: Al perseguir al jugador se irá por la ruta más corta y esquivando los obstáculos que se presenten en su camino. Patrullero enemigo: Se mueve en un ciclo de puntos referenciados, cuando el jugador se acerca a un rango V_RangoVision este lo perseguirá para atacarlo, si se aleja a una distancia V_RangoAtaque del jugador volverá a su ruta predefinida. 125 Imagen 66 Diagrama de estado enemigo patrullero Directo enemigo: Desde el momento en que es creado en la escena tiene como referencia la posición del jugador y se dirige hacia ella. 126 Imagen 67 Diagrama de estado directo enemigo Aleatorio enemigo: Se moverá por el mapa aleatoriamente caminado de frente, el cual cada V_TiempoCambioDireccion segundos se moverá hacia una dirección aleatoria(derecha o izquierda) una cantidad aleatoria de grados, cuando el jugador se acerca a un rango V_RangoVision este lo perseguirá para atacarlo sin importar la distancia que se aleje el jugador. Algoritmo A* Normalmente en un escenario donde interactúan objetos que se mueven desde un punto hasta una meta, donde existen obstáculos que no queremos que el objeto atraviese ni se quede atrapado en ellos, usamos algoritmos para esquivarlos, el problema es que muchos de estos usan el camino más largo para llegar, el A* 127 además de buscar los posibles caminos por medio de nodos hacia el objeto selecciona el más corto. Imagen 68 Diagrama de estado algoritmo A* 12.10. Diseñar y programar interfaces de usuario 12.10.1. Menú Unity: La Herramienta Unity al momento de crear el ejecutable añade un menú muy útil en la ejecución del juego (Imagen 69), donde se puede inicializar el juego o salir de la aplicación antes de que este se ejecute. 128 Imagen 69 Menú Unity pestaña Graphics Este menú maneja dos pestañas: 12.10.1.1. Graphics: En esta pestaña (Imagen 69) se configura el tamaño y la calidad de las imágenes que se mostraran en el juego, además de la opción de poner el juego en toda la pantalla o en una ventana aparte. 12.10.1.2. Input: En esta pestaña se puede configurar los botones correspondientes a cada una de las acciones posibles que permite el motor al momento de interactuar el jugador (Imagen 70) 129 Imagen 70 Menú unity Pestaña Input 12.10.2. Menú principal Ya dentro del juego se puede apreciar el menú Principal del juego (Imagen 71) donde se encuentran las opciones “Play Game” para empezar el juego y “quit” para cerrar el juego 130 Imagen 71 Menú Principal 12.10.3. HUD y menú pausa Cuando se está jugando se puede apreciar el HUD que está usando el usuario donde se muestra la puntuación del jugador, la energía que le queda, la vida y el punto de mira (Imagen 72) 131 Imagen 72 HUD y Menú de Pausa Además de tener acceso al menú pausa, donde se encuentran las opciones reanudar partida donde vuelve al juego y finalizar partida que lo retorna menú principal del juego (Imagen 72 HUD y Menú de Pausa Imagen 72) 132 13. CONCLUSIONES Usar motores de videojuegos hace que el proceso de desarrollo sea más rápido, óptimo y a menor costo. En un videojuego se puede apreciar la ingeniería aplicada ya que en su construcción involucra conceptos como teoría de grafos, autómatas, arquitectura y desarrollo de software, ciencias básicas, entre otros que le dan la funcionalidad al juego y su nivel de interacción. Para el desarrollo de un videojuego es necesario un grupo interdisciplinario en las áreas de diseño, modelado y desarrollo. No existe una metodología estándar para el desarrollo de videojuegos, por lo tanto es posible adaptar diferentes metodologías según sea conveniente para el equipo de trabajo El incremento de la industria de los videojuegos en Latinoamérica se ha visto impulsado por los beneficios de encontrar herramientas gratuitas. Las entidades gubernamentales han mostrado interés en el sector de animación digital y videojuegos diseñando planes de acción para fomentar la creación de nuevas empresas en este sector. En la facultad de ingeniería de sistemas de la universidad EAN se encuentra una copia física del demo que se desarrolló o pueden pedirla a los correos jackcm01@hotmail.com o caivan2@gmail.com. 133 14. RECOMENDACIONES Para el desarrollo de un videojuego es recomendable contar con un equipo de trabajo Multidisciplinario en áreas tales como diseño, modelado 3D, animación, programación, audio, literatura e ilustración para obtener resultados de calidad. Es posible modelar la arquitectura de un juego utilizando técnicas de ingeniería de software. Conforme el desarrollo del prototipo va avanzando siempre se van a encontrar posibilidades de mejoramiento, se recomienda tomar como medida preventiva tener un modelo escalable reutilizable. 134 15. BIBLIOGRAFÍA  (s.f.). Recuperado el 18 de 11 de 2011, de ALEGSA: http://www.alegsa.com.ar/  (s.f.). Recuperado el 18 de 11 de 2011, de webopedia: http://www.webopedia.com/  (s.f.). Recuperado el 18 de 11 de 2011, de Cámaras de seguridad Uruguay: http://www.seguridaduruguay.com  Unity. (s.f.). unity. Recuperado el 12 de 11 de 2011, de unuty: http://unity3d.com/unity/  (19 de 02 de 2007). Recuperado el 18 de 11 de 2011, de Marquez telecom s.a: http://marquezetelecom.com/blog/2007/02/19/definiendo-networking/  (2008). Recuperado el 18 de 11 de 2011, de Yuan Works: http://dev.yuanworks.com  Activision, Infinity ward. (s.f.). Call of dutty. Recuperado el 01 de 11 de 2011, de Call of dutty Modern Warfare 3: http://www.callofduty.com/mw3/images/mw3- image-2011-024  Alebrije Estudios. (02 de 06 de 2011). Recuperado el 12 de 11 de 2011, de niubie: http://www.niubie.com/2011/06/programacion-para-videojuegos- colisiones-nb-original/  Autodesk. (s.f.). Recuperado el 14 de Marzo de 2011, de http://download.autodesk.com/us/3dsmax/2012topten/project.html  Autodesk. (s.f.). Recuperado el 14 de Marzo de 2011, de http://usa.autodesk.com/3ds-max/system-requirements/  AutoDesk. (s.f.). Recuperado el 14 de Marzo de 2011, de http://images.autodesk.com/adsk/files/harmonix_dance_central_customer_story .pdf  BBVA. (s.f.). Recuperado el 12 de 11 de 2011, de BBVA servicios: http://www.bbvaservicios.com/tienda2/img/banners/guia_10_193.pdf  Blender. (2011). Recuperado el 18 de 11 de 2011, de Blender: http://www.blender.org/features-gallery/features/ 135  Camara de comercio de Bogotá. (2010). DIAGNÓSTICO Y PLAN DE ACCIÓN PARA LA INDUSTRIA DE ANIMACIÓN DIGITAL Y VIDEOJUEGOS DE BOGOTÁ. Bogotá: Camara de comercio de Bogotá.  colmenares, j. a. (03 de 06 de 2004). universidad de zulia. Recuperado el 12 de 11 de 2011, de facultad de ingeniería: http://www.ica.luz.ve/juancol/eda/grafos/#fig:grafo-no-dirigido  crytek. (s.f.). Recuperado el 12 de 11 de 2011, de crytek games: http://crytek.com/games  crytek. (s.f.). cryENGINE 3. Recuperado el 12 de 11 de 2011, de http://crytek.com/cryengine/cryengine3/overview  ECURED. (18 de 04 de 2011). Recuperado el 17 de 11 de 2011, de ECURED: http://www.ecured.cu/index.php/  engine, U. (s.f.). Recuperado el 06 de 2011, de Unreal development kit - UDK: http://www.udk.com/  entertaiment software association. (s.f.). Recuperado el 12 de 11 de 2011, de E3: http://www.e3expo.com/  España, D. (03 de 06 de 2010). http://www.larepublica.com.co. (La Republica) Recuperado el 10 de Febrero de 2011, de http://www.larepublica.com.co/archivos/TECNOLOGIA/2010-06- 03/tecnoparque-de-203000-millones-en-medellin_101845.php  espinosa, j. (01 de 05 de 2010). ANALISIS DE REDES. Recuperado el 12 de 11 de 2011, de TEORIA DE GRAFOS: http://juanpaesca.blogspot.com/2010/05/teoria-de-grafos.html  Extream Programming. (s.f.). Recuperado el 22 de 03 de 2011, de http://www.extremeprogramming.org/  Firestone, M. (2009). Computer Game Developer. Chelsea House.  García, J. M. (2005). icono14. Recuperado el 12 de 06 de 2011, de http://www.icono14.net/revista/num7/articulos/jose_maria_benito.pdf  III, R. r. Game Design – theory & practice. 136  Iregui, L. A. (25 de 11 de 2010). ENTER.CO. Recuperado el 12 de 11 de 2011, de http://www.enter.co/industria/latinoamerica-seria-la-proxima-superpotencia- en-videojuegos/  J.S, E. S.-V. (29 de 09 de 2011). euler. Recuperado el 11 de 11 de 2011, de matemáticas discretas: http://euler.uc3m.es/matematicadiscreta/Auto/Grafos/grafo064.png  Jarrett, D. N. (2005). cockpit ingeniering. Recuperado el 18 de 11 de 2011, de http://books.google.com/books?id=ESR4- pns2JMC&pg=PA189&dq=hud+%22reflector+sight&hl=en&ei=oxmSTeqFA8etg QeA5f0Y&sa=X&oi=book_result&ct=result&resnum=5&ved=0CEsQ6AEwBA#v =onepage&q=hud%20%22reflector%20sight&f=false  Jeffries, R. E. (s.f.). XProgramming. Recuperado el 21 de 03 de 2011, de http://xprogramming.com/book/whatisxp/  Juan Manuel Pedraza, O. A. (2011). loop. Recuperado el 01 de 11 de 2011, de loop.la: http://www.loop.la/noticia.php?noticia_id=79  Kim, R. (s.f.). auto desk software to create sweet moves. Recuperado el 14 de 03 de 2011, de autodesk: http://images.autodesk.com/adsk/files/harmonix_dance_central_customer_story .pdf  MarketingDirecto.com. (01 de 10 de 2011). Recuperado el 12 de 11 de 2011, de http://www.marketingdirecto.com/actualidad/digital/la-industria-de-los- videojuegos-no-deja-de-aumentar-su-potencial-publicitario/  Mary, f. (2009). ebrary. Recuperado el 15 de 03 de 2011, de ebrary: http://site.ebrary.com/  matediscreta. (s.f.). Recuperado el 18 de 11 de 2011, de http://www.matediscreta.8k.com/  muy computer. (s.f.). muy computer. Recuperado el 11 de 11 de 2011, de http://www.muycomputer.com/ 137  nik sha T'50. (s.f.). tuck. Recuperado el 12 de 11 de 2011, de CenterFor Digital Strategies: http://www.tuck.dartmouth.edu/digital/assets/images/05_shah.pdf  Ortega Ramirez, M. D. (s.f.). Unversidad De las Americas Puebla. Recuperado el 14 de Marzo de 2011, de http://catarina.udlap.mx/u_dl_a/tales/documentos/msp/ramirez_o_md/  playstation. (s.f.). Recuperado el 12 de 11 de 2011, de playstation: http://vive.playstation.com/?CMP=co_niubie_homepage_980x90_expandable_ custom-bano_general  Polaino, R. C. (s.f.). ICONO 14 asociación científica. Recuperado el 12 de 11 de 2011, de icono14: http://www.icono14.net/revista/num7/articulos/rafael_carrasco.pdf  rodriguez, A. (s.f.). Grafos. Recuperado el 11 de 11 de 2011, de software teorico: http://personales.upv.es/arodrigu  Romny. (20 de 09 de 2006). Geeks. Recuperado el 01 de 11 de 2011, de http://geeks.ms/forums/p/1485/3212.aspx  sanchez, G. p. (s.f.). sileshare. Recuperado el 18 de 06 de 2011, de http://www.slideshare.net/campuspartymexico/la-industria-de-videojuegos-en- amrica-latina  Smith, A. (2009). slideShare. Recuperado el 10 de 10 de 2011, de slideShare: http://www.slideshare.net/reistarks/fps-first-person-shooter-engine  Steve, I. (2006). Writing for Video Games. A&C Black.  Tamanini, M. L. (27 de 04 de 2011). Recuperado el 12 de 11 de 2011, de Bajaki: http://www.bajaki.com/info/525-el-tamano-de-la-industria-de-los- videojuegos-infografico-.htm  Terán, J. E. (14 de 11 de 2011). Recuperado el 18 de 11 de 2011, de Club desarrolladores de videojuegos: http://www.cdvmexico.com/  the telegraph. (s.f.). the telegraph. Recuperado el 12 de 11 de 2011, de http://www.telegraph.co.uk/technology/picture-galleries/6122651/Shooters- gallery-10-influential-FPS.html 138  unity. (s.f.). gallery unity. Recuperado el 12 de 11 de 2011, de http://unity3d.com/gallery/game-list/#ios  Unreal Development Network. (s.f.). Recuperado el 13 de Marzo de 2011, de http://udn.epicgames.com/Three/DevelopmentKitGettingStarted.html  Unreal Development Network. (s.f.). Recuperado el 13 de Marzo de 2011, de http://udn.epicgames.com/Three/UE3MinSpecs.html  web del profesor. (01 de 07 de 2005). Recuperado el 12 de 11 de 2011, de http://webdelprofesor.ula.ve/ciencias/jlchacon/materias/discreta/grafos.pdf  Wiki Blender . (2011). Recuperado el 12 de 11 de 2011, de wikiBlender: http://wiki.blender.org/index.php/  Xbox. (s.f.). Recuperado el 17 de 11 de 2011, de Gears of War.