INGENIERO EN INFORMTICA
Fdo.: .. Fecha:
Fdo.: .. Fecha:
A mis padres: Por tener siempre confianza en m y haberme ayudado en todos los momentos difciles. Gracias por la oportunidad que me habis dado con vuestro esfuerzo, jams hubiese llegado hasta aqu de no ser por vosotros. Con que tan slo estis una pequea parte orgullosos de m como yo lo estoy de vosotros ya ser el hombre ms feliz.
A mi abuela: Carmen, el haber llegado hasta este punto de mi vida s que te hubiese hecho la abuela ms feliz del mundo como a m me hiciste el nieto ms afortunado. Ojala me veas ests donde ests. Siempre en mi corazn.
RESUMEN
Hoy en da muchas personas viven con un estrs continuo debido al trabajo, las prisas y otras obligaciones. En este contexto cualquier entretenimiento con el que poder desconectar un poco de la rutina siempre es bienvenido. Por este motivo y por la aparicin en las ltimas dcadas de un nuevo concepto de diversin, los videojuegos, este proyecto se unir al grupo de ttulos de este sector en continua expansin. El proyecto que se va a realizar se denomina WarBattle y consistir en un videojuego en tiempo real pensado para jugar de forma gratuita y sin descargas mediante cualquier navegador de Internet como Internet Explorer, Mozilla Firefox, Safari, etc. El sistema creado abarcar todos los procesos de la ingeniera del software, desde la creacin conceptual del entorno de juego hasta el desarrollo del producto software final. WarBattle va a ser un juego de estrategia ambientado en una poca medievalfantstica, al ms puro estilo de xitos como Dungeons & Dragons. En l miles de jugadores competirn y colaborarn entre s en funcin de sus gustos y necesidades para erigirse como los mejores estrategas del universo Warbattle. A diferencia de lo que puede sugerir el ttulo, el juego est pensado para gente de casi cualquier edad, pudiendo variar entre los 12 y los 50 aos el perfil del jugador. El motivo de que el rango sea tan variado es que WarBattle pretende ser un juego entretenido en el que se prioriza la estrategia a la accin. Por otro lado, no es un juego que requiera de una atencin constante, la frecuencia de uso se amolda al estilo del jugador, delegando en ste la decisin de utilizar una estrategia u otra.
ABSTRACT
Nowadays, most people coexist with the so-called environmental stress caused by job, haste or duties. In this regard, any amusement to relieve the day-by-day obligations is always more than welcome. Due to this fact and to the advent of a new concept of entertainment as from last years, that is, the video games, this project joins the list of products corresponding to the software expanding commercial sector. The project carried out is named WarBattle and is developed as a real-time video game, completely free and without softwares downloads, driven through internet navigators such as Internet Explorer, Mozilla, Firefox, Safari, etc. The designed system covers all the engineering processes of software, from the conceptual creation of the games environment to the development of the final software product. WarBattle is a new strategic video game set in fantastic Middle Ages, following the path open by big hits such as Dungeons & Dragons. Therefore, thousands of players will compete and cooperate among them, on the basis of their needs or wishes, in order to become the best strategist in the WarBattle universe. In spite of its name, this video game is intended for people of all ages, ranging the players profile from 12 to 50 years-old. Such wide age scope is because of WarBattle prioritizes strategy instead of action. On another front, playing WarBattle does not require to pay attention to the game all the time, since players may freely adapt the games pace to their liking, as the strategic decisions are delegated to them.
INDICE
1. Introduccin ......................................................................................................................... 1 1.1 Introduccin ................................................................................................................... 2 1.2 Objetivos ........................................................................................................................ 4 2. Estado del arte ..................................................................................................................... 5 2.1 Historia de los videojuegos ............................................................................................. 6 2.2 Los Browser Games......................................................................................................... 9 2.3 Metodologa ................................................................................................................. 11 3. Anlisis de requisitos .......................................................................................................... 13 3.1 Introduccin ................................................................................................................. 14 3.2 Estudio de la ambientacin ........................................................................................... 15 3.2.1 Elementos del juego .............................................................................................. 16 3.2.2 Restricciones ......................................................................................................... 49 3.3 Modelo de dominio ...................................................................................................... 51 3.3.1 Entorno del jugador a nivel global .......................................................................... 52 3.3.2 Entorno de las aldea .............................................................................................. 54 3.3.3 Sistema de produccin........................................................................................... 56 3.3.4 Sistema de costes .................................................................................................. 58 3.3.5 Unidades militares ................................................................................................. 60 3.3.6 Unidades defensivas .............................................................................................. 62 3.3.7 Restricciones ......................................................................................................... 64 3.3.8 Misiones ................................................................................................................ 73 3.3.9 Elementos en construccin .................................................................................... 76 3.3.10 Sistema de coordenadas ...................................................................................... 84 3.4 Anlisis de los casos de uso ........................................................................................... 86 3.4.1 Acceso al sistema ................................................................................................... 87 3.4.2 Acciones informativas ............................................................................................ 92 3.4.3 Acciones sobre la produccin............................................................................... 103 3.4.4 Acciones sobre los edificios.................................................................................. 110 3.4.5 Acciones sobre unidades militares ....................................................................... 125 3.4.6 Acciones sobre unidades defensivas .................................................................... 132 3.4.7 Acciones sobre las ciencias .................................................................................. 139 3.4.8 Acciones sobre las habilidades militares .............................................................. 147 3.4.9 Acciones sobre el mapa ....................................................................................... 155 3.4.10 Acciones sobre misiones .................................................................................... 166 3.5 Problemas y errores .................................................................................................... 173 3.6 Conclusiones ............................................................................................................... 175 4. Diseo .............................................................................................................................. 177 4.1 Introduccin ............................................................................................................... 178 4.2 Arquitectura lgica ..................................................................................................... 180 4.2.1 Dominio............................................................................................................... 182 4.2.2 Controlador ......................................................................................................... 183 4.2.3 Vista .................................................................................................................... 185
4.2.4 Motor .................................................................................................................. 186 4.2.5 DAO ..................................................................................................................... 188 4.3 Diseo de la base de datos .......................................................................................... 189 4.3.1 Tipos de elementos.............................................................................................. 191 4.3.2 Costes y produccin ............................................................................................. 191 4.3.3 Elementos de los usuarios ................................................................................... 192 4.3.4 Elementos de las aldeas ....................................................................................... 192 4.3.5 Elementos de los productores y edificios ............................................................. 193 4.3.6 Elementos de las ciencias y habilidades militares ................................................. 193 4.3.7 Elementos de las unidades militares .................................................................... 194 4.3.8 Elementos de las unidades defensivas ................................................................. 194 4.3.9 Elementos de las misiones ................................................................................... 195 4.3.10 Elementos del mapa .......................................................................................... 195 4.4 Algoritmos significativos ............................................................................................. 196 4.4.1 Alta usuario ......................................................................................................... 197 4.4.2 Actualizar ............................................................................................................ 200 4.4.3 Construccin de unidades militares ..................................................................... 211 4.4.4 Alta misiones ....................................................................................................... 212 4.5 Problemas y errores .................................................................................................... 213 4.6 Conclusiones ............................................................................................................... 215 5. Trabajo futuro .................................................................................................................. 217 6. Evaluacin econmica ...................................................................................................... 221 7. Bibliografa ....................................................................................................................... 223 ANEXO A: Manual de usuario ............................................................................................... 225
WarBattle
CAPTULO 1
Introduccin
1.
Introduccin
En plena crisis mundial el sector de los videojuegos es de los pocos negocios que estn experimentando crecimiento en sus mercados. Buena prueba de ello son los datos publicados por Microsoft que informan de que en 2.008 las ventas de su consola XBOX han crecido en un 22% en Europa, mientras que en Espaa, en pleno desplome de industrias tan importantes como la automovilstica o la del sector de la construccin, sus ventas han aumentado un 36%. Debido al crecimiento exponencial que ha sufrido la industria en los ltimos 20 aos, el proyecto Warbattle al que se dirige este documento pretende ser una base de partida a una apertura a este mercado, tanto para la universidad adoptndolo como base de trabajos posteriores, como para m como aprendizaje del desarrollo de este tipo de software tan interesante como lucrativo. En los ltimos aos, por otro lado, ha aparecido un nuevo concepto de videojuego: los browsergames. Estos juegos basan su interfaz y jugabilidad bajo tecnologas Web. Para jugar a ellos nicamente es necesario disponer en casa de una conexin a internet y un navegador medianamente actualizado. Quizs por esa facilidad de acceso a este tipo de videojuegos, el crecimiento de stos est siendo bastante importante. Warbattle (nombre con el que se designa el juego) es un browsergame en tiempo real ambientado en una Edad Media fantstica, al ms puro estilo de los mundos creados por J.R.R.Tolkien, autor de una de las obras ms populares de la literatura contempornea, El Seor de los Anillos. A diferencia de otros ttulos que se puedan encontrar en el mercado, Warbattle es un juego pensado para jugar de forma gratuita desde internet sin necesidad de realizar pesadas descargas que generan cierta desconfianza en los usuarios. En Warbattle mltiples jugadores, del orden de cientos e incluso miles, competirn entre s por demostrar que son los mejores estrategas. El juego es de estrategia en tiempo real, en el que cada jugador podr optar por caminos diferentes para crear sus imperios. Una caracterstica especialmente atractiva del juego es la duracin ilimitada del mismo. Warbattle est pensado para que una partida pueda alargarse en el tiempo tanto como lo desee el propio jugador, as podrn encontrarse cuentas de jugadores que lleven uno, dos o ms aos. El sistema de juego es muy sencillo con un interfaz agradable y atractivo a su vez. El tiempo que se debe emplear en l es relativo, cada jugador adoptar una estrategia u otra en funcin de sus gustos o posibilidades. De esta manera, si un
2
WarBattle
jugador no puede entrar a diario seguramente opte por una estrategia defensiva en la que prime la produccin como forma de obtener recursos sobre los ataques y saqueos a otros jugadores. Warbattle est pensado para un rango de jugadores cuya edad comprenda entre los 12 y los 50 aos. Warbattle a su vez, est formado por una serie de elementos que dan vida al juego y que definen el universo que representa. Los ms destacables son: Castillos desde los que los jugadores realizan todo tipo de acciones, construccin de edificios, unidades militares, etc. Sistema de produccin basado en recursos. Construccin de elementos basado en gasto de recursos.
Interaccin pacfica o blica entre jugadores mediante una red de unidades militares y defensivas. Sistema de coordenadas en el que se ubican los castillos que pertenecen a los jugadores. En definitiva, Warbattle es una idea innovadora que pretende captar multitud de usuarios gracias a un entorno atractivo y, sobre todo, divertido que permita desconectarse un rato de la rutina diaria.
2.
Objetivos
Los objetivos que persigue este proyecto se pueden agrupar en dos conjuntos: 1. Diseo de una estructura que sirva para otros juegos.
Durante la primera fase del proyecto se perseguir realizar un diseo robusto y
estable que pueda utilizarse para realizar otros juegos con diferentes elementos y con distintas ambientaciones. El objetivo perseguido es generar un diseo: Robusto. Escalable Reutilizable. De sencilla interpretacin.
2. Requisitos funcionales. Desde el punto de vista del juego en s, se establece como objetivo principal crear un juego que sea: Entretenido. Ilimitado en el tiempo. Gratuito. Atractivo. Pensado para un rango de usuarios cuyas edades comprendan los 12 y los 50 aos. Estable.
WarBattle
CAPTULO 2
Estado del arte
1.
Un videojuego es un programa de ordenador creado para el entretenimiento, basado en la interaccin entre una o varias personas y un aparato electrnico que ejecuta dicho videojuego. En muchos casos, estos recrean entornos y situaciones virtuales en los que el jugador puede controlar a uno o varios personajes (o cualquier otro elemento de dicho entorno), para conseguir uno o varios objetivos por medio de unas reglas determinadas. Aunque inicialmente la idea de un videojuego fue concebida y patentada por Thomas T. Goldsmith Jr. y Estle Ray Mann en 1947, se considera como primer videojuego al creado por William Nighinbottham en 1958, el llamado Tenis Para Dos, que consista en interceptar una bola que cruzaba la pantalla moviendo una lnea que haca de paleta. Su autor lo mostr como curiosidad cientfica, nunca patent su invento y as fue que aproximadamente 15 aos ms tarde, concretamente en 1972, el juego fue perfeccionado y comercializado por Atari con el nombre de Pong convirtindose en el juego ms relevante de la historia.
Durante los aos 80, el mundo de los videojuegos tuvo un fuerte crecimiento debido a la popularidad de los salones de mquinas recreativas.
WarBattle
A esta dcada se la conoce como la de los 8 bits debido a los microprocesadores que empleaban las consolas de aquel momento. Durante esos aos aparecieron diversos juegos tan populares como el Tetris de Alexey Pajitnov, el Super Mario Bros de Nintendo o el Bubble Bobble. Mientras en Japn se optaba por la fabricacin de consolas con la aparicin de la NES (Nintendo Entertainment System), en Europa los esfuerzos se dirigan hacia los microordenadores como el Commodore-64 o el Spectrum.
A principios de los 90, el mercado de las videoconsolas se revolucion por completo gracias a la aparicin de los microprocesadores de 16 bits. Algunas de las primeras consolas que incorporaban este tipo de microprocesador fueron la Mega-Drive, la SNES o la NEO-GEO. En paralelo, iban apareciendo las versiones de los videojuegos de las consolas para los ordenadores de sobremesa aunque de una manera bastante tmida hasta casi finales de los 90. Algunos de los videojuegos que se sacaron para las plataformas PC fueron la saga Doom, Monkey Island, etc. Desde entonces, las diferentes compaas emprendieron una carrera por liderar el mercado, sacando, progresivamente, a la venta consolas de 32 y 64 bits. A principios del siglo XXI Sony lanz su consola de 128 bits, la PS2 con la que se adelant al resto de fabricantes, pasando a dominar los mercados de Europa Y EE.UU.
Durante los aos siguientes fueron apareciendo nuevas consolas, como la Xbox 360 de Microsoft, la PS3 de Sony o la WII de Nintendo, siendo actualmente las tres empresas lderes del mercado a da de hoy. En el campo de los videojuegos para PC, la evolucin ha sido exponencial desde la aparicin del Pong hasta nuestros das. Aquel juego en 2D ha sido sustituido por juegos en 3D, con algoritmos avanzadsimos en el campo de la Inteligencia Artificial.
WarBattle
2.
Un juego de navegador o browser game es todo aquel videojuego que se juega mediante un navegador web (Internet Explorer, Firefox, Opera, etc.) y por ende independientemente de la plataforma. Se caracteriza entonces por ser siempre una multiplataforma, que funciona en cualquier equipo que tenga un navegador web y no es necesario instalar nada en el ordenador ni realizar ninguna clase de descarga para poder jugar con ellos. Tan slo es preciso ir a la pgina del juego en cuestin y crear una cuenta usuario. Dada la tecnologa necesaria para su uso, los browser games existen prcticamente desde que se invent la World Wide Web en 1993 y con ella el primer navegador web, aunque por supuesto han ido evolucionando al mismo tiempo que lo haca Internet. Adems de la clara ventaja que supone poder jugar desde cualquier ordenador o dispositivo del mundo, los browser games, al ser juegos online multijugador y muchos de ellos masivos, implican un juego cara a cara con cientos o miles de jugadores en todo el mundo, lo que permite una participacin conjunta en el juego rompiendo el individualismo habitual de los videojuegos, pues se puede hacer amigos, crear alianzas, declarar guerras, etc. Adems, los browser games suelen ser gratuitos aunque algunos tienen la posibilidad de enviar mensajes sms para ampliar las posibilidades de juego, sustentndose la mayora gracias a la publicidad insertada en sus pginas. No obstante presentan asimismo una serie de inconvenientes, pues slo se puede jugar online, ya que no se pueden descargar para jugar cuando no se est conectado a Internet, se caracterizan por tener grficos y sonido de baja calidad e incluso pueden llegar a no tener ni siquiera imgenes o animaciones y se consideran sumamente adictivos. La temtica de estos juegos es muy variada, y va desde fantasa pica hasta escenarios futuristas. Al ser juegos en los que los grficos no son tan importantes, destaca el componente de estrategia, por lo que no son habituales los juegos de matar o de carreras de coches, sino que la mayora son juegos para pensar. Con todo ello, los browser games se han convertido en una opcin de videojuego cada vez ms atractiva y en una alternativa clara a los lanzamientos de las grandes multinacionales, pues muchos de ellos son desarrollados por un pequeo grupo de aficionados o por un programador de forma independiente. En cualquier caso, lo que es innegable es que algunos cuentan ya con varios miles de jugadores registrados, y son bastante populares sin ninguna gran campaa publicitaria ni de marketing. Los juegos ms populares actualmente son Zepirates, Ogame, Medievol, Ikariam o Travian.
De ellos merece especial mencin el Ogame, el browser game ms conocido, el cual es un juego multijugador masivo on-line desarrollado por la empresa alemana Gameforge. El juego est implementado en el lenguaje de programacin PHP, requiriendo nicamente un navegador comn para poder jugarlo. Cada escenario de juego, denominado Universo, permite que se enfrenten simultneamente hasta 16.500 jugadores. El primer universo apareci en el 2002 en Alemania, el cual sigue siendo el ms popular. Existen versiones en diferentes idiomas como espaol, portugus, polaco, ruso, italiano, chino, japons y dans. Peridicamente se aaden nuevos universos al juego, siendo el de ms reciente aparicin, concretamente el 12 de agosto de 2009, el Universo 59 Andrmeda, en la versin espaola.
10
WarBattle
3.
Metodologa
La metodologa que se usar para realizar el juego ser la ms comn en la realizacin de proyectos software, la metodologa en cascada. Este metodologa establece un orden estricto en la realizacin de tareas, siendo requisito para empezar una tarea haber terminado la anterior. Las fases en que se divide la realizacin del proyecto son: - Anlisis de requisitos: en esta fase se especifican los requerimientos del sistema. En este proyecto, adems, se aadir la tarea de creacin del universo en el que discurre el juego, ya que no se parte con informacin al respecto. - Diseo: una vez recogidos los requisitos del sistema se realiza la tarea de plasmar el conocimiento recogido en un formato til para poder fabricar el producto software ms adelante. En esta fase se genera desde el diseo de la arquitectura escogida hasta los diagramas de flujo de las funciones que compondrn el sistema, pasando por el diseo de la base de datos, de clases, etc. - Programacin: durante este perodo se recoge la informacin obtenida de la fase de diseo y se realiza la conversin a un lenguaje interpretable por el ordenador que generar el producto final. La tecnologa que se va a utilizar es la siguiente: o Java como lenguaje de programacin utilizando las APIs jdk 1.6 y J2EE. o XML como lenguaje de estructuracin de ficheros de configuracin. o XHTML y CSS 2.0 para generar los interfaces del juego. o Javascript para dar funcionalidad a los interfaces. o Ajax para los eventos asncronos del juego. - Pruebas: en esta fase se realizan las pruebas pertinentes para determinar si el software generado cumple los requisitos esperados.
11
12
WarBattle
CAPTULO 3
Anlisis de requisitos
13
1.
Introduccin
En esta gran seccin del proceso de construccin del sistema Warbattle se realizar el anlisis de requisitos. El anlisis de requisitos consiste, como su propio nombre indica, en analizar y estudiar los requisitos del sistema a construir. En el caso de este proyecto, no se cuenta con ninguna especificacin externa ni con referentes pasados, por lo que adems del habitual proceso de anlisis ser necesario realizar una definicin de las reglas y elementos del universo Warbattle. El propsito principal de esta etapa es conseguir una comprensin ms precisa de los requisitos y una descripcin de los mismos que sea fcil de mantener y que nos ayude a estructurar el sistema completo. Se pueden, adems destacar los siguientes objetivos: - Describir un modelo del sistema utilizando el lenguaje de los desarrolladores. - Utilizar un lenguaje ms formal para refinar detalles relativos a los requisitos del sistema. - Estructurar los requisitos de un modo que facilite su comprensin, desarrollo, modificacin, y en general, su mantenimiento. Una vez realizada una breve definicin del proceso de anlisis de requisitos, se expondrn a continuacin los puntos que lo formarn en este proyecto: - Estudio de la ambientacin: se definir el universo Warbattle de una forma, se podra decir, informal. Se especificarn todos los elementos y reglas del entorno mediante el lenguaje natural. - Modelo de dominio: una vez definido el entorno se proceder a su conceptualizacin mediante la tcnica de UML 2.0 del modelo de dominio. - Modelo de casos de uso: a continuacin del modelo de dominio se realizar un estudio de las funcionalidades que permitir el juego. - Problemas encontrados y errores cometidos: se realizar una vez realizados todos los anteriores puntos un anlisis del trabajo realizado, con el fin de que queden documentados los errores cometidos y los problemas encontrados para poder ser consultados en futuros trabajos y evitar caer otra vez en ellos. - Conclusiones: por ltimo se realizar una valoracin tanto tcnica como personal del trabajo realizado.
14
WarBattle
2.
Estudio de la ambientacin
En este captulo se va a llevar a cabo el estudio de los elementos que formarn parte del juego. Puesto que Warbattle pretende ser un juego de estrategia en tiempo real, como en todos los juegos de este estilo debe tener un sistema de recursos que acte de restriccin y desbloqueo para la construccin de los dems elementos del juego. Cada elemento ser citado, definido y descrito a lo lardo de este captulo.
15
1.2 Recursos
Como ha sido mencionado brevemente en el apartado anterior, los recursos constituyen una de las piedras angulares del juego. Cada tipo de recurso ser empleado con diferentes fines, que se irn describiendo a lo largo de este captulo. Los tipos de recurso disponibles para todos los jugadores sern: - Trigo. - Madera. - Piedra. - Hierro. - Especia. Para cada tipo de recurso existir un tipo de productor (en adelante se utilizar el trmino productor para referirse a ello) que establecer el nmero de unidades producidas por hora en la aldea en la que se encuentre. Cada productor tendr un coste de aumento asociado diferente al resto de productores de otros recursos que vendr definido por una funcin de crecimiento en el coste. En trminos generales, la funcin que define el coste de aumento de nivel de un productor de un tipo de recurso ser:
16
WarBattle
Observando la anterior funcin se puede apreciar claramente que es una funcin creciente en todo el dominio *1, ). El objetivo es que, al ser un juego de duracin ilimitada, los costes de aumento de nivel supongan cada vez un reto mayor para el jugador. Por otro lado, dependiendo del productor que se quiera aumentar, ser necesario disponer de uno o ms tipos de recurso como se ver ms adelante. Los parmetros de cada productor sern los siguientes: Productor de trigo: o Tipo de recurso necesario: madera. Coste base = 40. Factor = 2. Productor de madera: o Tipo de recurso necesario: madera. Coste base = 60. Factor = 2. Productor de piedra: o Tipo de recurso necesario: madera. Coste base = 150. Factor = 2,2. Productor de hierro: o Tipo de recurso necesario: madera. Coste base = 300. Factor = 2,4. o Tipo de recurso necesario: piedra. Coste base = 100. Factor = 2,4. Productor de especia: o Tipo de recurso necesario: madera. Coste base = 500. Factor = 2,6. o Tipo de recurso necesario: piedra. Coste base = 200. Factor = 2,6.
Como puede observarse de los anteriores datos, no todos los productores tienen una progresin en el coste igual. Por ejemplo, es ms costoso reunir los recursos necesarios para aumentar el productor de hierro que el de madera. El objetivo por el que se establecen diferentes baremos para definir los costes en funcin del productor se debe a que lo que se pretende es que sea ms difcil desbloquear ciertos elementos del juego que dependen de ciertos recursos con el fin de que el juego se alargue en el tiempo.
17
Una vez analizados los costes asociados a cada productor en funcin del nivel en el que se encuentren, va a ser explicado otro concepto fundamental asociado a los mismos: la produccin. La produccin no es ms que el nmero de unidades que produce a la hora cada productor del tipo de recurso que lleva asociado. As, se pretende establecer una relacin directa entre el aumento de costes por nivel de los elementos y la produccin de recursos. Para hacer esto posible, es necesario definir un sistema de produccin comn a todos los jugadores y dependiente del productor y del nivel al que se encuentre. Para ello se utilizar la siguiente funcin, que determina el nmero de unidades producidas de un tipo de recurso por su productor asociado.
Al igual que en la funcin de costes de aumento, esta funcin tambin es creciente, pero con un nivel de crecimiento menor. Esto se debe a que el objetivo es retar al jugador a que tenga que esperar ms tiempo para aumentar los elementos si depende nicamente de la produccin de sus productores y necesite de estrategias adicionales para conseguir los recursos. Por ltimo, puesto que el tiempo es un elemento crtico en el juego, ser necesario establecer un sistema de clculo de tiempo para el aumento de niveles. La funcin que define el tiempo en segundos de aumento de un productor viene definida por:
Donde RecursoCoste hace referencia a cada coste por recurso asociado al productor. Ms adelante, en el apartado 1.3 Edificios, se describir la variable Herreros al describir la Fragua.
18
WarBattle
1.3 Edificios
Los edificios son unos elementos que desempearn dos misiones fundamentales a lo largo del transcurrir del juego. Por un lado desbloquearn otros elementos (ms informacin consultar el apartado 2. Restricciones de este captulo) y por otro servirn para mejorar las prestaciones a nivel local de los castillos en los que se encuentren o prestaciones a nivel global del jugador que los posea. A continuacin se describen los tipos de edificio disponibles en el juego: - Casa: permite aumentar en 20 unidades el nmero de soldados disponibles en una aldea.
- Biblioteca: este edificio permite mltiples opciones simultneamente. Una de ellas es la posibilitar la opcin de aumentar las ciencias disponibles para el jugador. Por otro lado, tambin acta de posible desbloqueador de ciencias, dependiendo del nivel en el que se encuentre. Por ltimo, con cada aumento de nivel aade al nmero de eruditos del jugador el nmero de nivel al que acaba de ser construido. As si, por ejemplo, un jugador dispona de 30 eruditos y acaba de construir una biblioteca al nivel 5, el nmero de eruditos se ver aumentado en 5, pasando a tener 35 eruditos en adelante. El trmino eruditos ser explicado ms adelante cuando se describa el papel que juega el tiempo en la investigacin de ciencias.
- Academia militar: este edificio tiene una funcin prcticamente igual que la de la biblioteca, slo que a diferencia de sta en vez de interaccionar con las ciencias de un jugador, lo hace con las habilidades militares del mismo. Este edificio, adems, en vez de eruditos aumenta el nmero de los maestros militares que ser descrito cuando sean explicadas las habilidades militares.
19
Por ltimo, la academia militar tiene la capacidad de desbloquear en ciertos niveles edificios como el cuartel o el taller de defensa (consultar apartado 2.Restricciones de este mismo captulo para ms informacin).
- Fragua: este edificio tiene dos funciones principales: desbloquear otros edificios del castillo que no se encuentran disponibles y aumentar en cada nivel el nmero de herreros de la misma forma que la biblioteca aumenta el nmero de eruditos y la academia militar el nmero de maestros militares.
- Cuartel: en este edificio se construyen las unidades militares (consultar apartado 1.6 de este captulo para ms informacin). Adems, segn el nivel en el que se encuentre, estarn disponibles o no ciertas unidades para su construccin.
20
WarBattle
- Taller de defensa: tiene el mismo funcionamiento que el cuartel pero para las unidades defensivas.
- Mercado: en l se llevan a cabo los comercios con otros jugadores o con el sistema. El nmero de comercios activos en un castillo podr ser, como mximo, igual al nivel del mercado.
- Almacn subterrneo: permite esconder parte de los recursos disponibles en un castillo al recibir ataques externos de otros jugadores. Cada nivel esconde un 5% de los recursos disponibles hasta un mximo de un 50%.
Una vez analizados los diferentes tipos de edificios disponibles en los castillos se procede a explicar el funcionamiento de los costes asociados al aumento de nivel de los mismos. Para el aumento de nivel de los edificios se utilizar una funcin que definir el coste de cada recurso necesario para llevar a cabo la accin. La funcin tiene el siguiente formato:
.
21
Como se puede deducir fcilmente es una funcin creciente en todo el dominio *1, ). El objetivo es conseguir que el juego se alargue lo mximo posible y que aumentar cada nivel suponga un reto para el jugador. A continuacin se describen los valores que se emplearn para cada edificio: Casa: o Tipo de recurso necesario: madera. Coste base = 1.000. Factor = 1. Biblioteca: o Tipo de recurso necesario: madera. Coste base = 500. Factor = 2. Academia militar: o Tipo de recurso necesario: madera. Coste base = 200. Factor = 2. o Tipo de recurso necesario: piedra. Coste base = 50. Factor = 2. Fragua: o Tipo de recurso necesario: madera. Coste base = 1.000. Factor = 2,5. o Tipo de recurso necesario: piedra. Coste base = 200. Factor = 2,5. Cuartel: o Tipo de recurso necesario: madera. Coste base = 500. Factor = 2,5. o Tipo de recurso necesario: piedra. Coste base = 50. Factor = 2,5. Taller de defensa: o Tipo de recurso necesario: madera. Coste base = 500. Factor = 2,5. o Tipo de recurso necesario: piedra. Coste base = 50. Factor = 2,5.
22
WarBattle
Mercado: o Tipo de recurso necesario: madera. Coste base = 10.000. Factor = 3. o Tipo de recurso necesario: piedra. Coste base = 1.000. Factor = 3. Almacn subterrneo: o Tipo de recurso necesario: madera. Coste base = 20.000. Factor = 4. o Tipo de recurso necesario: piedra. Coste base = 5.000. Factor = 4.
Por ltimo, la funcin que define el tiempo de aumento de cada nivel de un edificio es de la siguiente forma (expresada en segundos):
23
1.4 Ciencias
Las ciencias tienen una misin fundamental en el transcurso del juego: desbloquear edificios y otras ciencias. Adems, como se ver ms adelante, algunas desempean otras funciones. A diferencia de los edificios que actan a nivel local, las ciencias actan a nivel global en el jugador. Esto quiere decir que sus efectos se aplican a todos los castillos del jugador, no a uno slo como ocurre con los edificios. A continuacin se describen las ciencias disponibles en el juego: - Mando: cada nivel permite tener una misin adicional en curso. Por ejemplo, si un jugador tiene la ciencia mando en nivel 5, podr tener, como mximo, cinco misiones simultneas en curso.
- Herramientas: esta ciencia sirve para desbloquear otros elementos (consultar apartado 2. Restricciones de este captulo).
24
WarBattle
- Imperio: cada nivel permite al jugador poder colonizar una nueva posicin para edificar un nuevo castillo. As, por ejemplo, si un jugador tiene la ciencia Imperio en nivel 3 podr tener 4 castillos (3 del nivel ms el castillo con el que empieza).
- Espionaje: sirve para mejorar las condiciones de espionaje con cada nivel (consultar apartado 1.9 Misiones de este captulo).
25
Al igual que con los productores o los edificios, las ciencias tambin tienen asociado un coste de aumento por nivel, que viene definido por la siguiente funcin:
Los valores de los parmetros de la funcin del coste para cada ciencia son los siguientes: - Mando: o Tipo de recurso necesario: madera. Coste base = 500. Factor = 2. o Tipo de recurso necesario: piedra. Coste base = 50. Factor = 2. - Herramientas: o Tipo de recurso necesario: madera. Coste base = 1.200. Factor = 2. o Tipo de recurso necesario: piedra. Coste base = 120. Factor = 2. - Forja del hierro: o Tipo de recurso necesario: madera. Coste base = 2.000. Factor = 2. o Tipo de recurso necesario: hierro. Coste base = 50. Factor = 2. - Imperio: o Tipo de recurso necesario: madera. Coste base = 50.000. Factor = 2. o Tipo de recurso necesario: piedra. Coste base = 5.000. Factor = 2. - Espionaje: o Tipo de recurso necesario: madera. Coste base = 2.200. Factor = 2. o Tipo de recurso necesario: piedra. Coste base = 500. Factor = 2.
26
WarBattle
Ocultar bienes: o Tipo de recurso necesario: madera. Coste base = 10.000. Factor = 2. o Tipo de recurso necesario: piedra. Coste base = 1.000. Factor = 2. Comercio: o Tipo de recurso necesario: madera. Coste base = 30.000. Factor = 2. o Tipo de recurso necesario: piedra. Coste base = 3.000. Factor = 2.
Puesto que las ciencias son un elemento global de un jugador, la variable Eruditos tambin lo ser e, independientemente de donde tenga lugar el aumento de una biblioteca, ser actualizado con cada evento de ese tipo. Por ltimo, otra caracterstica que le confiere que sea a nivel global es que, si bien las ciencias estn disponibles para todos los castillos de un jugador, quizs no sean accesibles desde cualquiera de ellos. Esto se debe a que ciertos elementos puedan necesitar de ms de un elemento que los desbloquee (consultar apartado 2. Restricciones de este mismo captulo).
27
- Defensa: mismo efecto que la habilidad ataque pero sobre el nivel de defensa.
- Vitalidad: mismo efecto que la habilidad ataque pero sobre el nivel de vida.
28
WarBattle
- Carga: cada nivel aade un ataque adicional sobre las unidades de tipo Carga (ms informacin en el apartado 1.6 de este captulo).
- Alcance: cada nivel aade un ataque adicional sobre las unidades de tipo Distancia.
29
Al igual que con los productores o los edificios, las habilidades militares tambin tienen asociado un coste de aumento por nivel, que viene definido por la siguiente funcin:
Los valores de los parmetros de la funcin del coste para cada habilidad militar son los siguientes: - Ataque: o Tipo de recurso necesario: madera. Coste base = 500. Factor = 2. o Tipo de recurso necesario: piedra. Coste base = 50. Factor = 2. - Defensa: o Tipo de recurso necesario: madera. Coste base = 800. Factor = 2. o Tipo de recurso necesario: piedra. Coste base = 80. Factor = 2. - Vitalidad: o Tipo de recurso necesario: madera. Coste base = 2.000. Factor = 2. o Tipo de recurso necesario: piedra. Coste base = 200. Factor = 2.
30
WarBattle
Velocidad: o Tipo de recurso necesario: madera. Coste base = 1.200. Factor = 2. o Tipo de recurso necesario: piedra. Coste base = 120. Factor = 2. Formacin: o Tipo de recurso necesario: madera. Coste base = 20.000. Factor = 2. o Tipo de recurso necesario: piedra. Coste base = 2.000. Factor = 2. Carga: o Tipo de recurso necesario: madera. Coste base = 5.000. Factor = 2. o Tipo de recurso necesario: piedra. Coste base = 500. Factor = 2. Alcance: o Tipo de recurso necesario: madera. Coste base = 4.000. Factor = 2. o Tipo de recurso necesario: piedra. Coste base = 400. Factor = 2. Asalto: o Tipo de recurso necesario: madera. Coste base = 100.000. Factor = 2. o Tipo de recurso necesario: piedra. Coste base = 10.000. Factor = 2.
31
Puesto que las habilidades son un elemento global de un jugador, la variable Maestros militares tambin lo ser e, independientemente de donde tenga lugar el aumento de una academia militar, ser actualizado con cada evento de ese tipo. Por ltimo, otra caracterstica que le confiere que sea a nivel global es que, si bien las habilidades militares estn disponibles para todos los castillos de un jugador, quizs no sean accesibles desde cualquiera de ellos. Esto se debe a que ciertos elementos puedan necesitar de ms de un elemento que los desbloquee (consultar apartado 2. Restricciones de este mismo captulo).
32
WarBattle
33
A diferencia del resto de elementos vistos hasta el momento, las unidades militares no tienen niveles, por lo que no es necesario definir una funcin que determine el coste. No obstante esto no significa que no sea necesario definir unos costes para cada una de ellas, pues son, al fin y al cabo, tambin elementos construibles. Por otro lado, las unidades militares incorporan un nuevo tipo de coste asociado, adems de los recursos vistos anteriormente (consultar apartado 1.2 Recursos). Este nuevo tipo de coste es el nmero de soldados que se necesitan reclutar. Como se vio en la seccin 1.3 Edificios, este tipo de recurso especial se consigue mediante el edificio Casa. Los costes requeridos para construir una unidad de un tipo especfico de unidad militar, as como los atributos de sus caractersticas a continuacin:
Infantera ligera: o Costes: Hierro: 50 unidades. Soldados: 1. o Caractersticas: Fuerza: 2. Defensa: 3. Vida: 3. Velocidad: 5. Tipo de ataque especial: ninguno. Fuerza de ataque especial: 0. Carga mxima: 100 unidades.
34
WarBattle
Infantera pesada: o Costes: Hierro: 500 unidades. Soldados: 5. o Caractersticas: Fuerza: 6. Defensa: 8. Vida: 8. Velocidad: 4. Tipo de ataque especial: ninguno. Fuerza de ataque especial: Carga mxima: 200.
Caballera ligera: o Costes: Hierro: 200 unidades. Soldados: 5. o Caractersticas: Fuerza: 3. Defensa: 2. Vida: 5. Velocidad: 10. Tipo de ataque especial: carga. Fuerza de ataque especial: 2. Carga mxima: 50 unidades.
35
Caballera pesada: o Costes: Hierro: 2.000 unidades. Soldados: 25. o Caractersticas: Fuerza: 8. Defensa: 7. Vida: 10. Velocidad: 8. Tipo de ataque especial: carga. Fuerza de ataque especial: 5. Carga mxima: 100 unidades.
Arquero: o Costes: Hierro: 100 unidades. Soldados: 3. o Caractersticas: Fuerza: 1. Defensa: 1. Vida: 2. Velocidad: 5. Tipo de ataque especial: a distancia. Fuerza de ataque especial: 2. Carga mxima: 20 unidades.
36
WarBattle
Saetero: o Costes: Hierro: 1.000 unidades. Soldados: 15. o Caractersticas: Fuerza: 3. Defensa: 4. Vida: 5. Velocidad: 5. Tipo de ataque especial: a distancia. Fuerza de ataque especial: 6. Carga mxima: 50 unidades.
Dragn: o Costes: Hierro: 100.000 unidades. Soldados: 500. o Caractersticas: Fuerza: 12. Defensa: 15. Vida: 20. Velocidad: 2. Tipo de ataque especial: asalto. Fuerza de ataque especial: 10. Carga mxima: 10 unidades.
37
Espa: o Costes: Hierro: 10 unidades. Soldados: 1. o Caractersticas: Fuerza: 0. Defensa: 0. Vida: 1. Velocidad: 20. Tipo de ataque especial: ninguno. Fuerza de ataque especial: 0. Carga mxima: 0 unidades.
Convoy: o Costes: Piedra: 500 unidades. Soldados: 20. o Caractersticas: Fuerza: 1. Defensa: 1. Vida: 2. Velocidad: 10. Tipo de ataque especial: ninguno. Fuerza de ataque especial: 0. Carga mxima: 500 unidades.
38
WarBattle
Por ltimo, el tiempo que se tarda en construir una unidad de un tipo de unidad especfico es igual al nmero de unidades (sin incluir los soldados) en segundos. As si, por ejemplo, se construyen 10 unidades del tipo de unidad caballera ligera que tienen cada una de ellas un coste de 200 unidades de hierro, el tiempo de construccin de una sern 200 segundos y el de todas ellas en conjunto de de 200 * 10 = 2.000 segundos.
39
40
WarBattle
41
Calderos de aceite: o Costes: Hierro: 5.000 unidades. o Caractersticas: Fuerza: 10. Defensa: 4. Vida: 2.
42
WarBattle
Balistas: o Costes: Hierro: 50.000 unidades. o Caractersticas: Fuerza: 15. Defensa: 10. Vida: 10.
Por ltimo, el tiempo que se tarda en construir una unidad de un tipo de unidad defensiva especfico es igual al nmero de unidades que cuesta en segundos. As si, por ejemplo, se construyen 5 unidades de lanceros que tienen cada una de ellas un coste de 10 unidades de hierro, el tiempo de construccin de una sern 10 segundos y el de todas ellas en conjunto de de 10 * 5 = 50 segundos.
43
De igual manera, cada tierra se encuentra dividida a su vez en 49 sectores de la siguiente forma:
44
WarBattle
Por ltimo cada sector se encuentra dividido en 16 posiciones como se muestra en la siguiente figura:
Posicin 1
Posicin 2
Posicin 3
Posicin 4
Posicin 5
Posicin 6
Posicin 7
Posicin 8
Posicin 9
Posicin 10
Posicin 11
Posicin 12
Posicin 13
Posicin 14
Posicin 15
Posicin 16
Como se ha podido observar en las anteriores figuras, este sistema de coordenadas se basa en posiciones adyacentes similares a una matriz nxn. Los castillos se encuentran alojados en posiciones, teniendo sus coordenadas el siguiente formato: [ Tierra : Sector : Posicin ]. Estas coordenadas son nicas en todo el dominio de Warbattle y cada una slo puede ser ocupada por un nico castillo. As, con este sistema de coordenadas, el sistema calcular la distancia entre dos posiciones respecto de su distancia en cada matriz, siendo, por ejemplo, para las coordenadas [1:1:1] la posicin ms alejada del mapa las coordenadas [16:49:16] y las ms cercanas las coordenadas [1:1:2], [1:1:5] y [1:1:6]. Por otro lado, el sistema tendr en cuenta si las posiciones recorridas para llegar a un punto estn dentro de un mismo sector o de una misma tierra, en cuyo caso las distancias sern, en principio, ms cortas que al cruzar sectores o tierras. No obstante, puesto que cada posicin recorrida dentro de un sector equivale a un kilmetro (realizando una transformacin al sistema mtrico), el sistema debe ser capaz de calcular y ponderar las distancias en aquellos casos en los que sean elevadas con el fin de que una misin no tarde un tiempo excesivo para el jugador.
45
Por ltimo, aunque ya se describir con ms detenimiento a la hora de realizar el diseo del sistema la forma en que se asignan automticamente las posiciones, se har en este epgrafe una breve descripcin del mismo. El mecanismo de asignacin consistir en una asignacin que aporte equilibrio al mapa, intentando ocupar todos los sectores del mismo. Para ello deber tener memoria de cul fue la ltima posicin ocupada para proceder a la siguiente asignacin.
46
WarBattle
1.9 Misiones
Este tipo de accin es el que pretende darle un atractivo mayor al juego. Con ellas los jugadores interaccionarn entre s, los recursos de los castillos podrn ser transportados de uno a otro, etc. Las misiones slo podrn ser realizadas por las unidades militares, aunque, como se ir viendo a lo largo de esta seccin no todas las unidades podrn realizar cualquier tipo de misin. A continuacin sern expuestas y explicadas en detalle cada una de ellas: - Transporte: esta misin, como su propio nombre indica, permite transportar recursos entre dos castillos diferentes. La cantidad transportada vendr determinada por la suma de las capacidades mximas de las unidades involucradas en dicha misin. Una vez parten del castillo de origen los recursos transportados sern restados de los almacenados en dicho castillo. Al llegar a su destino entregarn la mercanca, actualizando as los recursos del castillo destino. - Ataque: se enviarn unidades militares a atacar al castillo de otro jugador con el objetivo de destruir su fuerza militar y de robarle parte de los recursos que tenga almacenados en el instante del ataque en el castillo. El algoritmo empleado para el ataque ser explicado en detalle en el apartado de diseo correspondiente. - Espionaje: para esta misin ser necesario enviar espas a ella para que tenga efecto. Su objetivo es conseguir informacin sobre los elementos blicos (unidades militares, defensivas, habilidades militares) que se encuentren en el momento del espionaje en el castillo objetivo. El nivel de informacin robada ser proporcional al nivel de la ciencia espionaje del jugador que espa respecto a la del jugador que es espiado. El algoritmo empleado para los espionajes ser explicado en detalle en el apartado de diseo correspondiente. Colonizacin: con este tipo de misin el jugador podr construir nuevos castillos desde cero. Para que esta misin pueda llevarse a cabo ser necesario cumplir tres requisitos: o En la misin debe ir, por lo menos, un Convoy. o El nivel de la ciencia Imperio del jugador que quiere construir un nuevo castillo debe ser mayor que el nmero de castillos ya construidos (sin incluir el castillo inicial). o La casilla que se quiere colonizar no debe estar ocupada por ningn castillo, ya sea del propio jugador como de otro. -
47
El tiempo de viaje vendr determinado como se pudo ver en los anteriores apartados por dos factores: - Distancia entre la posicin de origen y la de destino. - Velocidad de las tropas involucradas. Por ltimo, el nmero mximo de misiones que puede un jugador tener activas a la vez debe ser menor o igual al nivel al que tenga la ciencia Mando.
48
WarBattle
2. Restricciones
En esta seccin se analizarn las restricciones que van ligadas a la naturaleza del universo Warbattle.
Elemento bloqueado CIENCIAS Mando Herramientas Forja del hierro Imperio Espionaje Ocultar bienes Comercio HABILIDADES MILITARES Ataque Defensa Vitalidad Velocidad Formacin Carga Alcance Asalto
Elemento que desbloquea Biblioteca nivel 2 Biblioteca nivel 1 Biblioteca nivel 2 Herramientas nivel 3 Biblioteca nivel 8 Mando nivel 7 Biblioteca nivel 5 Mando nivel 5 Biblioteca nivel 10 Imperio nivel 4 Biblioteca nivel 8
Academia militar nivel 2 Academia militar nivel 3 Academia militar nivel 5 Ataque nivel 2 Academia militar nivel 4 Academia militar nivel 8 Academia militar nivel 4 Ataque nivel 6 Academia militar nivel 4 Velocidad nivel 2 Academia militar nivel 10 Ataque nivel 10
EDIFICIOS Almacn subterrneo Fragua Cuartel Academia militar Mercado Taller de defensa
Ocultar bienes nivel 8 Forja del hierro nivel 4 Fragua nivel 2 Mando nivel 3 Mando nivel 5 Comercio nivel 2 Fragua nivel 6 Mando nivel 5
49
Infantera pesada
Caballera ligera
Caballera pesada
Arquero
Saetero
Dragn
Espa
Convoy
Cuartel nivel 1 Academia militar nivel 2 Ataque nivel 2 Cuartel nivel 5 Academia militar nivel 4 Ataque nivel 4 Cuartel nivel 3 Academia militar nivel 4 Carga nivel 2 Cuartel nivel 7 Academia militar nivel 7 Carga nivel 8 Cuartel nivel 4 Academia militar nivel 4 Alcance nivel 2 Cuartel nivel 6 Academia militar nivel 7 Alcance nivel 8 Cuartel nivel 12 Academia militar nivel 12 Asalto nivel 6 Cuartel nivel 4 Academia militar nivel 4 Velocidad nivel 4 Cuartel nivel 2 Academia militar nivel 4 Velocidad nivel 4
Piqueros
Ballesteros
Calderos de aceite
Balistas
Taller de defensa nivel 2 Academia militar nivel 4 Defensa nivel 1 Taller de defensa nivel 4 Academia militar nivel 6 Defensa nivel 4 Taller de defensa nivel 6 Academia militar nivel 6 Defensa nivel 6 Taller de defensa nivel 6 Academia militar nivel 7 Defensa nivel 8 Taller de defensa nivel 12 Academia militar nivel 12 Defensa nivel 10
50
WarBattle
3.
Modelo de dominio
En este captulo se recoge la informacin obtenida utilizando el modelo de dominio para representar mediante UML 2.0 la realidad del sistema que ser desarrollado ms adelante. Antes de empezar con el anlisis, conviene recordar la definicin de modelo de dominio para facilitar la comprensin del mismo. Un modelo de dominio consiste en uno o ms diagramas UML que muestran: Los conceptos bsicos del dominio del problema. Sus propiedades ms importantes. Las relaciones importantes entre dichos conceptos. A pesar de su utilidad no todos los proyectos software requieren de su realizacin, generalmente porque su tamao no es lo suficientemente grande como para requerir de una herramienta que ordene y relacione conceptos. En el caso del proyecto Warbattle es una herramienta ms que necesaria, se podra decir que es imprescindible. Una vez realizado un buen modelo de dominio, el trabajo posterior de diseo comienza a ser abordable. De otra forma, hubiesen existido problemas de ensamblaje de nuevos conceptos en mdulos nuevos, con su consiguiente prdida de tiempo al tener que rehacer trabajo. Una vez vistas las ventajas aportadas por esta tcnica, se procede a separar los conceptos que van a ser tratados en grandes grupos para poder reflejar cmodamente los diagramas. Antes de empezar es necesario destacar que, de aqu en adelante, se sustituir el trmino castillo por el de aldea, puesto que a nivel de anlisis y diseo refleja mejor su funcin en el sistema. Estos grupos son: El entorno del jugador a nivel global. El entorno de las aldeas. Sistema de produccin. Sistema de costes. Unidades militares. Unidades defensivas. Restricciones. Misiones. Sistema de coordenadas.
51
Figura 3.2.1: Diagrama del modelo de dominio del entorno del jugador a nivel global
El diagrama muestra las siguientes entidades y relaciones: - Jugador: hace referencia, como su nombre indica, al propio jugador. Para poder identificarle de los dems deber tener un nombre nico del resto. Los otros dos atributos que se muestran, contrasea y email son necesarios para una correcta gestin de stos. - Caractersticas jugador: son las propiedades de la partida del jugador a nivel global. Sus atributos son: eruditos y maestros militares, que ya fueron explicados en el anterior captulo. Aldea: son los centros de actividad de los jugadores como ya se vio en el anterior captulo. Por el momento, slo interesa recoger la informacin sobre su nombre y si es capital o no. Esto significa que es la aldea de la que parte inicialmente el jugador o ha sido creada por l.
52
WarBattle
Por otro lado, como se puede apreciar en la relacin [1,*], un jugador puede tener una o varias aldeas, no obstante, una aldea slo podr pertenecer a un jugador. - Ciencia: esta entidad slo tiene un atributo, el nivel. Esto se debe a que esta entidad se refiere exclusivamente al objeto en particular de la ciencia que posee el jugador. Puesto que todos los jugadores utilizan los mismos tipos de ciencia, el resto de informacin comn ser excluida en otra entidad diferente, Tipo ciencia. Como se puede observar en el diagrama, cada ciencia pertenece a un nico jugador, pudiendo este ltimo tener un nmero indeterminado de ciencias bajo su supervisin. - Tipo ciencia: es la informacin sobre cada ciencia que es comn a todos los usuarios. Para el nivel de estudio actual slo interesa saber que tiene un nombre y una descripcin nicos y distintos del resto de tipos de ciencia. Ms adelante se irn viendo otras relaciones que parten de esta entidad del modelo de dominio. Al observar el diagrama se aprecia que cada ciencia debe pertenecer a un tipo de ciencia, lo que en la otra direccin no se refleja, sino que cada tipo de ciencia puede mltiples ciencias que estn relacionadas con ella. - Habilidad militar: de estructura muy similar a las ciencias, este objeto especifica las habilidades militares de un jugador, cuya informacin contenida es el nivel al que se encuentra y el tipo de habilidad que es, que se refleja en la relacin [*,1] con tipo habilidad. - Tipo habilidad: muy similar tambin a tipo ciencia, pero a diferencia de sta, su contenido refleja la informacin sobre los tipos de habilidades comunes a todos los usuarios.
53
Las entidades y relaciones del diagrama son las siguientes: - Aldea: puesto que ahora se ha analizado el carcter local de las aldeas y los elementos que pertenecen a ella, se han aadido un par de atributos que reflejan el estado de la misma en el juego. Estos atributos son: o Herreros: indican el nmero de herreros que tiene la aldea. o Soldados disponibles para construir unidades militares en una aldea. - Recurso: es la cantidad de unidades de cada recurso que hay disponibles en una aldea. Cada recurso slo podr ser de un tipo de recurso. Por otro lado, cada recurso slo podr pertenecer a una aldea. - Tipo recurso: recoge la informacin sobre el comportamiento y caractersticas de cada tipo de recurso. En este diagrama slo interesa hacer referencia a informacin de tipo identificativa como el nombre y su
54
WarBattle
descripcin. En los siguientes puntos se volver a utilizar esta entidad y se aumentar la informacin asociada a ella. - Productor: son los elementos que se encargan de producir recursos en una aldea. Puesto que todas las aldeas del juego tendrn el mismo tipo de productor, es necesario dividir la parte que es esttica y que define las caractersticas del mismo de la parte que es distinta o no en cada aldea. La informacin cambiante, por tanto, se recoge en esta entidad. Esa informacin es el nivel al que se encuentre en un momento dado el productor. As, cada productor pertenece a una nica aldea, mientras que sta puede tener mltiples productores. - Tipo productor: recoge informacin de tipo esttica sobre los tipos de productores que existen en el juego. Ms adelante se definirn ms caractersticas de los mismos. En este momento slo interesa conocer que tiene informacin identificativa como el nombre y la descripcin. Tambin se pueden extraer dos conceptos fundamentales del anterior diagrama: o Un productor slo puede ser de un tipo de productor. o Un tipo de productor produce un tipo de recurso que slo puede ser producido en un tipo de productor especfico. - Edificio: recoge la informacin sobre el estado de los edificios en una aldea. Cada edificio slo puede ser de un tipo de edificio especfico. La informacin relativa al tipo de edificio ser descrita en la entidad tipo edificio. Aqu slo se recoge el nivel al que se encuentre una instancia de un edificio. Por otro lado, en una aldea puede haber mltiples edificios, mientras que un edificio slo puede pertenecer a una aldea. - Tipo edificio: esta entidad abarca la informacin sobre los tipos de edificio disponibles en el juego. Ser utilizada por todos los edificios que sean del tipo asociado de todas las aldeas. Ms adelante se aumentar la informacin asociada a los tipos de edificios, pero por el momento es suficiente conocer que cada tipo de edificio tiene un nombre y una descripcin del mismo.
55
Los elementos participantes en el diagrama son los siguientes: - Tipo recurso: su contenido es igual que el que se vio en el anterior punto. En esta ocasin aparece una nueva relacin asociada a esta entidad, la que le une a la entidad produccin.
56
WarBattle
Esta relacin significa que para cada tipo de recurso existe una funcin de produccin que viene definida por los atributos de la entidad produccin como se puede comprobar en la funcin adjunta anterior al diagrama. - Produccin: esta entidad refleja el concepto de la frmula que determina la produccin de un tipo de recurso cuando un productor est a un determinado nivel. Sus atributos, por tanto, son los equivalentes a las variables que determinan la produccin. o Factor. o Produccin base. Por otro lado, la variable que falta para calcular la produccin se extrae de la entidad productor, que va ligada a la entidad produccin. - Productor: la informacin de este elemento no se ve alterada en este punto respecto al anterior. Como se ha comentado al describir la entidad produccin, ahora el atributo nivel tiene una nueva funcin, la de participar en la funcin de clculo de la produccin de recursos. - Recurso: esta entidad ve modificado su contenido, ya que en este punto es necesario aadirle un nuevo atributo. Este atributo refleja la produccin por hora del tipo de recurso de la aldea, que ser actualizado respecto a la produccin de un tipo de recurso de la aldea. Por eso, la relacin que une produccin y recurso es meramente informativa, pues la unin entre ambos slo existir en los momentos en que un productor sea actualizado por aumentar de nivel.
57
El siguiente diagrama muestra los elementos participantes as como las relaciones existentes entre ellos y los atributos que las definen:
58
WarBattle
Las entidades colaboradoras en el diagrama anterior son: - Tipo recurso: esta entidad ya ha sido descrita anteriormente, por eso aparece vaca de atributos. En este contexto tiene significado completo, pues los costes van asociados, cada uno, a un tipo de recurso especfico. - Coste nivelado: es el coste para un tipo de recurso de aumentar un tipo de elemento con nivel. Esta entidad tiene como atributos las variables que definen la funcin de coste a excepcin del nivel que ser recogida a la hora de calcular el coste de la instancia que almacene dicha informacin. - Tipo nivelado: esta entidad recoge las caractersticas comunes a todos los tipos de elementos cuyas instancias poseen el atributo nivel. El motivo de que puedan heredar de esta clase se debe a que todas ellas utilizan la misma funcin para el clculo del coste, variando de unas a otras los parmetros. - Tipo productor: entidad ya descrita en anteriores puntos. Hereda de tipo nivelado para calcular el coste de aumento de nivel. - Tipo edificio: entidad ya descrita en anteriores puntos. Hereda de tipo nivelado para calcular el coste de aumento de nivel. - Tipo ciencia: entidad ya descrita en anteriores puntos. Hereda de tipo nivelado para calcular el coste de aumento de nivel. - Tipo habilidad: entidad ya descrita en anteriores puntos. Hereda de tipo nivelado para calcular el coste de aumento de nivel. - Coste militar: define los costes asociados a los tipos de unidades militares. Puesto que este tipo de elementos no tienen la propiedad nivel, los costes son constantes y vienen definidos por el atributo coste base. - Tipo militar: abarca a los dos tipos de unidades de combate, las unidades militares y las unidades defensivas. - Tipo unidad: son los tipos de unidades militares del juego. Ms adelante se describirn en mayor detalle, aunque de momento es suficiente saber que para estimar su coste hereda de la entidad tipo militar. - Tipo defensa: son los tipos de unidades defensivas del juego. Ms adelante se describirn en mayor detalle, aunque de momento es suficiente saber que para estimar su coste hereda de la entidad tipo militar.
59
La explicacin de las entidades, las relaciones entre ellas y sus atributos viene a continuacin: - Tipo unidad: define los tipos de unidades militares disponibles en el juego. Esta informacin es comn para todos los jugadores y de contenido esttico. Como se puede observar, tiene varios atributos, que son: o Nombre del tipo de unidad. o Descripcin del tipo de unidad. o Fuerza base para un determinado tipo de unidad.
60
WarBattle
o Defensa base para un determinado tipo de unidad. o Puntos de vida base para un determinado tipo de unidad. o Velocidad base para un determinado tipo de unidad. o Carga mxima de transporte del tipo de unidad. o Tipo de ataque especial si es que tiene alguno. o Poder del tipo de ataque especial si es que tiene. o Soldados necesarios para poder construir una unidad del tipo de unidad militar deseado. Por ltimo, esta entidad es la misma que la que fue expuesta al describir los costes, slo que su contenido ha sido aqu ampliado. - Tropa: representa los escuadrones formados por un tipo de unidad militar dentro de un ejrcito. Dentro de esta entidad es necesario recopilar el nmero de unidades disponibles en el ejrcito de un tipo de unidad militar especfica. - Ejrcito: agrupa las diferentes tropas que forman parte de, valga la redundancia, un ejrcito. Como se puede observar en el diagrama, un ejrcito slo podr estar, o bien estacionado en una aldea, o bien ejerciendo una misin. - Misin: esta entidad representa las misiones de un jugador. Ms adelante ser explicada en mayor profundidad, pero de momento es suficiente saber que puede ser uno de los dos destinos de uso de un ejrcito. Por otro lado, en una misin slo puede estar involucrado un ejrcito que estuviese en una aldea. - Aldea: como se puede comprobar en el diagrama, esta entidad se encuentra vaca de atributos en l. Esto se debe a: o Los atributos requeridos hasta el momento de anlisis ya han sido definidos en anteriores diagramas. o Al definir las unidades militares no han aparecido atributos relevantes que amplen la definicin de la entidad. Por ltimo, como se observa en la relacin [1, 0,1] entre aldea y ejrcito, si bien un ejrcito puede no estar estacionado en una aldea, una aldea no puede tener estacionados ms de un ejrcito al mismo tiempo.
61
62
WarBattle
A continuacin se explican las entidades que participan en el anterior diagrama: - Tipo defensa: recoge la informacin esttica y relativa de los tipos de unidades defensivas del juego. Esta informacin es compartida y utilizada por todos los usuarios. Define las caractersticas de cada tipo de unidad defensiva mediante los siguientes atributos: o Nombre del tipo de unidad defensiva. o Descripcin del tipo de unidad defensiva. o Fuerza base del tipo de unidad defensiva. o Defensa base del tipo de unidad defensiva. o Vida base del tipo de unidad defensiva. Los atributos fuerza, defensa y vida son utilizados, al igual que suceda con las unidades militares, para realizar los clculos necesarios para estimar el resultado de los combates. - Tropa defensa: esta entidad agrupa por tropas, de una forma similar a la entidad tropa del grupo unidades militares, a todas las unidades defensivas de un mismo tipo. Su nico atributo, unidades, define el nmero de soldados de un tipo de unidad defensiva que forman parte de las defensas de una aldea. Ese atributo es de carcter dinmico, pues se ver aumentado al construir ms unidades, o disminuido, si procede, tras un combate. - Defensa aldea: su estructura y funcin son prcticamente idnticas a las de la entidad ejrcito del grupo unidades militares. Su propsito es el de agrupar todas las tropas defensivas de una aldea en un mismo conjunto. - Aldea: la informacin de esta entidad no se ve modificada respecto de los anteriores casos de estudio. Como se puede observar en el diagrama, en una aldea slo puede haber un conjunto de tropas defensivas que conforman, como se acaba de ver, el conjunto de defensas totales de la aldea.
63
3.7 Restricciones
Hasta el momento se han definido relaciones sobre elementos tangibles dentro del universo Warbattle, lo que permita imaginarse las relaciones existentes entre sus elementos y realizar una definicin ms clara y concisa. Con el tema que abarca esta seccin, las restricciones, estas facilidades desaparecen, pues se definen relaciones complejas entre entidades y, en algunos casos, es difcil concretar a que entidad se ligan las relaciones del dominio. Para empezar, ser til hacer un leve recordatorio de que son las restricciones. Las restricciones definen bloqueos sobre elementos que a la vez son bloqueados por otros elementos de su mismo dominio, o de dominios diferentes. Para ilustrar el caso, se recordar un ejemplo de restriccin ya vista en el captulo 1 Estudio de la ambientacin. Como se vio en ese captulo, para poder construir infanteras ligeras, era necesario tener disponibles en la aldea: - Cuartel nivel 1. - Academia militar nivel 2. - Ataque nivel 2. En este caso, para desbloquear un tipo de unidad militar son necesarios tener dos tipos de edificio a un determinado nivel y una habilidad militar a otro. Se analizar otro caso a continuacin. El elemento en estudio ser la ciencia Forja del hierro. Este tipo de ciencia necesitaba tener disponibles los siguientes elementos: Biblioteca nivel 2. Herramientas nivel 3.
Para este elemento son necesarios tener disponibles un tipo de edificio a un determinado nivel y una ciencia a otro. Una vez vistos ambos casos, se puede deducir fcilmente la dificultad de definir las restricciones para los elementos, pues, a diferencia de lo que ocurra con los costes que prcticamente todas las entidades podan heredar de otra que agrupase su comportamiento, en esta ocasin cada tipo de elemento tiene caractersticas diferentes entre ellos. Para reflejar la dificultad de este caso de estudio, se observar lo siguiente: - Tanto las ciencias como las habilidades militares pertenecen a un jugador a nivel global y, por tanto, se aplican a todas las aldeas del mismo.
64
WarBattle
Sin embargo, una caracterstica intrnseca de las restricciones de stas es que requieren de un edificio (biblioteca o academia militar segn el elemento) para poder acceder a ellas o desbloquearlas. La solucin que se adoptar ser la de dar de alta la primera vez que se desbloquee uno de esos tipos de elementos a nivel global. Por otro lado, para acceder a ellos desde una aldea, an a pesar de que ya pertenezcan al usuario, la misma deber cumplir los requisitos necesarios. - El resto de elementos, edificios y unidades militares y defensivas, tienen su ciclo de vida dentro de una aldea y, por tanto, sus restricciones estn sujetas a la misma. No obstante, como se vio anteriormente, todos ellos dependen de elementos globales (ciencias o habilidades militares) para ser desbloqueados. La solucin a estos problemas ser, adems de relacionar cada restriccin a su tipo de elemento bloqueado, asociar dicha restriccin o bien a un jugador en caso de ser ciencia o habilidad militar, o bien a una aldea en los dems casos. Puesto que, como se ha visto a lo largo de esta seccin, cada elemento tiene una configuracin de restricciones distintas, sern estudiadas por separado en funcin del elemento restringido.
65
Ciencias y habilidades militares El siguiente diagrama muestra las relaciones y entidades participantes en este proceso:
Los elementos que aparecen en el diagrama y su explicacin son: - Jugador: es el elemento que tiene las ciencias y habilidades militares bloqueadas. Si se realiza la lectura de las relaciones asociadas a l, se deduce que un jugador puede tener varias ciencias o habilidades militares bloqueadas, mientras que cada una de ellas slo puede pertenecer a un jugador. - Tipo habilidad: hace referencia al tipo de habilidad del elemento bloqueado y del elemento que puede o no desbloquearla. - Habilidad bloqueada: es la propia restriccin en s de una habilidad militar bloqueada en un momento dado. Para poder desbloquearla es necesario cumplir con los requisitos que vienen definidos bien en los atributos de la entidad como en las relaciones salientes con la entidad tipo habilidad. El significado de cada uno de ellos es el siguiente: o Nivel de la academia militar necesario para poder acceder a ella. o Un atributo que informe de la dependencia de otra habilidad para ser desbloqueada. Este atributo es requiere habilidad. o Nivel de la habilidad requerida en caso de que exista.
66
WarBattle
o Tipo de habilidad bloqueada: aparece en la relacin bloqueada entre tipo habilidad y habilidad bloqueada. o Tipo de habilidad desbloquea: aparece en la relacin desbloquea entre tipo habilidad y habilidad bloqueada. - Tipo ciencia: tiene el mismo significado que la entidad tipo habilidad pero sobre los elementos de tipo de ciencias. - Ciencia bloqueada: es la propia restriccin en s de una ciencia bloqueada en un momento dado. Para poder desbloquearla es necesario cumplir con los requisitos que vienen definidos bien en los atributos de la entidad como en las relaciones salientes con la entidad tipo ciencia. El significado de cada uno de ellos es el siguiente: o Nivel de la biblioteca necesario para poder acceder a ella. o Un atributo que informe de la dependencia de otra ciencia para ser desbloqueada. Este atributo es requiere ciencia. o Nivel de la ciencia requerida en caso de que exista. o Tipo de ciencia bloqueada: aparece en la relacin bloqueada entre tipo ciencia y ciencia bloqueada. o Tipo de ciencia desbloquea: aparece en la relacin desbloquea entre tipo ciencia y ciencia bloqueada.
67
Edificios A continuacin se definen las relaciones existentes en el dominio de restricciones de los edificios con el siguiente diagrama:
Si se comparan este diagrama con el anterior que describa las restricciones de las habilidades militares y las ciencias, se observarn notables diferencias en la estructura de ambos. Las restricciones para este caso, han sido consideradas de forma diferente. El motivo es que si en el anterior diagrama se poda incluir como atributo la restriccin por edificios debido a que slo dependan de un tipo especfico, para los edificios, es necesario agruparlo en su conjunto. Por tanto, un edificio podr tener ms de una restriccin para ser desbloqueado, que podr ser, o bien dependiente de un tipo de edificio, o bien de un tipo de ciencia. La definicin de los elementos del diagrama se presenta a continuacin: - Aldea: los edificios bloqueados pertenecen a una nica aldea de un jugador, mientras que de otra manera las aldeas pueden tener varios edificios bloqueados en un momento dado. Tipo edificio: tiene dos lecturas diferentes en este dominio: o Por un lado hace referencia mediante la relacin bloqueado al tipo de edificio bloqueado en una aldea.
68
WarBattle
o Por otro lado, hace referencia al tipo de edificio que puede ser el elemento que desbloquee el edificio bloqueado. Este significado se extrae de la relacin desbloquea. - Tipo ciencia: su significado en este dominio es el de ser un posible elemento que desbloquee un tipo de edificio dado. - Edificio bloqueado: es el edificio que se encuentra bloqueado en un cierto instante en una cierta aldea. Para que pueda eliminrsele el bloqueo debe de tener todas las condiciones de bloqueo, tanto de ciencias como de edificios que posea cumplidas. Para poder hacer posible esta situacin, es necesario recoger la siguiente informacin: o Tipo de edificio bloqueado. Se extrae de la relacin con tipo edificio bloqueado. o Tipo de elemento que desbloquea. Puede ser o bien un tipo de edificio o bien un tipo de ciencia. o Nivel del elemento al que desbloquea.
69
Unidades militares y defensivas Los ltimos elementos del dominio que van a ser estudiados son las restricciones de las unidades militares y defensivas. Estos tipos de elementos funcionan de la siguiente manera: - En el caso de las unidades militares, las restricciones dependen de tres factores: o Nivel del cuartel necesario para construir el tipo de unidad militar deseado. o Nivel de la academia militar requerido para desbloquear el tipo de unidad militar deseado. o Tipo de habilidad militar que desbloquea el tipo de unidad militar deseada. - En el caso de las unidades defensivas, las restricciones dependen de otros tres factores: o Nivel del taller militar necesario para construir el tipo de unidad defensiva deseado. o Nivel de la academia militar requerido para desbloquear el tipo de unidad defensiva deseado. o Tipo de habilidad militar que desbloquea el tipo de unidad defensiva deseada. Por otro lado, las restricciones de ambos tipos de unidades, tanto militares como defensivas, van asociadas a una nica aldea, por lo que cada aldea tendr sus propias unidades bloqueadas.
70
WarBattle
Las entidades y relaciones reflejadas en el dominio del diagrama son las siguientes: - Aldea: es el lugar donde tienen cabida los bloqueos tanto de las unidades militares como de las unidades defensivas. Cada aldea tendr sus propios bloqueos en funcin del grado de avance de la misma. - Tipo habilidad: en este dominio acta como elemento que desbloquea tanto las unidades militares como las defensivas tal y como puede observarse en la relacin con unidad bloqueada desbloquea. - Tipo unidad: es el tipo de unidad militar bloqueada en una aldea especfica en un instante dado tal y como puede apreciarse en la relacin bloqueada con unidad bloqueada. - Unidad bloqueada: esta entidad recoge la informacin necesaria para conocer los requisitos necesarios para que una unidad militar sea desbloqueada. - Tipo defensa: es el tipo de unidad defensiva bloqueada en una aldea especfica en un instante dado tal y como puede apreciarse en la relacin bloqueada con defensa bloqueada.
71
- Defensa bloqueada: esta entidad recoge la informacin necesaria para conocer los requisitos necesarios para que una unidad defensiva sea desbloqueada.
72
WarBattle
3.8 Misiones
En esta seccin se va a realizar el estudio de uno de los aspectos ms crticos del sistema, las misiones. Hasta el momento, al realizar el estudio de los elementos anteriores, no se ha hecho ninguna mencin al tiempo entre eventos. La criticidad de este dominio radica, bsicamente, en dos aspectos fundamentales: - Recientemente se ha hecho una pequea introduccin al concepto de tiempo entre eventos. Este hecho significa que al ser un juego en tiempo real, con mltiples jugadores interaccionando entre s y accediendo simultneamente a recursos compartidos, no slo mediante lectura, sino tambin mediante escritura, el sistema debe gestionar correctamente la variable del tiempo. En el dominio de las misiones es, si cabe, ms importante realizar perfectamente esta gestin. Para ilustrar mejor este proceso se utilizar un ejemplo sencillo. Imaginemos tres jugadores A, B y C. El jugador A ataca a B, llegando su ataque a las 21:00 del sistema. Por otro lado, el jugador C tambin ataca a B, pero su ataque es anterior y llega a las 20:59. Si se tiene en cuenta que el sistema actualiza las cuentas de los jugadores cuando uno de ellos genera algn evento (que es el procedimiento que va a utilizar el sistema), podramos encontrarnos con el siguiente problema: C tiene previsto el ataque sobre B antes que A, pero ninguno de los tres genera un evento antes de las 21:00. Hasta entonces no habra ningn problema, pues el sistema simplemente se queda a la espera de actualizar segn le lleguen eventos. Pero a las 21:05 llega el primer evento de los tres jugadores, que es el del jugador A. En este momento el sistema debera actualizar todos los elementos actualizables del jugador A, atacando en teora, antes que C y generando una situacin imposible. La figura siguiente ilustra el ejemplo mencionado:
73
Como se ha analizado en el ejemplo expuesto, el tiempo es una variable crtica que debe ser tratada con muchsimo cuidado. Ms adelante, durante la fase de diseo se proceder a realizar un estudio mucho mayor sobre los elementos de actualizacin y se explicar en detalle la solucin empleada. - Ya se ha visto por encima en el ejemplo utilizado en el anterior epgrafe que he un elemento importantsimo y de criticidad muy elevada es la concurrencia de eventos de diferentes jugadores sobre un mismo recurso, sobre todo cuando ste va a ser utilizado sobre operaciones de escritura.
Antes de confeccionar el modelo de dominio, es necesario explicar un par de conceptos ms. Las misiones consisten en enviar tropas desde un punto a otro para realizar alguna tarea determinada. Este hecho implica que las misiones tienen un punto de partida y otro de destino. En el juego, este suceso se ve reflejado en que las misiones parten de unas coordenadas de origen a otras de destino. Por otro lado, recordemos que haba cuatro tipos de misiones: Transporte. Combate. Espionaje. Colonizacin.
Una explicacin ms amplia se puede obtener en el captulo 1 Estudio de la ambientacin. Para realizar el dominio, nos interesa observar un concepto fundamental de los distintos tipos de misiones. Las tres primeras son misiones de ida y vuelta, es decir, una vez llegado al destino y ejercer su cometido, deben volver a las coordenadas de origen. La misin colonizacin, si ha tenido xito, al llegar a su destino desaparece, cumpliendo su cometido y creando un nuevo castillo. Por otro lado, despus de un ataque tambin puede darse el caso de que las tropas que atacaban pierdan el combate, en cuyo caso la misin tambin desaparecer de una forma similar a como desaparecen las colonizaciones que tienen xito. Una vez explicados los conceptos relativos a las misiones, sus problemas y sus tipos, a continuacin se presenta el modelo de dominio alcanzado para este caso:
74
WarBattle
Los elementos que intervienen en el diagrama son los siguientes: - Casilla: este nuevo elemento no visto hasta ahora representa una casilla en el mapa. De momento no se va a abordar su definicin y caractersticas, sino que su misin en este diagrama es representar la casilla de destino de la misin, que puede estar o no ocupada por otro jugador. En el punto 2.10 Sistema de coordenadas se profundizar en su descripcin. - Aldea: representa la aldea desde la que parte la misin y que ser, a su vez, la de destino cuando la misin alcance su destino original y est de regreso. - Misin: esta entidad incluye la informacin especfica sobre una misin en particular. Recoge informacin de tipo temporal, como las horas de inicio, llegada y vuelta, como del tipo de misin que llevar o llev a cabo. Como se puede ver en las relaciones salientes, esta entidad tiene las siguientes caractersticas: o Su destino slo puede ser una casilla del mapa. o Su origen slo puede ser una aldea del jugador que enva la misin. o Cada misin pertenece a un slo jugador, no obstante, cada jugador puede tener mltiples misiones simultneas. o Una misin est formada por un ejrcito que slo puede tomar parte en una misin. Jugador: representa el jugador que enva la misin. Ejrcito: representa el ejrcito que lleva a cabo la misin.
75
WarBattle
La lectura en sentido contrario se realiza de forma muy similar. Un jugador, sea en la aldea que sea bajo su poder, no podr poner a construir una biblioteca mientras est investigando una ciencia. Igualmente sucede con las academias militares y las habilidades militares. Las unidades militares y unidades defensivas, por otro lado, tambin siguen una estrategia idntica durante su construccin, aunque completamente distinta del resto de elementos vistos hasta el momento. En el caso de estos dos tipos de unidades de combate, hay que tener en cuenta que no se construye un nico tem de ellos como con los dems, sino que se ponen unidades de un determinado tipo de unidad. Por tanto, el sistema deber ser capaz de mantener la informacin de cuantas unidades se han puesto a construir de un determinado tipo de unidad de combate y a qu hora acaba cada una de construirse para su actualizacin. Puesto que intervienen demasiados elementos para ser expresados de forma cmoda en un diagrama, se dividirn por conjuntos.
77
Productores y edificios El siguiente diagrama muestra las entidades y relaciones de este dominio:
La descripcin de los elementos que intervienen en el dominio es: - Aldea: ambos tipos de construcciones, las de los edificios y las de los productores, se llevan a cabo, como se ha visto a lo largo de esta seccin, dentro de las aldeas. Como se puede observar en el diagrama adjunto, esta entidad ha adquirido un nuevo atributo. ste es la ltima hora de consulta, que recoge la hora en la que el usuario o el sistema realizaron el ltimo evento sobre la aldea, despus de un proceso de actualizacin de la misma. Con esa hora y con las que se vern a continuacin con las entidades productor pendiente y edificio pendiente, se calcular la finalizacin o no de ese tipo de elementos. - Productor pendiente: es el productor en construccin. Hace referencia al productor que se est construyendo de la aldea en la que se encuentra este ltimo, tal y como se puede observar en la relacin [1, 0,1] entre ellas. Su atributo hora de construccin indica la hora en que el productor en construccin terminara la misma. - Productor: hace referencia al productor en cuestin que est siendo construido en un momento dado en una aldea. - Edificio pendiente: es el edificio en construccin. Hace referencia al edificio que se est construyendo de la aldea en la que se
78
WarBattle
encuentra este ltimo, tal y como se puede observar en la relacin [1, 0,1] entre ellas. Su atributo hora de construccin indica la hora en que el edificio en construccin terminara la misma. - Edificio: hace referencia al edificio en cuestin que est siendo construido en un momento dado en una aldea.
79
Ciencias y habilidades militares El siguiente diagrama muestra las entidades y relacionadas con el dominio que va a ser estudiado:
Las entidades y relaciones mostradas en el diagrama son: - Jugador: hace referencia al jugador que tiene ciencias o habilidades investigndose. Ciencia: es la referencia a la ciencia que est siendo investigada.
Ciencia pendiente: rene la informacin necesaria para saber: o El usuario al que pertenece la ciencia en investigacin. Recordemos que el usuario slo puede tener una ciencia en ese estado. o La ciencia que est siendo investigada. o La hora de finalizacin en la investigacin.
WarBattle
o El usuario al que pertenece la habilidad en desarrollo. Recordemos que el usuario slo puede tener una habilidad en ese estado. o La habilidad que est siendo desarrollada. o La hora de finalizacin en el desarrollo. - Aldea: es la aldea en la que se est construyendo o la academia militar o la biblioteca. - Biblioteca pendiente: es la biblioteca que est siendo construida en una aldea en un momento dado y que determina si una ciencia puede ser investigada o no. De la relacin con aldea, se puede deducir que un usuario puede tener varias bibliotecas construyndose. - Academia pendiente: es la academia militar que est siendo construida en una aldea en un momento dado y que determina si una habilidad militar puede ser desarrollada o no. De la relacin con aldea, se puede deducir que un usuario puede tener varias academias militares construyndose. - Edificio pendiente: es la referencia de la academia o biblioteca que se est construyendo.
81
Unidades militares y defensivas El siguiente diagrama muestra las entidades y relacionadas con el dominio que va a ser estudiado:
Las entidades y relaciones mostradas en el diagrama son: - Aldea: es el lugar donde se lleva a cabo la construccin de unidades militares y defensivas. - Defensa disponible: informa al sistema de los tipos de defensa que ya han sido desbloqueados y que, por tanto, ya pueden ser construidos (siempre y cuando se cumplan los requisitos de costes). - Tipo defensa: es el tipo de defensa que o bien ya est disponible o bien est siendo construida, en funcin de la lectura que se haga de sus dos relaciones. - Defensa pendiente: es el conjunto de unidades de un mismo tipo de unidad defensiva que estn siendo construidas en una aldea en un instante concreto. Sus atributos son, por tanto: o Hora de construccin de una unidad de un tipo de unidad defensiva.
82
WarBattle
o Nmero construccin.
de
unidades
defensivas
pendientes
de
- Unidad disponible: informa al sistema de los tipos de unidades que ya han sido desbloqueados y que, por tanto, ya pueden ser construidos (siempre y cuando se cumplan los requisitos de costes). - Tipo unidad: es el tipo de unidad que o bien ya est disponible o bien est siendo construida, en funcin de la lectura que se haga de sus dos relaciones. - Unidad pendiente: es el conjunto de unidades de un mismo tipo de unidad militar que estn siendo construidas en una aldea en un instante concreto. Sus atributos son, por tanto: o Hora de construccin de una unidad de un tipo de unidad militar. o Nmero de unidades militares pendientes de construccin.
83
84
WarBattle
Las entidades y relaciones mostradas en el diagrama son: - Aldea: es elemento que ocupa las casillas del mapa. - Casilla: esta entidad se corresponde con cada una de las posiciones del mapa que constituyen los puntos de juego posibles. Los atributos que conforman esta entidad son: o Tierra en la que est situada la casilla. o Sector en el que est situada la casilla. o Posicin que ocupa en el sector. o Tipo de terreno que puede ser llanura, bosque o monte.
85
4.
El tema de estudio que ser tratado en este captulo es el anlisis de los casos de uso. Una vez realizado el modelo de dominio, ya se ha extrado y modelado la informacin suficiente para conocer el entorno y los elementos que formarn parte del juego Warbattle. El anlisis de los casos de uso es una herramienta fundamental en los procesos de ingeniera del software hoy en da. Es una tcnica para la captura de requisitos funcionales del sistema. Otra posible definicin puede ser la de que un caso de uso es una secuencia de interacciones que se desarrollarn entre un sistema y sus actores en respuesta a un evento que inicia un actor principal sobre el propio sistema. Un caso de uso, por tanto, responde a un objetivo de un actor respecto al sistema. El modelo de casos de uso se est formado por dos componentes: Diagrama de casos de uso. Descripcin detallada de cada caso de uso. Una vez vista la definicin y sentido del anlisis de casos de uso, se proceder a definir los lmites del mismo sobre el sistema que va a ser estudiado, en este caso, el juego Warbattle. Para proporcionar una lectura fcil y cmoda al lector se evitar realizar un nico diagrama de magnitudes enormes y de contenido farragoso. La solucin empleada ser la de elaborar diagramas y descripciones separadas en grupos cuyos contenidos tengan una relacin directa entre s. Los grupos en que se dividir el anlisis son: Acceso al sistema. Acciones informativas. Acciones sobre la produccin. Acciones sobre los edificios. Acciones sobre unidades militares. Acciones sobre unidades defensivas. Acciones sobre las ciencias. Acciones sobre las habilidades militares. Acciones sobre el mapa. Acciones sobre misiones.
86
WarBattle
Registrar jugador
Antes de proceder a la descripcin detallada de cada caso de uso, es fundamental resaltar que ambas unidades funcionales se realizan sobre la pgina principal del juego.
87
Caso de uso 1: Registrar jugador El usuario al acceder a la pgina de inicio selecciona la opcin registro.
88
WarBattle
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
Escenario primario
1. El usuario introduce los datos de usuario y acepta los trminos y condiciones de uso. 2. El sistema verifica la validez y disponibilidad de los datos introducidos, registra al jugador, le asigna una nueva cuenta y le concede acceso al juego.
Extensiones
2a. Los datos de usuario son incorrectos. 1. El sistema muestra una pgina de error en la autenticacin. 2b. Los datos de usuario ya estn dados de alta en el sistema. 1. El sistema muestra una pgina de error en la autenticacin.
Descripcin de datos
89
Caso de uso 2: Acceder al juego El usuario al acceder a la pgina de inicio accede al juego.
90
WarBattle
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
Escenario primario
1. El usuario introduce su identificacin. 2. El sistema comprueba que el jugador est registrado y le concede acceso al juego.
Extensiones
Descripcin de datos
91
Cambiar aldea
Ver mensajes
Borrar mensaje
Estos casos de uso ya se realizan sobre el interfaz del juego y el jugador debe haber sido validado y aceptado por el sistema.
92
WarBattle
Caso de uso 3: Ver informacin de la aldea en la que se encuentre el jugador El jugador elige sobre el panel de opciones de la izquierda la opcin Inicio.
Opcin inicio:
93
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
Escenario primario
1. El usuario elige la opcin inicio. 2. El sistema extrae de la sesin la aldea que estaba siendo consultada y devuelve al navegador la vista deseada.
Extensiones
Descripcin de datos
94
WarBattle
Caso de uso 4: Cambiar aldea El jugador elige sobre el panel de aldeas de la parte superior izquierda una de las aldeas que tiene bajo su mando.
Para elegir cambiar de aldea, el jugador debe elegir una aldea diferente de la lista desplegable situada en el panel de aldeas mostrado en la figura siguiente:
95
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
Escenario primario
1. El usuario selecciona una de las aldeas disponibles. 2. El sistema extrae de la request la aldea a la que se desea acceder, la sustituye por la anterior en la sesin y prepara la vista para el navegador.
Extensiones
1a. El usuario elige la aldea en la que ya se encontraba. 1. No se genera request y, por tanto, el sistema no interviene en el proceso.
Descripcin de datos
96
WarBattle
Caso de uso 5: Ver mensajes El jugador elige sobre el panel de opciones de la parte superior la opcin Mensajes.
Se genera la siguiente vista donde aparecen los mensajes que tiene un usuario en el momento del envo del evento.
97
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
El jugador debe haber accedido al juego. 1. El usuario elige la opcin mensajes. 2. El sistema extrae los mensajes almacenados y vigentes del jugador que realiza la peticin, prepara la vista y la enva al navegador.
Escenario primario
Extensiones
Descripcin de datos
98
WarBattle
Caso de uso 6: Ampliar informacin de los mensajes El jugador, una vez ha elegido la opcin de los mensajes, selecciona ver ms informacin sobre uno de ellos.
Para ver ms informacin sobre un mensaje, el jugador deber pinchar sobre el siguiente icono adjunto a determinados tipos de mensaje.
99
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe haber elegido previamente la opcin mensajes. 3. Existe algn mensaje con la opcin de ampliar informacin.
Escenario primario
1. El usuario elige la opcin ampliar informacin de un mensaje. 2. El sistema extrae el mensaje seleccionado y muestra en el navegador la informacin relativa al mensaje.
Extensiones
Descripcin de datos
100
WarBattle
Caso de uso 7: Borrar mensaje El jugador, una vez ha elegido la opcin de los mensajes, selecciona la opcin borrar el mensaje sobre uno de ellos.
Para borrar un mensaje, el jugador deber pinchar sobre el siguiente icono adjunto a cualquier mensaje.
101
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe haber elegido previamente la opcin mensajes.
Escenario primario
1. El usuario elige la opcin borrar mensaje. 2. El sistema extrae el mensaje seleccionado y lo da de baja en s mismo. A continuacin muestra la pgina general de informacin de la aldea en la que se encuentra el jugador.
Extensiones
Descripcin de datos
102
WarBattle
Ver productor
Estos casos de uso ya se realizan sobre el interfaz del juego y el jugador debe haber sido validado y aceptado por el sistema.
103
Caso de uso 8: Ver produccin de una aldea El jugador elige la opcin Produccin en el panel de opciones del margen izquierdo del interfaz.
Opcin Produccin:
104
WarBattle
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
Escenario primario
1. El jugador elige la opcin produccin. 2. El sistema extrae de la sesin la aldea seleccionada y prepara la informacin relativa al sistema de produccin en esa aldea para que la muestre el navegador del jugador.
Extensiones
Descripcin de datos
105
Caso de uso 9: Ver productor El jugador, una vez ha elegido la opcin Produccin del panel de opciones del margen izquierdo, selecciona sobre cualquier casilla del mapa de productores para ver ms informacin al respecto.
Al seleccionar cualquiera de las casillas de productores, el sistema debe devolver la siguiente vista con informacin sobre el productor seleccionado.
106
WarBattle
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe haber elegido previamente la opcin produccin.
Escenario primario
1. El usuario selecciona cualquier productor del tablero de productores. 2. El sistema extrae el productor seleccionado, realiza una lectura de la informacin de ste y la devuelve al usuario.
Extensiones
2a. El jugador no tiene en la aldea recursos suficientes para aumentar el nivel del productor. 1. El sistema prepara la vista sin habilitar la opcin de aumento de nivel.
Descripcin de datos
107
Caso de uso 10: Aumentar de nivel un productor El jugador, una vez ha seleccionado un productor, elige la opcin Aumentar nivel del productor escogido.
Para aumentar de nivel el productor seleccionado debe estar habilitada la opcin Aumentar nivel y pinchar sobre ella.
108
WarBattle
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe haber elegido previamente la opcin produccin. 3. El jugador debe haber elegido ver la informacin de un productor. 4. La opcin de aumento de nivel debe estar habilitada.
Escenario primario
1. El usuario elige la opcin aumentar nivel. 2. El sistema realiza la lectura del productor que se quiere aumentar de nivel y procede a realizar los clculos y escrituras pertinentes sobre el proceso. Una vez realizados, prepara la vista de informacin general de la aldea y la devuelve al navegador del jugador.
Extensiones
Descripcin de datos
109
Acceder a la biblioteca
Acceder al cuartel
Estos casos de uso ya se realizan sobre el interfaz del juego y el jugador debe haber sido validado y aceptado por el sistema.
110
WarBattle
Caso de uso 11: Ver edificios El jugador elige la opcin Edificios del panel de opciones del margen izquierdo del interfaz de juego.
Opcin edificios:
111
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
Escenario primario
1. El usuario selecciona la opcin ver edificios. 2. El sistema extrae de la sesin la aldea en la que se encuentra el jugador y realiza la lectura de los edificios que tiene la aldea. A continuacin prepara la vista y la devuelve al navegador del jugador.
Extensiones
Descripcin de datos
112
WarBattle
Caso de uso 12: Ver informacin de un edificio El jugador, una vez ha elegido la opcin Edificios del panel de opciones del margen izquierdo, selecciona sobre cualquier edificio para ver ms informacin al respecto.
Al seleccionar cualquiera de los edificios, el sistema debe devolver la siguiente vista con informacin sobre el edificio seleccionado.
113
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe haber elegido previamente la opcin edificios.
Escenario primario
1. El usuario selecciona cualquier edificio del tablero de edificios. 2. El sistema extrae el edificio seleccionado, realiza una lectura de la informacin de ste y la devuelve al usuario.
Extensiones
2a. El jugador no tiene en la aldea recursos suficientes para aumentar el nivel del edificio. 1. El sistema prepara la vista sin habilitar la opcin de aumento de nivel.
Descripcin de datos
114
WarBattle
Caso de uso 13: Aumentar de nivel un edificio El jugador, una vez ha seleccionado un edificio, elige la opcin Aumentar nivel del edificio escogido.
Para aumentar de nivel el edificio seleccionado debe estar habilitada la opcin Aumentar nivel y pinchar sobre ella.
115
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe haber elegido previamente la opcin edificios. 3. El jugador debe haber elegido ver la informacin de un edificio. 4. La opcin de aumento de nivel debe estar habilitada.
Escenario primario
1. El usuario elige la opcin aumentar nivel. 2. El sistema realiza la lectura del edificio que se quiere aumentar de nivel y procede a realizar los clculos y escrituras pertinentes sobre el proceso. Una vez realizados, prepara la vista de informacin general de la aldea y la devuelve al navegador del jugador.
Extensiones
Descripcin de datos
116
WarBattle
Caso de uso 14: Acceder a la biblioteca El jugador haba elegido la opcin ver biblioteca y selecciona la opcin Acceder en ella.
Para entrar a ver las ciencias disponibles en la biblioteca seleccionada, hay que pulsar sobre la opcin Acceder.
117
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe haber elegido previamente la opcin edificios. 3. El jugador debe haber elegido ver la informacin de la biblioteca.
Escenario primario
1. El usuario elige la opcin acceder a la biblioteca. 2. El sistema realiza la lectura de la biblioteca seleccionada y prepara la vista con las ciencias disponibles para esa biblioteca y la devuelve al navegador.
Extensiones
Descripcin de datos
118
WarBattle
Caso de uso 15: Acceder a la academia militar El jugador haba elegido la opcin ver academia militar y selecciona la opcin Acceder en ella.
Para entrar a ver las habilidades militares disponibles en la academia militar seleccionada, hay que pulsar sobre la opcin Acceder.
119
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe haber elegido previamente la opcin edificios. 3. El jugador debe haber elegido ver la informacin de la academia militar.
Escenario primario
1. El usuario elige la opcin acceder a la academia militar. 2. El sistema realiza la lectura de la academia militar seleccionada y prepara la vista con las habilidades militares disponibles para esa academia militar y la devuelve al navegador.
Extensiones
Descripcin de datos
120
WarBattle
Caso de uso 16: Acceder al cuartel El jugador haba elegido la opcin ver cuartel y selecciona la opcin Acceder en ella.
Para entrar a ver las unidades militares disponibles en el cuartel seleccionado, hay que pulsar sobre la opcin Acceder.
121
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe haber elegido previamente la opcin edificios. 3. El jugador debe haber elegido ver la informacin del cuartel.
Escenario primario
1. El usuario elige la opcin acceder al cuartel. 2. El sistema realiza la lectura del cuartel seleccionado y prepara la vista con las unidades militares disponibles para ese cuartel y la devuelve al navegador.
Extensiones
Descripcin de datos
122
WarBattle
Caso de uso 17: Acceder al taller de defensa El jugador haba elegido la opcin ver taller de defensa y selecciona la opcin Acceder en l.
Para entrar a ver las unidades defensivas disponibles en el taller defensivo seleccionado, hay que pulsar sobre la opcin Acceder.
123
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe haber elegido previamente la opcin edificios. 3. El jugador debe haber elegido ver la informacin del taller de defensa.
Escenario primario
1. El usuario elige la opcin acceder al taller de defensa. 2. El sistema realiza la lectura del taller de defensa seleccionado y prepara la vista con las unidades defensivas disponibles para ese taller de defensa y la devuelve al navegador.
Extensiones
Descripcin de datos
124
WarBattle
Jugador
Estos casos de uso ya se realizan sobre el interfaz del juego y el jugador debe haber sido validado y aceptado por el sistema.
125
Caso de uso 18: Ver informacin de una unidad militar El jugador eligi la opcin ver cuartel dentro de los edificios. El sistema le muestra las unidades militares que puede construir en esa aldea. Una vez presentada la informacin, el jugador pulsa sobre cualquier unidad para ver toda la informacin relativa a ella.
Al pulsar sobre cualquier imagen de una unidad se mostrar la informacin relativa a sta.
126
WarBattle
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador ha tenido que elegir la opcin edificios. 3. El jugador ha elegido la opcin ver cuartel. 4. El jugador tiene unidades militares disponibles para mostrar en esa aldea.
Escenario primario
1. El usuario pulsa sobre la imagen de un tipo de unidad. 2. El sistema realiza la lectura de la unidad seleccionada y prepara la vista con la informacin de sta para devolverla al navegador.
Extensiones
Descripcin de datos
127
Caso de uso 19: Construir unidades militares El jugador debe venir del caso de uso 17 Ver cuartel. A continuacin introduce el nmero de unidades que quiere construir de cada tipo de unidad militar que tenga disponible en la aldea y selecciona la opcin construir (tambin puede utilizar la tecla Enter).
128
WarBattle
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador ha tenido que elegir la opcin edificios. 3. El jugador ha elegido la opcin ver cuartel. 4. El jugador tiene unidades militares disponibles para mostrar en esa aldea.
Escenario primario
1. El usuario introduce el nmero de unidades que quiere construir de cada tipo de unidad militar. 2. El sistema construye todas las unidades permitidas dependiendo del nmero de recursos y prepara la vista general de la aldea para devolverla al navegador.
Extensiones
Descripcin de datos
129
Caso de uso 20: Ver unidades militares disponibles El jugador elige la opcin Tropas del panel de opciones del margen izquierdo del interfaz de juego.
Opcin tropas:
130
WarBattle
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
Escenario primario
1. El usuario selecciona la opcin ver tropas. 2. El sistema extrae de la sesin la aldea en la que se encuentra el jugador y realiza la lectura de las unidades militares estacionadas en la aldea. A continuacin prepara la vista y la devuelve al navegador del jugador.
Extensiones
Descripcin de datos
131
Jugador
Estos casos de uso ya se realizan sobre el interfaz del juego y el jugador debe haber sido validado y aceptado por el sistema.
132
WarBattle
Caso de uso 21: Ver informacin de una unidad defensiva El jugador eligi la opcin ver taller de defensa dentro de los edificios. El sistema le muestra las unidades defensivas que puede construir en esa aldea. Una vez presentada la informacin, el jugador pulsa sobre cualquier unidad para ver toda la informacin relativa a ella.
Al pulsar sobre cualquier imagen de una unidad defensiva se mostrar la informacin relativa a sta.
133
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador ha tenido que elegir la opcin edificios. 3. El jugador ha elegido la opcin ver taller de defensa. 4. El jugador tiene unidades defensivas disponibles para mostrar en esa aldea.
Escenario primario
1. El usuario pulsa sobre la imagen de un tipo de unidad defensiva. 2. El sistema realiza la lectura de la unidad seleccionada y prepara la vista con la informacin de sta para devolverla al navegador.
Extensiones
Descripcin de datos
134
WarBattle
Caso de uso 22: Construir unidades defensivas El jugador debe venir del caso de uso 18 Ver taller de defensa. A continuacin introduce el nmero de unidades que quiere construir de cada tipo de unidad defensiva que tenga disponible en la aldea y selecciona la opcin construir (tambin puede utilizar la tecla Enter).
135
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador ha tenido que elegir la opcin edificios. 3. El jugador ha elegido la opcin ver taller de defensa. 4. El jugador tiene unidades defensivas disponibles para mostrar en esa aldea.
Escenario primario
1. El usuario introduce el nmero de unidades que quiere construir de cada tipo de unidad defensiva. 2. El sistema construye todas las unidades permitidas dependiendo del nmero de recursos y prepara la vista general de la aldea para devolverla al navegador.
Extensiones
Descripcin de datos
136
WarBattle
Caso de uso 23: Ver unidades defensivas disponibles El jugador elige la opcin Defensa del panel de opciones del margen izquierdo del interfaz de juego.
Opcin defensa:
137
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
Escenario primario
1. El usuario selecciona la opcin ver defensas. 2. El sistema extrae de la sesin la aldea en la que se encuentra el jugador y realiza la lectura de las unidades defensivas de la aldea. A continuacin prepara la vista y la devuelve al navegador del jugador.
Extensiones
Descripcin de datos
138
WarBattle
Estos casos de uso ya se realizan sobre el interfaz del juego y el jugador debe haber sido validado y aceptado por el sistema.
139
Caso de uso 24: Ver ciencias del jugador El jugador elige la opcin Ciencia del panel de opciones del margen superior del interfaz de juego.
Opcin ciencia:
140
WarBattle
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
Escenario primario
1. El usuario selecciona la opcin ver ciencias. 2. El sistema realiza la lectura de las ciencias que posee el jugador. A continuacin prepara la vista y la devuelve al navegador del jugador.
Extensiones
Descripcin de datos
141
Caso de uso 25: Ver informacin sobre una ciencia Este caso de uso puede provenir de dos diferentes casos de uso, tanto del caso de uso 24 Ver ciencias como del caso de uso 14 Acceder a la biblioteca. La diferencia que existir entre uno y otro ser el nmero de ciencias a mostrar y la opcin de que puede aumentarse de nivel que estar bloqueada si proviene del caso de uso 24 Ver ciencias. En cualquier caso en ambas situaciones al pulsar sobre cualquier ciencia aparecer la informacin relativa a sta. En ambos casos tambin el formato del interfaz antes de seleccionar la ciencia de la que se quiere adquirir informacin ser el siguiente:
142
WarBattle
Al pulsar sobre cualquier imagen de una ciencia estando en la biblioteca se mostrar la siguiente informacin
Al pulsar sobre cualquier imagen de una ciencia al seleccionar la opcin ciencia se mostrar la siguiente informacin:
Como se puede observar, las diferencias entre un formato y otro residen, bsicamente en la incorporacin de informacin sobre el coste de investigacin y el proceso de aumento de sta.
143
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2a. El jugador ha tenido que elegir la opcin ciencia. 2b. El jugador ha tenido que elegir la opcin acceder a la biblioteca. 3. El jugador tiene ciencias que mostrar.
Escenario primario
1. El usuario pulsa sobre la imagen de un tipo de ciencia. 2. El sistema realiza la lectura de la ciencia seleccionada y prepara la vista con la informacin de sta para devolverla al navegador.
Extensiones
Descripcin de datos
144
WarBattle
Caso de uso 26: Aumentar de nivel una ciencia El jugador, una vez ha seleccionado una ciencia y viniendo del caso de uso 14 Acceder a la biblioteca, elige la opcin Aumentar nivel de la ciencia escogida.
Para aumentar de nivel la ciencia seleccionada debe estar habilitada la opcin Aumentar nivel y pinchar sobre ella.
145
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe haber elegido previamente la opcin ver la biblioteca. 3. El jugador debe haber elegido ver la informacin de una ciencia. 4. La opcin de aumento de nivel debe estar habilitada.
Escenario primario
1. El usuario elige la opcin aumentar nivel. 2. El sistema realiza la lectura de la ciencia que se quiere aumentar de nivel y procede a realizar los clculos y escrituras pertinentes sobre el proceso. Una vez realizados, prepara la vista de informacin general de la aldea y la devuelve al navegador del jugador.
Extensiones
Descripcin de datos
146
WarBattle
Figura 3.3.61: Diagrama de casos de uso de acciones sobre las habilidades militares
Estos casos de uso ya se realizan sobre el interfaz del juego y el jugador debe haber sido validado y aceptado por el sistema.
147
Caso de uso 27: Ver habilidades militares del jugador El jugador elige la opcin Habilidad del panel de opciones del margen superior del interfaz de juego.
Opcin habilidad:
148
WarBattle
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
Escenario primario
1. El usuario selecciona la opcin ver habilidades militares. 2. El sistema realiza la lectura de las habilidades militares que posee el jugador. A continuacin prepara la vista y la devuelve al navegador del jugador.
Extensiones
Descripcin de datos
149
Caso de uso 28: Ver informacin sobre una habilidad militar Este caso de uso puede provenir de dos diferentes casos de uso, tanto del caso de uso 27 Ver habilidades militares como del caso de uso 15 Acceder a la academia militar. La diferencia que existir entre uno y otro ser el nmero de habilidades militares a mostrar y la opcin de que puede aumentarse de nivel que estar bloqueada si proviene del caso de uso 25 Ver habilidades militares. En cualquier caso en ambas situaciones al pulsar sobre cualquier habilidad militar aparecer la informacin relativa a sta. En ambos casos tambin el formato del interfaz antes de seleccionar la habilidad militar de la que se quiere adquirir informacin ser el siguiente:
150
WarBattle
Al pulsar sobre cualquier imagen de una habilidad militar estando en la academia militar se mostrar la siguiente informacin:
Al pulsar sobre cualquier imagen de una habilidad militar al seleccionar la opcin habilidad se mostrar la siguiente informacin:
Como se puede observar, las diferencias entre un formato y otro residen, bsicamente, en la incorporacin de informacin sobre el coste de desarrollo y el proceso de aumento de ste.
151
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2a. El jugador ha tenido que elegir la opcin habilidad. 2b. El jugador ha tenido que elegir la opcin acceder a la academia militar. 3. El jugador tiene habilidades militares que mostrar.
Escenario primario
1. El usuario pulsa sobre la imagen de un tipo de habilidad militar. 2. El sistema realiza la lectura de la habilidad militar seleccionada y prepara la vista con la informacin de sta para devolverla al navegador.
Extensiones
Descripcin de datos
152
WarBattle
Caso de uso 29: Aumentar de nivel una habilidad militar El jugador, una vez ha seleccionado una habilidad militar y viniendo del caso de uso 15 Acceder a la academia militar, elige la opcin Aumentar nivel de la habilidad militar escogida.
Para aumentar de nivel la habilidad militar seleccionada debe estar habilitada la opcin Aumentar nivel y pinchar sobre ella.
Figura 3.3.68: Vista ampliada de la opcin Aumentar nivel de una habilidad militar
153
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe haber elegido previamente la opcin ver la academia militar. 3. El jugador debe haber elegido ver la informacin de una habilidad militar. 4. La opcin de aumento de nivel debe estar habilitada.
Escenario primario
1. El usuario elige la opcin aumentar nivel. 2. El sistema realiza la lectura de la habilidad militar que se quiere aumentar de nivel y procede a realizar los clculos y escrituras pertinentes sobre el proceso. Una vez realizados, prepara la vista de informacin general de la aldea y la devuelve al navegador del jugador.
Extensiones
Descripcin de datos
154
WarBattle
Ver mapa
Ver casilla
Cambiar tierra
Cambiar coordenadas
Estos casos de uso ya se realizan sobre el interfaz del juego y el jugador debe haber sido validado y aceptado por el sistema.
155
Caso de uso 30: Ver mapa El jugador elige la opcin Mapa del panel de opciones del margen superior del interfaz de juego.
Opcin mapa:
156
WarBattle
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
Escenario primario
1. El usuario selecciona la opcin ver mapa. 2. El sistema realiza la lectura del sector en el que est ubicada la aldea seleccionada del jugador que realiza la peticin. A continuacin prepara la vista y la devuelve al navegador del jugador.
Extensiones
Descripcin de datos
157
Caso de uso 31: Ver casilla El jugador selecciona una casilla del mapa del tablero de la izquierda mientras est viendo algn sector especfico del mapa.
Para ver informacin sobre la casilla el usuario tiene que pulsar sobre cualquiera de ellas para acceder a ella.
158
WarBattle
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe estar sobre la vista del mapa.
Escenario primario
1. El usuario selecciona una casilla. 2. El sistema extrae la casilla escogida y realiza la lectura de la informacin contenida en ella. A continuacin prepara la vista y la devuelve al navegador del jugador.
Extensiones
Descripcin de datos
159
Caso de uso 32: Cambiar tierra El jugador selecciona cualquiera de las dos flechas del panel de tierra. El sistema en respuesta a esa peticin debe ir a la siguiente tierra si se ha seleccionado la flecha de la derecha o a la anterior si se ha seleccionado la flecha de la izquierda.
Para cambiar de tierra hay que pulsar sobre cualquiera de las dos flechas que acompaan a los lados del cuadro de texto con el nmero de tierra actual.
160
WarBattle
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe estar sobre la vista del mapa.
Escenario primario
1. El usuario selecciona una de las dos direcciones de recorrido de las tierras (en sentido izquierdo o derecho). 2. El sistema extrae el sector actual y recoge la peticin de recorrido. Una vez extrada la informacin realiza la lectura del sector que ha pedido el jugador. A continuacin prepara la vista y la devuelve al navegador del jugador.
Extensiones
Descripcin de datos
161
Caso de uso 33: Cambiar sector El jugador selecciona cualquiera de las dos flechas del panel de sector. El sistema en respuesta a esa peticin debe ir al siguiente sector si se ha seleccionado la flecha de la derecha o al anterior si se ha seleccionado la flecha de la izquierda.
Para cambiar de sector hay que pulsar sobre cualquiera de las dos flechas que acompaan a los lados del cuadro de texto con el nmero de sector actual.
162
WarBattle
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe estar sobre la vista del mapa.
Escenario primario
1. El usuario selecciona una de las dos direcciones de recorrido de los sectores (en sentido izquierdo o derecho). 2. El sistema extrae el sector actual y recoge la peticin de recorrido. Una vez extrada la informacin realiza la lectura del sector que ha pedido el jugador. A continuacin prepara la vista y la devuelve al navegador del jugador.
Extensiones
Descripcin de datos
163
Caso de uso 34: Cambiar coordenadas El jugador accede a los cuadros de texto donde aparecen las coordenadas (tierra y regin) y modifica los datos por los de las coordenadas a las que quiere acceder. El sistema los recoge y muestra la informacin del sector seleccionado.
Para cambiar de coordenadas se cambian los nmeros de tierra y regin y se pulsa el botn ver (tambin es vlido utilizar la tecla Enter).
164
WarBattle
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2. El jugador debe estar sobre la vista del mapa.
Escenario primario
1. El usuario modifica o no los valores de las casillas tierra y regin y pulse Ver. 2. El sistema extrae las coordenadas de la tierra y el sector que ha introducido el jugador. Una vez extrada la informacin realiza la lectura del sector que ha pedido el jugador. A continuacin prepara la vista y la devuelve al navegador del jugador.
Extensiones
Descripcin de datos
165
Jugador
Crear misin
Estos casos de uso ya se realizan sobre el interfaz del juego y el jugador debe haber sido validado y aceptado por el sistema.
166
WarBattle
Caso de uso 35: Ver misiones activas El jugador elige sobre el panel de opciones de la parte superior la opcin Misiones.
Se genera la siguiente vista donde aparecen las misiones que tiene un usuario en el momento del envo del evento.
167
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
Escenario primario
1. El usuario elige la opcin misiones. 2. El sistema extrae misiones en curso del jugador que realiza la peticin, prepara la vista y la enva al navegador.
Extensiones
Descripcin de datos
168
WarBattle
Caso de uso 36: Ver tiempo de duracin de un viaje El jugador desea conocer el tiempo de viaje de un conjunto de tropas desde la aldea en la que se encuentran hasta una casilla distinta. Para poder llevar a cabo esta unidad de trabajo, el jugador debe haber seleccionado la opcin Tropas y elegido unas coordenadas distintas o desde el mapa al pulsar sobre cualquier casilla haber escogido alguna de las opciones de misiones disponibles. En ambos casos deber seleccionar, adems, al menos una unidad.
Para calcular el tiempo el jugador debe seleccionar unas coordenadas y al menos una unidad. A continuacin deber pulsar sobre el botn calcular tiempo para obtener dicha informacin.
169
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2a. El jugador selecciona la opcin Tropa. 2b. El jugador escogi una misin al pulsar sobre una casilla del mapa. 3. El jugador debe, al menos, seleccionar algn tipo de unidad y elegir unas coordenadas de destino.
Escenario primario
1. El usuario elige la opcin Calcular tiempo. 2. El sistema extrae las unidades elegidas, las coordenadas de destino y junto a las coordenadas de la aldea del jugador que se encuentra seleccionada y la bonificacin de velocidad del jugador que realiza la peticin, calcula el tiempo de viaje, prepara la vista y la enva al navegador.
Extensiones
Descripcin de datos
170
WarBattle
Caso de uso 37: Crear misin El jugador desea crear una misin con un conjunto de tropas desde la aldea en la que se encuentran hasta una casilla distinta. Para poder llevar a cabo esta unidad de trabajo, el jugador debe haber seleccionado la opcin Tropas y elegido unas coordenadas distintas o desde el mapa al pulsar sobre cualquier casilla haber escogido alguna de las opciones de misiones disponibles. En ambos casos deber seleccionar, adems, al menos una unidad.
Para crear una misin el jugador debe seleccionar unas coordenadas y al menos una unidad. A continuacin deber pulsar sobre el botn aceptar empezar la misin deseada.
171
Actor primario
Jugador
Actores secundarios
Trigger
Precondiciones
1. El jugador debe haber accedido al juego. 2a. El jugador selecciona la opcin Tropa. 2b. El jugador escogi una misin al pulsar sobre una casilla del mapa. 3. El jugador debe, al menos, seleccionar algn tipo de unidad y elegir unas coordenadas de destino.
Escenario primario
1. El usuario elige la opcin Aceptar. 2. El sistema extrae las unidades elegidas, las coordenadas de destino y junto a las coordenadas de la aldea del jugador que se encuentra seleccionada y la bonificacin de velocidad del jugador que realiza la peticin, da de alta la nueva misin. Acto seguido prepara la vista de informacin general de la aldea y la enva al navegador.
Extensiones
Descripcin de datos
172
WarBattle
5.
Problemas y errores
El anlisis de requisitos ha sido un proceso largo y difcil. Han sido necesarias varias iteraciones hasta encontrar una solucin estable y que reflejase correctamente todos los elementos del universo Warbattle. Las mayores dificultades se encontraron al comienzo del proceso de estudio. Las causas fueron diversas: Inexperiencia en anlisis de sistemas software. Se realizaron mltiples pruebas de entrenamiento antes de empezar tan siquiera a realizar algn avance. Equivocacin en el planteamiento. Durante los primeros meses se intent exponer el estudio sin separarlo en grupos, es decir, todo el proceso se haca sobre todo el sistema. Como se ha visto a lo largo del anlisis de requisitos, esto era prcticamente una locura, pues el sistema tiene un volumen considerable para abordarlo de un golpe. Tamao del entorno. Como se ha visto en el anterior epgrafe, el universo Warbattle tiene un tamao considerable, lo que le aporta de forma innata una dificultad extra. Creacin del entorno desde cero. Este estudio se realiz sin ninguna especificacin del sistema ni documentos que especificasen algn requisito. Por ello, adems del proceso habitual tpico del anlisis de requisitos en la ingeniera del software, fue necesario un proceso de creacin de un universo con sus propias reglas. Dificultad de representacin de varios conceptos. Como ya se vio en varios puntos del anlisis, el entorno Warbattle posee elementos que implican una dificultad alta en su representacin. Ejemplos claros de stos son las restricciones entre elementos. Abstraccin. Este proceso siempre implica dificultades, pues no es lo mismo realizar un estudio sobre algo ya creado que tener que imaginar muchsimos conceptos relacionados entre s. Factor tiempo. Es un elemento crtico del sistema sobre el que se basa todo el funcionamiento del universo Warbattle. Crear sistemas crticos en el tiempo siempre es una tarea difcil para los analistas de sistemas. Debido a todas las causas vistas, el nmero de errores cometidos hasta alcanzar una solucin estable fue bastante elevado. Quizs los ms destacables fueron los siguientes: Al principio se tenda a particularizar en exceso. Posiblemente, el hecho de cambiar la estrategia al extremo contrario, el de intentar generalizar lo mximo posible hizo posible que, llegado a un punto, el anlisis pudiera avanzar de forma ms fluida.
173
Durante los primeros meses tambin se cay en el error de no contar con ninguna herramienta con la que se pudiesen observar y encontrar los elementos que iban a constituir la estructura de Warbattle. Este suceso fue aliviado en cuanto se empezaron a utilizar borradores del interfaz de usuario desde el que poder ver qu elementos eran necesarios y cules no.
174
WarBattle
6.
Conclusiones
Una vez finalizado el anlisis de requisitos se pueden extraer una serie de conclusiones de este importante proceso dentro de la ingeniera del software. Por un lado, se hace un balance muy positivo del trabajo realizado. El estudio que se ha llevado a cabo marcar de una forma ms clara y estructurada las pautas a seguir en el siguiente paso: el diseo del sistema. Como siempre ocurre al cometer errores, lo importante de ellos es aprender y ganar en experiencia en ocasiones similares que se puedan presentar en el futuro. En mi caso, debo reconocer que a lo largo del proceso, debido a mi inexperiencia, he cometido muchsimos errores de todo tipo como hemos visto en el anterior punto. Gracias a ello, creo que, aunque an me quede mucho trabajo por recorrer, este anlisis, junto a lo aprendido durante mis cinco aos de carrera, ha afianzado mis capacidades para el anlisis de sistemas software. El siguiente paso en la construccin del juego ser realizar el diseo del sistema.
175
176
WarBattle
CAPTULO 4
Diseo
177
1.
Introduccin
En este tema se va a abordar el proceso de diseo del sistema incluido en el proceso de ingeniera del software. Antes de empezar conviene recordar en qu consiste este proceso. El diseo de un sistema realiza una descomposicin y organizacin del mismo en elementos que puedan elaborarse por separado, aprovechando el principio fundamental de la informtica divide y vencers. Como resultado se consigue una estructura relacional global del sistema y la especificacin de lo que debe hacer cada una de sus partes, as como la manera en que se combinan unas con otras. Los pasos habituales en este proceso desde la aparicin de la metodologa UML 2.0 suelen ser: Diseo de la arquitectura lgica. Diseo de la base de datos. Realizacin de diagramas de clases. Diseo funcional del sistema: o Diagramas de secuencia. o Diagramas de actividad. o Diagramas de flujo de trabajo.
Debido al tamao del sistema y que esta documentacin tiene un carcter acadmico, se realizar slo la documentacin de parte de estos procesos, ya que de realizarla sobre todos ellos, el documento alcanzara un nmero de pginas muy superior a lo recomendable. Los procesos que se van a documentar y que, por tanto, van a suponer el caso de estudio en este tema son los siguientes: Diseo de la arquitectura lgica. Se definir la estructura del sistema a un nivel alto.
Diseo de la base de datos. Se explicar el modelo seguido para construir la base de datos del sistema. Diagramas de clase. Slo de aquellas clases cuyo contenido no sea obvio y que tengan una importancia fundamental en el sistema. Explicacin de los algoritmos ms importantes. Sustituir en parte al proceso de diseo funcional del sistema, simplificndolo bastante y limitndose a realizar unas definiciones y descripciones breves del funcionamiento de stos. Exposicin de los problemas encontrados y los errores cometidos.
178
WarBattle
Los diagramas de secuencia no se realizarn por su elevado volumen. De todas maneras, una vez realizado el diseo de la arquitectura y de las clases y mdulos del sistema se podrn intuir stos de los diagramas de caso de uso que se realizaron en el anlisis de requisitos.
179
2.
Arquitectura lgica
Este captulo recoge el proceso de diseo de la estructura global del sistema. Este proceso es fundamental en el diseo, pues, debido al tamao del sistema, es necesario utilizar una estrategia de divisin del problema en subproblemas para facilitar el trabajo. Otro de los motivos e igual de importante es la idea de especializacin de mdulos. Para que el sistema sea modulable es necesario definir una serie de funciones de alto nivel de las que deber componerse el sistema. Para ello, la arquitectura del sistema se basar en el patrn MVC (modelo-vistacontrolador). Este patrn es un estndar en las arquitecturas web debido a sus caractersticas. Divide el sistema en tres grandes mdulos, cada uno encargado de una tarea especfica. Las funciones de las que se encargan cada uno son: Modelo: define los elementos a los que el usuario tendr acceso. Controlador: gestiona las peticiones del usuario, realiza los clculos deseados y prepara los datos de respuesta. Vista: recibe los datos de respuesta y prepara la salida que espera el usuario a su peticin. Las relaciones entre estos mdulos son:
180
WarBattle
En base a este patrn de arquitectura, se ha elaborado una solucin parecida para abordar el diseo del sistema. La arquitectura lgica estar compuesta por cinco grandes mdulos, que son: Dominio. Controlador. Vista. Motor. DAO.
181
2.1
Dominio
Este mdulo se encarga de la representacin lgica de todos los elementos que conforman el universo fsico de Warbattle. En l se recogern tanto las clases que recogen la informacin de las tablas de la base de datos, como aqullas cuyo contenido no se refleje de manera estable en el sistema pero que representa conceptos del universo Warbattle. Este mdulo estar compuesto por dos grandes paquetes de informacin y trabajo en funcin del contenido que representan. El contenido de los elementos puede ser esttico o dinmico. Por tanto, los dos paquetes que conformarn este mdulo son: Grupo esttico: contendr la representacin de los contenidos de carcter esttico del sistema. Esos contenidos son los que guardan informacin sobre las caractersticas de los elementos del juego, tales como informacin sobre tipos de edificios, de unidades militares, etc. Grupo dinmico: sus contenidos correspondern con informacin del jugador y de los elementos que posee. La informacin en este paquete estar continuamente sujeta a cambios y modificaciones. La siguiente figura representa la estructura del mdulo Dominio.
182
WarBattle
2.2
Controlador
Este mdulo es el encargado de realizar el control del sistema en funcin de las peticiones de los jugadores. Las clases de este mdulo tienen la funcin de recibir las peticiones de los jugadores. Una vez recibidas deben escoger quin ser el encargado de realizar los clculos que requieran la operacin pedida y extraer la informacin necesaria. Una vez recibida la respuesta del encargado de los clculos debe ser capaz de escoger cual ser el paquete que prepare la salida como respuesta a la peticin del jugador. Debido a la naturaleza del mdulo, en l se encontrarn los Servlets del sistema, que tienen precisamente las caractersticas necesarias para realizar este tipo de labor. A su vez, este mdulo estar compuesto por dos paquetes de trabajo, cada uno con una funcin similar pero diferente al mismo tiempo. Esta divisin se realiza debido a que el juego puede manejar dos tipos de peticiones, sncronas y asncronas. As pues, los paquetes de trabajo en que est dividido el mdulo Controlador son: Control sncrono: contendr los Servlets encargados de las peticiones sncronas de los jugadores. Este paquete una vez realizados los clculos necesarios para generar la vista ceder el control al mdulo Vista que es el contiene los conocimientos necesarios para generar contenido HTML sncrono. Control asncrono: contendr por su parte los Servlets encargados de las peticiones asncronas de los jugadores. Para ello, el sistema utilizar la tecnologa AJAX, por lo que adems de las funciones descritas para el mdulo al completo, tambin se encargar de generar el contenido HTML de respuesta. El contenido del mdulo Controlador junto a las relaciones con el mdulo Vista son las siguientes:
183
184
WarBattle
2.3
Vista
Este mdulo se encarga de realizar el interfaz de juego con el que se encontrar el jugador en respuesta a su peticin. En l estarn todas las clases relacionadas con la preparacin de las diferentes pginas Web que forman todo el interfaz de jugabilidad. Debido a la comodidad y escalabilidad que proporciona la divisin en paquetes de trabajo especficos, este mdulo estar formado por diversos paquetes de trabajo, cada uno de ellos encargado de una tecnologa Web diferente, tal y como recomiendan los estndares. Los paquetes de trabajo son: Javascript: incluye los ficheros con las funciones javascript usadas en el interfaz de usuario. CSS: incluye los documentos CSS 2.1 con la informacin sobre el aspecto del interfaz de usuario. Image: alberga las imgenes que sern mostradas en el interfaz de usuario. Web: formado por los documentos .jsp y .html que incluirn la estructura y la informacin del interfaz de usuario. La siguiente figura refleja los contenidos expuestos en esta seccin:
185
2.4
Motor
Como su propio nombre indica, su contenido forma el motor del juego.
Este mdulo es el encargado de realizar que las reglas del universo Warbattle funcionen.
Entre sus funciones se pueden destacar las siguientes: Proporciona un interfaz de funciones que sern usadas por el mdulo controlador para generar las respuestas sobre las peticiones de los jugadores. Realiza el control sobre todos los elementos crticos del sistema, as como de la gestin de la concurrencia, de la gestin del tiempo, etc. Define una serie de herramientas de uso global. As pues, entre otros elementos, este mdulo contendr los Beans de sesin, tal y como define la tecnologa JEE 5 utilizada en el servidor de aplicaciones. El mdulo Motor est compuesto por cuatro paquetes de trabajo, cada uno con una misin especfica y completamente diferente al resto. Estos paquetes de trabajo son: Fachada: este paquete rene los Session Beans del servidor de aplicaciones. Aporta una serie de clases que proporcionan un conjunto de funciones de acceso al sistema desde el mdulo Controlador. Este paquete de trabajo, adems, acta de intermediario entre los mdulos Controlador y DAO (en la siguiente seccin se explicar el contenido de este mdulo). Actualizador: se encarga de la correcta gestin de la concurrencia de eventos y del tiempo. Realiza las funciones de actualizacin necesarias por la llegada de eventos externos al sistema. De esta forma no se producirn problemas de incoherencia en los datos. Herramientas: este paquete aporta un interfaz de funciones que aportan herramientas de trabajo utilizadas por todos los mdulos a excepcin del mdulo Vista. Algunas de las funciones que aporta este interfaz son: Parser y formateo de cadenas de caracteres. Tratamiento de fechas. Manejo de ficheros y contenidos XML.
Misiones: su funcin es realizar los clculos necesarios para que los jugadores puedan llevar a cabo este tipo de funciones.
186
WarBattle
187
2.5
DAO
Este mdulo rene las clases encargadas de los accesos, tanto de lectura como de escritura, sobre la base de datos. Si hablsemos de una arquitectura distribuida, este mdulo correspondera con las funciones alojadas en el servidor de base de datos. Como se ha visto anteriormente al definir el mdulo Dominio, existen dos tipos de contenidos estables, de carcter esttico y de carcter dinmico. Debido a ello, este mdulo se ha decidido dividir en dos grandes paquetes de trabajo encargados cada uno de gestionar cada tipo de informacin. As pues, los paquetes de trabajo que forman este mdulo son: Gestor esttico: se encarga de los accesos a la base de datos de la informacin de carcter esttico, tales como las caractersticas de los tipos de edificios, unidades, etc. Gestor dinmico: este paquete de trabajo se encarga de la consistencia de los datos relacionados con la informacin de carcter dinmico de los jugadores, cuyo contenido cambia constantemente y difiere de unos jugadores a otros. La estructura de este mdulo se resume en el siguiente diagrama:
188
WarBattle
3.
En este captulo se va a realizar el estudio y diseo de la base de datos que compondr el sistema Warbattle. Este proceso consistir en la definicin, creacin y diseo de las tablas de la base de datos, as como de las relaciones entre ellas. En los posteriores diagramas de la base de datos se dibujarn rectas de unin entre tablas que expresarn la relacin entre ellas de multiplicidad. Por otro lado, en cada tabla se incluir la siguiente informacin: Clave primaria. Atributos en caso de que los tenga. Claves forneas en caso de que existan.
Una vez visto el formato interno de las tablas que sern definidas a lo largo del captulo, es necesario indicar los tipos de tablas que se encontrarn. Para clasificar los tipos de tablas del sistema Warbattle es necesario realizar dos mtodos diferentes. El primero clasifica las tablas en funcin del trabajo que desempean en la base de datos. El segundo lo hace en relacin a su contenido respecto al juego en s. La primera clasificacin genera dos tipos de tablas, que son: Tablas de informacin del juego: estas tablas contienen informacin sobre el juego, con datos relativos a los jugadores y sus elementos o a la informacin sobre las reglas y caractersticas de ste. Son tablas con una serie de atributos que definen las caractersticas del elemento representado por la tabla. Por lo general, al realizar el diseo se pondr un cuidado especial en utilizar nombres significativos y representativos con los conceptos del juego que almacenan. Tablas de relacin entre tablas: estas tablas sirven para relacionar tablas entre s. El motivo de la existencia de este tipo de tablas es la facilitacin de acceso a datos entre tablas difcilmente relacionadas entre ellas.
La segunda clasificacin genera tambin dos tipos de tabla, a saber: Tablas de informacin esttica: este tipo de tabla contiene la informacin sobre las reglas y caractersticas del juego Warbattle.
189
El contenido de estas tablas ser de carcter esttico y de lectura, es decir, la informacin que contiene no se ver alterada en ningn momento y ser consultada por el sistema para hacer que el juego funcione. Por otro lado, estas tablas estarn relacionadas con las de contenido dinmico. Tablas de informacin dinmica: estas tablas contendrn la informacin sobre los jugadores y los elementos que poseen. Su contenido estar constantemente en transformacin, por lo que su contenido ser de carcter dinmico y de lectura y escritura. Este tipo de tablas estarn tambin relacionadas con las de contenido esttico. Desde el punto de vista de los tipos de datos de las tablas, todas ellas utilizarn como clave primaria el tipo Bigint(20), que ser transformada a Long en Java. Por ltimo, antes de comenzar el diseo de las tablas, debido al tamao de la base de datos Warbattle, se dividirn en grupos de contenido relacionado entre s. Los grupos de diseo sern: Estticos: o Tipos de elementos. o Costes y produccin. Dinmicos: o Elementos de los usuarios. o Elementos de las aldeas. o Elementos de los productores. o Elementos de los edificios. o Elementos de las ciencias. o Elementos de las habilidades militares. o Elementos de las unidades militares. o Elementos de las unidades defensivas. o Elementos de las misiones. o Elementos del mapa.
190
WarBattle
3.1
Tipos de elementos
3.2
Costes y produccin
191
3.3
3.4
192
WarBattle
3.5
3.6
193
3.7
3.8
194
WarBattle
3.9
3.10
195
4.
Algoritmos significativos
Este captulo recoge la descripcin de aquellos algoritmos que se han considerado de mayor importancia y dificultad. Su contenido tiene una complejidad mayor que el resto y no son tan obvios. Para describirlos se usar la siguiente metodologa: Descripcin breve del algoritmo con lenguaje natural. Se explicar en qu consiste y en qu contexto se utiliza. Uso de diagramas de flujo para representar el funcionamiento interno de los algoritmos. Uso de diagramas de secuencia que reflejen la relacin entre clases participantes en el algoritmo. Los algoritmos que van a ser descritos en este captulo son: 1. Alta usuarios. 2. Actualizar. 3. Construccin de unidades militares. 4. Alta misiones.
196
WarBattle
4.1
Alta usuario
Esta funcin realiza el ingreso de un nuevo jugador en el sistema. Para que se lleve a cabo esta misin, los datos introducidos durante el registro deben ser vlidos. Una vez aceptados los datos de entrada, se procede a la ejecucin del algoritmo de alta de usuarios, objeto de estudio en esta seccin. Al finalizar el proceso, se dar acceso al jugador al sistema. El diagrama de flujo que representa las funciones de las que se compone el algoritmo es:
INICIO TRANSACCION
ALTA USUARIO
ALTA ALDEA
FIN TRANSACCION
197
ALTA RECURSOS
ALTA EDIFICIOS
ALTA PRODUCTORES
198
WarBattle
El diagrama de secuencia que se muestra a continuacin indica las relaciones existentes entre las clases participantes:
GestorTransaccin
GestorCiencias altaCienciasBloqueadas(usuario)
GestorHabilidades altaHabilidadesBloqueadas(usuario)
GestorRecursos altaRecursos(aldea)
GestorEdificios altaEdificios(aldea)
GestorProductores altaProductores(aldea)
GestorUnidades altaUnidadesBloqueadas(aldea)
GestorDefensas altaDefensasBloqueadas(aldea)
FinTransaccion(conexion)
199
4.2
Actualizar
Este proceso es el ms complejo y, seguramente, importante de todos los que componen el sistema. Realiza todos los clculos sobre los sucesos ocurridos desde el ltimo evento que hizo participar a una aldea (externo o del propio jugador) hasta el ltimo, motivo por el que se activa el proceso. Puesto que todos los elementos del jugador pueden estar sujetos a cambios es necesario realizar un barrido acerca de lo sucedido entre los dos eventos en todos ellos. El algoritmo de actualizacin se puede representar por el diagrama de flujo de la siguiente pgina:
200
WarBattle
INICIO TRANSICION
ACTUALIZACION EXTERNA
ACTUALIZACION EDIFICIOS
ACTUALIZACION CIENCIAS
ACTUALIZACION HABILIDADES
ACTUALIZACION UNIDADES
ACTUALIZACION DEFENSAS
ACTUALIZACION RECURSOS
FIN TRANSACCION
201
A continuacin se realizarn los diagramas de flujo que explican el funcionamiento de cada proceso hijo: Actualizacin externa
si
Hay misiones?
no
Hora actual < hora destino?
si
no
ACTUALIZACION HASTA HORA DESTINO
no
Ms misiones?
si
202
WarBattle
no
Haba?
si
COMPROBAR FINALIZACION
no
Finalizada?
si
colonizar
Tipo
otro si
Libre? ACTUALIZAR DESTINO
no
Ms misiones?
si
no
203
no
Ha vuelto?
si
ACTUALIZAR RECURSOS
ACTUALIZAR TROPAS
BORRAR MISION
204
WarBattle
Actualizacin edificios
no
Hay?
si
COMPROBACION FINALIZACION
no
Finalizado?
si
ACTUALIZA EDIFICIO
COMPROBACION DE DESBLOQUEOS
no
Desbloquea?
si
ELIMINA BLOQUEO
no
Elemento desbloqueado?
si
ALTA ELEMENTO BLOQUEADO
205
Actualizacin ciencias
no
Hay?
si si
COMPROBAR FINALIZACION Hay? COMPROBAR FINALIZACION
no si
Finalizado? AUMENTAR NIVEL
no
Finalizado?
no
COMPROBACION DESBLOQUEOS
si
AUMENTAR NIVEL
no
Desbloquea?
COMPROBACION DESBLOQUEOS
si no
ALTA CIENCIA Desbloquea?
si
BAJA BLOQUEO CIENCIA ALTA ELEMENTO BLOQUEADO
BAJA BLOQUEO
Actualizacin habilidades
206
WarBattle
no
Hay?
si si
COMPROBAR FINALIZACION Hay? COMPROBAR FINALIZACION
no si
Finalizado? AUMENTAR NIVEL
no
Finalizado?
no
COMPROBACION DESBLOQUEOS
si
AUMENTAR NIVEL
no
Desbloquea?
COMPROBACION DESBLOQUEOS
si no
ALTA HABILIDAD Desbloquea?
si
BAJA BLOQUEO HABILIDAD ALTA ELEMENTO BLOQUEADO
BAJA BLOQUEO
207
Actualizacin unidades
no
Pendientes?
si
COMPROBACION FINALIZACION
ALTA UNIDADES
ASIGNACION EJERCITO
Actualizacin defensas
no
Pendientes?
si
COMPROBACION FINALIZACION
ALTA DEFENSAS
ASIGNACION ALDEA
208
WarBattle
Actualizacin recursos
si
Hay?
no
COMPROBACION FINALIZACION
no
si
Finalizado?
ACTUALIZACION UNIDADES
209
El diagrama de secuencia que se muestra a continuacin indica las relaciones existentes entre las clases participantes
ServicioActualizacion iniciaTransaccion() conexion GestorTransaccion
ActualizadorMisiones actualizaMisionesIda(aldea)
ActualizadorMisiones actualizaMisionesIda(aldea)
actualizaMisionesVuelta(aldea)
ActualizadorEdificios actualizaEdificios(aldea)
ActualizadorCiencias actualizaCiencias(usuario)
ActualizadorHabilidades actualizaHabilidades(usuario)
ActualizadorUnidades actualizaUnidades(aldea)
ActualizadorDefensas actualizaDefensas(aldea)
ActualizadorRecursos actualizaRecursos(aldea)
finTransaccion(conexion)
210
WarBattle
4.3
Este proceso se encarga de dar de alta la construccin de las unidades militares que el jugador solicita. El siguiente diagrama muestra el funcionamiento:
LECTURA RECURSOS
Ms unidades?
si
no
ACTUALIZAR RECURSOS
Este algoritmo se lleva a cabo en la clase GestorUnidades del mdulo DAO, por eso no se mostrar el diagrama de secuencia pertinente.
211
4.4
Alta misiones
Este proceso lleva a cabo, como su nombre indica, el alta de una nueva misin como respuesta a la solicitud del jugador. El siguiente diagrama muestra el funcionamiento de ste:
si
no
AJUSTE UNIDADES
si
no
AJUSTE RECURSOS Mision == colonizar || espionaje?
si
no no
Est?
si
ACTUALIZAR UNIDADES Y RECURSOS EN ALDEA COMPROBAR OTRAS POSIBLES RESTRICCIONES
Puede?
si no
ALTA MISION
Este algoritmo lo realiza al completo la clase GestorMisiones del mdulo DAO, por lo que no es necesario mostrar el diagrama de secuencia pertinente.
212
WarBattle
5.
Problemas y errores
En este captulo se van a describir los problemas que surgieron durante la fase de diseo, as como los errores cometidos con el fin de que queden documentados para evitarlos en posteriores trabajos. Los problemas ms importantes y significativos que se encontraron en esta fase del proyecto fueron: Inexperiencia en diseo de sistemas de gran volumen. Debido a ello, fueron mltiples las iteraciones realizadas hasta alcanzar un modelo estable. Mdulos crticos. El hecho de que el sistema albergue gran cantidad de procesos que accedan a recursos compartidos por un nmero tan elevado de usuarios provoc que durante la etapa de diseo se obviarn determinadas relaciones que ms tarde se dio buena cuenta de que eran imprescindibles. Necesidad de realizar un sistema fcilmente escalable. Debido a que a mitad del anlisis de requisitos se comenzaron esta tarea y la de programacin en paralelo para ir realizando pruebas, era indispensable que durante el diseo se tuviese en cuenta esta necesidad, ya que a medida que del anlisis surgan elementos deban poderse acoplar fcilmente al sistema diseado hasta ese momento. Problemas con el interfaz de acceso a datos en la programacin. Este fue, quizs, el mayor problema que apareci durante la fase de diseo. En un primer momento se plante para realizar los accesos a la base de datos la tecnologa de reciente aparicin JPA de Java. Esta tecnologa aportaba al programador y al diseador la comodidad de no tener que encargarse de ninguna clase de acceso a datos especfica, pues en gran medida esta tecnologa encapsula el proceso. Lo que en principio pareci una facilidad enorme al avanzar en la fase de programacin lleg un momento en el que la tecnologa aportaba ms problemas que soluciones. El principal fue que el control sobre las escrituras sobre la base de datos recaa completamente sobre la tecnologa, eligiendo su propio gestor los instantes en que deban hacerse las actualizaciones. Como consecuencia de ello, los datos acostumbraban a quedar en estados incoherentes e inestables, con los consecuentes problemas que este suceso generaba.
Como solucin se opt por utilizar una tecnologa que implicaba ms trabajo a la programacin pero que aportaba control absoluto sobre las actualizaciones de la base de datos. Esta tecnologa fue el api de la JDK 1.6 JDBC para acceso a base de datos.
213
Por tanto, a la arquitectura le faltaba un mdulo que se encargase de la base de datos. El mdulo que se eligi fue, como se ha descrito anteriormente, el mdulo DAO. Por ltimo, no slo fue necesario aadir un nuevo mdulo, sino que el diseo anterior qued en gran parte obsoleto. Fue necesario un proceso de re-anlisis hasta alcanzar la solucin que ha sido objeto de estudio a lo largo de este captulo.
214
WarBattle
6.
Conclusiones
Al trmino de la fase de diseo del sistema Warbattle se pueden extraer las siguientes conclusiones: Necesidad de realizacin de un buen diseo como parte fundamental en el desarrollo de software de grandes sistemas. El motivo es la limpieza y facilidad con que el trabajo en la siguiente fase, la de programacin, se va a llevar a cabo. Alto grado de aprendizaje y experiencia. Durante esta fase he tenido que enfrentarme a diversos retos completamente nuevos para m que me han aportado una fluida habilidad para percibir con mayor facilidad conceptos fundamentales a la hora de disear y de poder plasmarlos en los diagramas que mejor representen cada caso. Satisfaccin personal por haber superado las dificultades encontradas y, como mencion en el anterior epgrafe, por haber aprendido mucho del proceso de ingeniera del software. A continuacin deberan aparecer la documentacin relativa al proceso de programacin y, ms adelante, al de pruebas e implantacin. Debido al tamao que supondra el documento total, no se describirn estos procesos.
215
216
WarBattle
CAPTULO 5
Trabajo futuro
217
En este captulo se tratar los trabajos futuros que se realizarn sobre el sistema una vez montado. Una vez creado el producto, el siguiente paso ser su comercializacin. Puesto que Warbattle es un juego destinado a Internet su fuente de ingresos ser bsicamente dos: Cesin de espacio en la pgina para alojar banners de publicidad de otras empresas. Oferta de ventajas o comodidades en el juego que el jugador paga por ellas por un determinado tiempo.
A la fecha de terminacin del proyecto no se han considerado ninguna de las dos posibilidades, por lo que en ambos casos requerira incluir funcionalidades nuevas al sistema. Como ya se insisti en la fase de diseo, un requisito fundamental era conseguir que el sistema fuese escalable, entre otras cosas porque ya entonces se previ que en un futuro se pudiese comercializar, lo que implicara aadir nuevos mdulos. Por otro lado, para comercializar el producto son necesarios otros requisitos. Estos son: Contratacin de un dominio: para que el acceso sea pblico el juego debe tener su propio dominio, lo que implica el alquiler o compra de una direccin IP y del nombre que se le va a asignar a la pgina. Alquiler o compra de servidores donde alojar el sistema. Implantacin de medidas de seguridad. Realizacin de un plan de mantenimiento y de backup en caso de fallo.
Todos estos puntos sern estudiados en un trabajo futuro realizando un plan de viabilidad en el que se estimarn los ingresos que pueda producir el juego, as como los gastos derivados de l. En este plan se trazarn dos rutas alternativas que consistir cada una en lo siguiente: 1 Se estimarn los gastos derivados de la contratacin del hosting que aloje el juego delegando en un tercero el mantenimiento del sistema.
218
WarBattle
2 En la otra opcin se contemplar la adquisicin de los equipos, as como la contratacin de lneas telefnicas y la creacin de una empresa. Por ltimo, para que el juego sea comercial, ser necesario utilizar imgenes propias, ya que hasta el momento se han utilizado dos tipos de imgenes, unas con copyright ya que han sido extradas de videojuegos actuales y otras que pertenecen a juegos del gnero abandonware, esto es, juegos que hace ms de 10 aos que no se comercializan y que han perdido los derechos de explotacin, normalmente porque las empresas que los crearon han desaparecido.
219
220
WarBattle
CAPTULO 6
Evaluacin econmica
221
En este captulo se realizar una estimacin econmica del coste en el que se hubiese incurrido en la realizacin del proyecto en caso de que hubiese sido contratado por una empresa externa. En estos clculos no se har referencia alguna a los derivados de su posterior explotacin, tales como hosting, compra de servidores, mantenimiento, etc. Es decir, en este captulo slo se estimarn los costes procedentes de las horas hombres empleadas. La siguiente tabla muestra los participantes en el desarrollo del juego, as como el nmero de cada uno de ellos, las horas empleadas, el coste por hora por rol y el coste total del mismo. ROL Coordinador Director Jefe de proyecto Analista Diseador Programador Diseador grfico N Personas 1 1 1 1 1 2 1 Horas 40 80 80 100 150 100 50 Coste hora/hombre 100 80 60 50 40 30 15 Coste total 4.000 6.400 4.800 5.000 6.000 6.000 750 700 horas 32.950
222
WarBattle
CAPTULO 7
Bibliografa
223
BIBLIOGRAFIA DE CONSULTA
[JBA01]
Jess Barranco de Areba: Metodologa del anlisis estructurado de sistemas. ISBN: 84-8468-043-6.
[EG02] [CHCG03]
Erich Gamma: Patrones de diseo. ISBN: 84-7829-059-1. Cay S. Horstmann, Gary Cornell: Core Java 2: Volumen 1 Fundamentos.
[CHCG04]
[JLJLE05]
Juan Benavides Abajo, Luis Martnez Fuentes, Juan Mara Olaizola Bartolom, Luis Reina Juli, Enrique Riverio Cornelio: Introduccin al SQL para usuarios y programadores.
[JCE06]
Juan Carlos Esquivel Daz: Apuntes de la asignatura de Ingeniera del Software II.
224
WarBattle
ANEXO A
Manual de usuario
225
Este anexo se ha elaborado para explicar las opciones que el interfaz del juego proporciona.
La figura A.1 muestra el interfaz del videojuego en el que se pueden apreciar dos grupos de opciones: uno en el lado izquierdo sobre un recuadro azul y el otro en la parte superior. Por otro lado, debajo de las opciones superiores se encuentran los recursos disponibles en la aldea, en el siguiente orden de aparicin de izquierda a derecha: soldados, trigo, madera, piedra, hierro y especia. A su izquierda est la hora del sistema. En la esquina superior izquierda est el panel de castillos, donde se puede elegir cambiar la vista otro castillo del jugador. Por ltimo, en el centro de la pantalla se muestra el tablero de juego. A continuacin se explicarn cada una de las opciones integradas.
226
WarBattle
Inicio
Esta opcin muestra la informacin general del castillo en el que el jugador est realizando sus operaciones.
Como se puede observar en la figura A.2 el tablero est dividido en dos partes: - A la izquierda se muestra la imagen del castillo seleccionado. - A la derecha hay un recuadro que representa los tiempos de construccin restantes en el castillo dividido en cuatro partes: o Productor en construccin. o Edificio en construccin. o Ciencia en investigacin. o Habilidad en investigacin.
227
Edificios
Esta opcin muestra los edificios que tenga construidos el jugador en el castillo seleccionado.
En la parte izquierda del tablero aparecen los edificios construidos en el castillo, mientras que en la parte izquierda hay un panel que mostrar la informacin del edificio pulsado, as como los accesos al mismo.
228
WarBattle
Tropas
Esta opcin muestra las unidades disponibles en el castillo que pueden ser utilizadas para llevar a cabo misiones.
En la parte izquierda del tablero aparecen las unidades militares disponibles en el castillo. Por otro lado, en la parte derecha se muestra un formulario con las opciones disponibles para llevar a cabo una misin.
229
Defensa
Esta opcin muestra las unidades defensivas del castillo seleccionado.
Como se puede observar en la figura A.5 en la parte izquierda del tablero se encuentran las unidades defensivas que tiene el castillo y en la derecha se muestra un panel que, al pulsar sobre cualquier tipo de unidad, recoge la informacin de ella.
230
WarBattle
Produccin
Esta opcin muestra los productores que tiene un castillo, as como el nivel al que se encuentra y todas las opciones derivadas de ella.
En el panel de la izquierda se muestran las casillas con los productores del castillo y en el de la derecha la informacin relativa a cada uno de ellos que aparecer al pulsar sobre cualquier productor.
231
Ciencia
Esta opcin muestra las ciencias que tiene un jugador as como el nivel al que est cada una de ellas.
En la parte izquierda aparecen las ciencias ya investigadas y a la derecha, al pulsar sobre cualquiera de ellas, la informacin de stas.
232
WarBattle
Habilidad
Esta opcin muestra las habilidades militares que tiene un jugador as como el nivel al que est cada una de ellas.
En la parte izquierda aparecen las habilidades ya investigadas y a la derecha, al pulsar sobre cualquiera de ellas, la informacin de stas.
233
Misiones
Esta opcin muestra las misiones que el jugador tiene activas en el momento, as como la informacin de ellas.
En la parte izquierda aparecen las misiones en curso y a la derecha, al pulsar sobre el icono + de cualquiera de ellas, la informacin de stas.
234
WarBattle
Mapa
Esta opcin muestra el mapa y permite ver diferentes regiones del mismo.
En la parte izquierda aparece el sector seleccionado (el del castillo por defecto) y a la derecha la informacin de la casilla seleccionada.
235
Mensajes
Esta opcin muestra los mensajes que tiene un jugador.
En la parte izquierda aparecen los mensajes del jugador y a la derecha, si procede, la informacin ampliada de los mismos.
236