Arquitectura de Software PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 12

Portal de revistas: http://revistas.utp.ac.

pa

Arquitectura de software para el desarrollo de videojuegos sobre el motor de


juego Unity 3D
Software architecture for the development of videogames on the game engine Unity 3D
Andy Hernández Paez 1*, Javier Alejandro Domínguez Falcón 2, Alejandro Andrés Pi Cruz3
1,2,3 Centro
de Entornos Interactivos 3D, Vertex, Universidad de las Ciencias Informáticas. Carretera a San Antonio de los Baños, Km 2½,
Torrens, La Lisa, La Habana, Cuba
*Autor de correspondencia: [email protected]

RESUMEN– En los últimos años la arquitectura de software se ha consolidado como una disciplina que intenta contrarrestar los efectos
negativos que pueden surgir durante el desarrollo de un producto informático, ocupando un rol significativo en la estrategia de negocio de una
organización que basa sus operaciones en el software, volviéndose necesaria para todo tipo de desarrollo, incluyendo los videojuegos. La presente
investigación tiene como objetivo desarrollar una arquitectura de software para videojuegos desarrollados sobre el motor de juego Unity 3D, que
permita organizar y estructurar sus características funcionales básicas. A partir del estudio de arquitecturas usadas en videojuegos se agruparon
las clases candidatas de la solución propuesta, identificándose los paquetes principales, dependencias entre ellos, patrones de diseño y buenas
prácticas empleadas, concretando una arquitectura de software basada en la integración de los tipos de arquitectura: en capas y basada en
componentes. Se desarrolla un prototipo funcional de un videojuego del género plataformas, empleando para describirlo elementos del diseño de
videojuegos, especificación de mecanismos y las vistas propuestas por Robert Nord: conceptual, de módulos, de código y de implementación. La
arquitectura propuesta fue validada a través de las técnicas de evaluación basadas en prototipos, en escenarios y en conjunto con la aplicación del
método de Análisis de Acuerdos de Arquitectura de Software. Con la aplicación de esta técnica se identificaron los riesgos presentes en la
arquitectura propuesta, teniendo en cuenta el comportamiento de atributos de calidad sobre la solución, según el modelo ISO/IEC 25010.

Palabras claves– Arquitectura de software, ISO/IEC 25010, Unity 3D, videojuegos.


ABSTRACT– In recent years, the software architecture has consolidated as a discipline that tries to counteract the negative effects that may
arise during the development of a computer product, playing a significant role in the business strategy of an organization that bases its operations
on software, becoming necessary for all kinds of development, including video games. The present research aims to develop a software
architecture for video games developed on the game engine Unity 3D, which allows organizing and structuring its basic functional characteristics.
Based on the study of architectures used in video games, the candidate classes of the proposed solution were grouped, identifying the main
packages, dependencies among them, design patterns and good practices used, specifying a software architecture based on the integration of
architecture types: layered and component based. It develops a functional prototype of a video game of the genre platforms, using to describe it
elements of video game design, specification of mechanisms and the views proposed by Robert Nord: conceptual, modules, code and
implementation. The proposed architecture was validated through evaluation techniques based on prototypes, in scenarios and in conjunction with
the application of the Software Architecture Agreement Analysis method. The application of this technique identified the risks present in the
proposed architecture, taking into account the behavior of quality attributes on the solution, according to the ISO / IEC 25010 model.

Keywords– Software architecture, ISO / IEC 25010, Unity 3D, videogames.


1. Introducción dispositivo de entrada, se comunican con un sistema que
El uso de las Tecnologías de Información y la posea imágenes de video. La plataforma en la que se
Comunicación (TIC) en los últimos años ha permitido desarrolle (o sistema) puede ser una computadora,
extender la informática a muchos sectores, ocupando un consola, o incluso un celular. La interactividad usuario–
lugar creciente en la vida humana y en el sistema de la sistema está dada por la capacidad del equipo de trabajo
sociedad. Uno de los procesos que mayor impacto ha de planificar un sistema en el que el usuario se sienta
tenido en la sociedad es el de creación de videojuegos, cómodo y controle la situación [1].
que se vuelve más complejo con el tiempo producto del Estos productos de software han evolucionado con
aumento de los requerimientos de los usuarios. increíble rapidez en los últimos años, convirtiéndose en
Los videojuegos son una vía de entretenimiento una industria que cuenta con equipos de trabajo
interactivo en el que uno o varios usuarios, mediante un multidisciplinarios, al punto que para desarrollar un
Citación: A. Hernández, J. Domínguez y A. Cruz, “Arquitectura de software para el desarrollo de videojuegos sobre el motor de juego Unity 3D”, Revista de I+D
Tecnológico, vol. 14, n.° 1, pp. 54-64, Jun. 2018.
Tipo de artículo: Original. Recibido: 22 de febrero de 2018. Recibido con correcciones: 26 de febrero de 2018. Aceptado: 11 de abril de 2018.
Copyright: 2018 A. Hernández, J. Domínguez y A. Cruz. This is an open access article under the CC BY-NC-SA 4.0 license
(https://creativecommons.org/licenses/by-nc-sa/4.0/).
Andy Hernández Paez | Javier Alejandro Domínguez Falcón | Alejandro Andrés Pi Cruz

videojuego es necesario, desde el concepto inicial hasta usuarios, con un alto valor agregado, resultado de un
su versión final, el conocimiento de varias disciplinas y ciclo completo de I+D+I (Investigación-Desarrollo e
habilidades por parte del equipo de trabajo, tales como: Innovación) [7].
programación, arquitectura de software, diseño y Este centro ha desarrollado varios productos
marketing. El desarrollo de productos de este tipo pasa utilizando el motor de juego Unity 3D, los cuales han
por la creatividad y tiene en cuenta otros factores, como sido liberados satisfactoriamente desde la Dirección de
la estética o la temática en el instante de definir ciertos Calidad de la Universidad, algunos son: Súper Claria,
géneros [2]. Aventuras en la Manigua, Especies invasoras, La
Actualmente, se pueden encontrar en los mercados Neurona, Villa Tesoro y Caos Numérico. Después de la
diferentes opciones de videojuegos, tales como: basados entrega de los productos antes mencionados se ha
en licencias libres como comerciales que usan diferentes continuado con el desarrollo de nuevos videojuegos,
motores, los que se encargan de renderizado para los pero se ha detectado, mediante consultas a expertos en
gráficos 2D y 3D, motor físico o detector de colisiones, el desarrollo, algunas limitaciones. La inexistencia de
sonidos, scripting, animación, inteligencia artificial, una estructura lógica basada en paquetes de la
redes, streaming, administración de memoria y un implementación dificulta el entendimiento de esta por
escenario gráfico [3]. parte del equipo de desarrollo y de los nuevos
Entre los motores de juego más utilizados se especialistas. Además, la poca representación y
encuentra Unity 3D [4], que es empleado para realizar documentación que describe el funcionamiento de un
proyectos tanto 2D como 3D, dado que posee un videojuego que se desarrolle sobre el motor de juego
entorno de desarrollo sencillo de manejar para los Unity 3D, obstaculiza el proceso de su aprendizaje para
principiantes y suficientemente potente para los los desarrolladores. Por otra parte, no se tiene referencia
expertos, permitiendo crear fácilmente videojuegos y sobre el código fuente que se necesita para el desarrollo
aplicaciones para diversas plataformas. de nuevos videojuegos, lo que provoca desorganización
El diseño y desarrollo de un videojuego es en la implementación y diversidad en el modo que se
demasiado complejo para que pueda ser abordado por implementa en los proyectos de este tipo. El análisis
completo sin utilizar una estructura lógica que describa anterior conduce al siguiente problema de la
los componentes que lo forman. Otro aspecto esencial investigación: ¿Cómo establecer una organización y
para estructurar y desarrollar un videojuego con la estructuración funcional de las características básicas de
calidad deseada es la Arquitectura de software (AS), la un videojuego que se desarrolle sobre el motor de juego
cual se encarga de definir de forma abstracta, los Unity 3D? El objetivo de esta investigación consiste en:
componentes de un sistema, sus interfaces y la Desarrollar una arquitectura de software para
comunicación entre ellos. Una AS, consiste en un videojuegos implementados sobre el motor de juego
conjunto de patrones y abstracciones coherentes que Unity 3D, que permita organizar y estructurar sus
proporcionan soluciones a problemas de manera características funcionales básicas.
eficiente [5], así como se encarga de satisfacer
determinados atributos de calidad, tales como: 2. Materiales y métodos
mantenibilidad, extensibilidad, flexibilidad e interacción Como métodos científicos de investigación para la
con otros sistemas de información [6]. obtención de información sobre el proceso de desarrollo
En la Universidad de Ciencias Informáticas (UCI) en de videojuegos centrado en la arquitectura se
colaboración con los Estudios de Animación del emplearon, dentro de los teóricos: el histórico-lógico
Instituto Cubano de Arte e Industria Cinematográfico para el análisis y las tendencias actuales de las
(ICAIC) se realizan videojuegos de diferentes géneros. arquitecturas de software; el analítico-sintético para
Para ello la universidad cuenta con el Centro de extraer y analizar la información sobre las principales
Entornos Interactivos 3D Vertex, el cual tiene como arquitecturas de software usadas en el Centro de
objetivo generar soluciones integrales, tecnologías, Entornos Interactivos 3D, Vertex. Dentro de los
productos y servicios informáticos virtuales que métodos empíricos se utilizaron: consultas de fuentes de
cumplan con las necesidades y expectativas de los información para el análisis de fuentes bibliográficas y

RIDTEC | Vol. 14, n.° 1, enero - junio 2018. 55


Arquitectura de software para el desarrollo de videojuegos sobre el motor de juego Unity 3D
Software architecture for the development of videogames on the game engine Unity 3D

criterios de personal involucrado directamente con el 2.3 Arquitecturas de software utilizadas para el
proceso de desarrollo de videojuegos en el centro desarrollo de videojuegos
Vertex; la observación para observar los resultados Un ejemplo que se podría citar es la Arquitectura
obtenidos en la caracterización e identificación de los para videojuegos serios con aspectos culturales,
principales tipos de arquitecturas de software y publicada por Ricardo Emmanuel Gutiérrez Hernández,
proponer la solución Francisco Álvarez Rodríguez y Jaime Muñoz [10], de la
Universidad Autónoma de Aguascalientes en México,
2.1 Arquitectura de software que consiste en una arquitectura en seis Capas, las
Kruchten, en Rational Unified Process plantea: “La cuales son: interfaz de usuario, escenario, objetos juego,
arquitectura de software representa la estructura o las decoración, aplicación y contexto cultural.
estructuras del sistema, que consta de componentes de Para la propuesta de solución no se utilizará como
software, las propiedades visibles externamente y las referencia esta arquitectura, debido a que los
relaciones entre ellas” [8]. videojuegos desarrollados en el centro Vertex no se
Por otro lado, Robert Nord plantea [9]: “Arquitectura centran en contextos culturales, sin embargo, el estudio
de software es sobre tomar decisiones estructurales de la organización de sus componentes brinda una
fundamentales que son costosos de cambiar una vez mayor visión de cómo estructurar un sistema en capas,
implementado. Opciones de arquitectura de software, definiendo qué almacena cada una de manera más
también llamados decisiones arquitectónicas, incluyen organizada.
opciones estructurales específicas de posibilidades en el Otro ejemplo cercano al contexto que se analiza es la
diseño de software. Por ejemplo, los sistemas que tesis que lleva por título: “Diseño y Desarrollo de un
controlaban la lanzadera de espacio vehículo de Prototipo Básico de un Videojuego de Plataformas en
lanzamiento tenía el requisito de ser muy rápido y muy 2D” publicada por Carlota Esteban Cazalla [11]. Para
confiable. Por lo tanto, una adecuada computación en esta tesis se utilizó como motor de juego Unity 3D y
tiempo real lengua tendría que ser elegido. Además, una arquitectura Modelo-Vista-Controlador (MVC).
para satisfacer la necesidad de fiabilidad la elección El patrón MVC permite separar los datos de la lógica
podría realizarse para tener múltiples redundantes e del videojuego. Sin embargo, desacoplar el modelo de
independientemente producido copias del programa y la vista no significa que los desarrolladores del modelo
ejecutar estas copias en independiente hardware y puedan ignorar la naturaleza de las vistas. Si el modelo
contrastar resultados”. experimenta cambios frecuentes, podrían desbordarse
las vistas con una lluvia de requerimientos de
2.2 Conceptualización de videojuegos actualización, lo que trae consigo que no cumpla con el
Un videojuego o juego de video es un software atributo de calidad mantenibilidad en proyectos con
creado para el entretenimiento en general y basado en la cambios frecuentes en los requisitos como suelen ser los
interacción entre una o varias personas y un aparato videojuegos. Teniendo en cuenta estas limitantes, dicha
electrónico que ejecuta dicho videojuego; este arquitectura es utilizada como referencia solamente para
dispositivo electrónico puede ser una computadora, una concebir la estructuración y organización de los
máquina arcade, una videoconsola, un dispositivo de componentes del sistema en capas.
mano (un teléfono móvil, por ejemplo) los cuales son
conocidos como "plataformas" [1]. 2.3.1 Arquitecturas de software utilizadas para el
Aunque, usualmente el término "video" en la palabra desarrollo de videojuegos en el centro Vertex
"videojuego" se refiere en sí a un visualizador de En el centro Vertex se han desarrollado videojuegos
gráficos, hoy en día se utiliza para hacer referencia a de diferentes géneros, contando con equipos de diversos
cualquier tipo de visualizador. Se entiende por programadores y arquitectos de software, que en la
videojuegos todo tipo de juego digital interactivo, con mayoría de los casos no coinciden, por lo que sus
independencia de su soporte [2]. criterios a la hora de definir una AS para el videojuego
difieren. Esto, sumado a que en muchos casos no se
contaba con un estudio del arte referente al tema, ha
traído consigo desorganización y dio origen a la

56 RIDTEC | Vol. 14, n.° 1, enero - junio 2018.


Andy Hernández Paez | Javier Alejandro Domínguez Falcón | Alejandro Andrés Pi Cruz

necesidad de proponer una AS que satisfaga la situación • El polimorfismo observado en métodos como
problemática antes descrita [12]. Conquistar(), que permite separar los elementos que
cambian de los que no lo hacen. El método
2.3.2 AS del videojuego Especies invasoras mencionado se implementa de diversas formas,
facilitando la ampliación, el mantenimiento y la
reutilización del código.
• El uso del patrón de diseño singleton en el Game
Manager, que garantiza que haya una sola instancia
de dicha clase, reduciendo la carga en memoria de
datos y optimizando el código.
• El uso del manejador de eventos (Event Handler), lo
que posibilita optimizar el control de acciones en un
juego que tiene demasiados estados.

2.3.3 AS del videojuego Caos Numérico


Como solución a la estructura del videojuego Caos
Figura 1. AS del videojuego Especies Invasoras. Numérico se usó una arquitectura por Capas [12],
definida de la forma que se muestra en la figura 2.
En el videojuego Especies Invasoras se utilizó una En la capa principal se encuentran los managers
arquitectura en tres Capas representada como se muestra (Game Manager, Data Manager, Audio Manager, Level
en la figura 1 [12], funcionando de la siguiente manera: Manager, Load Manager), cada uno de ellos tiene un
Ontológico Juego: En esta capa se encuentra la patrón Singleton (una única instancia) implementado
lógica del videojuego, junto a las clases principales, para comunicarse entre ellos y con la capa inferior.
cuya comunicación se evidencia de la manera planteada
en la figura 1. En el Game Manager se implementó el
patrón de diseño singleton, de manera que se tiene en el
videojuego una única instancia de dicha clase para
usarse cuando se requiera. Se puede apreciar también
cómo heredan atributos y métodos las clases
Conquistable, Neutral y Base Guardia de Base y Enemy
y Player de Agent respectivamente.
Manejador de Eventos: En esta capa se
implementó el patrón de diseño Event Handler, estando
suscritas algunas de las clases del juego al manejador de
eventos y controlando los mismos (el orden entre ellos)
mediante una lista, debido a que el videojuego contaba
Figura 2. AS del videojuego Caos Numérico.
con demasiados estados como para ser controlado con
eficiencia mediante consultas simples.
En la capa secundaria se encuentran las clases:
Inteligencia Artificial: En esta capa se implementó
• Transiciones UI: Se encarga de las transiciones de
la lógica de la inteligencia artificial y el
la interfaz de usuario.
comportamiento tanto de los personajes como los
• State Machine: Se encarga de los diferentes estados
enemigos.
que puede tener la escena principal, que es en la que
De la AS usada en el videojuego “Especies
se implementó la máquina de estados.
Invasoras”, buenas prácticas observadas que se pueden
• Eventos: Usa tipo de datos delegate o delegado
incorporar a la propuesta de solución son:
(propio de C#), representando métodos con una lista
• La herencia de algunas de sus clases, que garantiza de parámetros determinada y un tipo de valor
reutilización y extensibilidad. devuelto. Se usa para llamar a los métodos a través
de la instancia del delegado.

RIDTEC | Vol. 14, n.° 1, enero - junio 2018. 57


Arquitectura de software para el desarrollo de videojuegos sobre el motor de juego Unity 3D
Software architecture for the development of videogames on the game engine Unity 3D

De la AS usada en el videojuego “Caos Numérico”,


buenas prácticas observadas que se pueden incorporar a
la propuesta de solución son:
• El uso del tipo de datos delegado para llamar a los
métodos a través de instancias de ese tipo.
• El uso del patrón de diseño Singleton en cada uno de
los managers (Game Manager, Audio Manager, Data
Manager, Level Manager, Load Manager).
• La organización y estructuración del sistema en
Capas.
A pesar de estas buenas prácticas cabe señalar que en
la capa principal pudo implementarse el patrón de
diseño fachada en el Game Manager. El objetivo de Figura 3. AS base para el desarrollo de videojuegos.
usarlo sería mantener una sola instancia de dicha clase y
Según Pressman, desde un punto de vista orientado a
no de todas las que se accederá desde el Game Manager
objetos, un componente es un conjunto de clases que
(Audio Manager, Data Manager, Level Manager, Load
colaboran [5], por lo que en cada script de la AS
Manager).
propuesta se definen las clases requeridas para definirlo
Por otro lado, se toma como referencia para la
como un componente. Para cada uno de los
propuesta de solución la posibilidad de estructurar los
componentes de la AS propuesta se definen las clases
componentes de un producto base en diferentes capas
(con los atributos y operaciones apropiadas). Cada clase
según las arquitecturas estudiadas. De igual forma, la
dentro de un componente se elabora por completo para
relación con las capas inmediatas que requieren y
que incluya todos los métodos y acciones relevantes
proporcionan determinados servicios para el control de
para su implementación. Estos componentes fueron
los eventos contribuye a la extensibilidad de las
construidos teniendo en cuenta lo reutilizable,
soluciones que se desarrollen sobre el dominio de
involucran interfaces, las funciones que realizan, así
aplicación de videojuegos.
como la comunicación y colaboración que requieren.
Como parte de la solución, también se definen todas las
3. Resultados y discusión
interfaces que permiten que las clases se comuniquen y
A partir del estudio realizado se propone, una
colaboren con otras clases dependiendo de la Capa en la
arquitectura que combina los patrones arquitectónicos:
que se encuentren.
en Capas y basado en componentes, para estructurar los
Las Capas están compuestas de la siguiente manera:
diferentes elementos necesarios en un videojuego. Los
Capa Principal del Juego: En esta capa se
componentes de cada Capa se comunican con
encuentra el controlador principal del juego (Game
componentes de otras Capas a través de interfaces
Manager), la máquina de estados (State Machine), el
definidas o instancias de clases (en el caso de las clases
sonido (Sound Manager), datos (Data Manager),
se comunican con el Game Manager únicamente dado
escenas (Scene Manager System) y Puntuación.
que es el que provee una fachada para las clases de la
• Game Manager: Es el controlador principal del
Capa Principal para interactuar con las demás). En la
sistema. Se implementa como un gameObject de
figura 3 se observa la distribución de las Capas
Unity que se encuentra en todas las escenas del
presentes en la arquitectura propuesta estructurada en 3
videojuego. Tiene asociados el resto de los
Capas. managers, almacenando una instancia de cada uno de
ellos. En caso de que se necesite usar puntuaciones
para el videojuego, los datos se guardan en
hashtables o tablas hash, que se encarga de asociar
datos con valores y puede ser usada en la AS
propuesta para almacenar grandes cantidades de
información si es necesario. Si se desea acceder al

58 RIDTEC | Vol. 14, n.° 1, enero - junio 2018.


Andy Hernández Paez | Javier Alejandro Domínguez Falcón | Alejandro Andrés Pi Cruz

controlador principal del juego se usa un patrón de las vistas arquitectónicas que propone Robert Nord [9] y
diseño singleton que se implementó en el mismo. las buenas prácticas de ingeniería de software
• State Machine: Se encarga de definir los estados del propuestas por el marco de trabajo ingenieril para el
videojuego. Guarda los mismos en un enum que proceso de desarrollo de videojuegos utilizado en el
posee todos los diferentes estados que puede asumir centro Vertex [13]:
el videojuego en un momento dado. • Vista conceptual
• Sound Manager: Controla el sonido del juego y • Vista de módulos
particularmente de cada elemento o acción que • Vista de código
active un sonido. Guarda los tipos de sonidos (dos • Vista de ejecución.
tipos de sonido, o sea, dos listas: FX para Effects y
BGM para Background) en listas usando estructuras 3.2.1 Vista conceptual
(struct), formadas por tres elementos: un AudioClip, En esta vista se describe el sistema en términos de
un AudioSource para poder reproducir el AudioClip
sus elementos principales de diseño y las relaciones
y un enum que guarda los nombres de los sonidos
entre estos según el dominio como se visualiza en la
para diferenciarlos a la hora de agregarlos al
figura 4. Esta vista es independiente de las decisiones de
videojuego.
implementación [14].
• Data Manager: Maneja los datos del juego. Se
encarga de cargar, guardar el estado del videojuego o
la puntuación.
• Scene Manager: Maneja las escenas del juego y los
cambios entre ellas.
• Puntuación: Controla la puntuación del juego. En
caso de no existir se puede eliminar esta clase de la
arquitectura.
Capa de Caracteres: En esta capa se encuentran los
caracteres (ControladorPersonaje), diferenciándose
entre ellos por ser jugables (Player) o no jugables
(NPC). Si se desea agregar otro tipo de personaje que
intervenga en el videojuego se incorpora en esta capa. Figura 4. Modelo conceptual de la solución propuesta.
Capa de Interacción con el mundo: En esta capa se
encuentran el escenario y los objetos que pertenecen al 3.2.2 Vista de módulos
mismo. Si existen otros tipos de objetos que modifiquen En esta vista se captura la descomposición funcional
el videojuego se agregan a esta capa. y las Capas del sistema. El sistema es descompuesto
lógicamente en subsistemas, módulos, y unidades
3.1 Restricciones arquitectónicas abstractas. Cada capa representa las distintas interfaces
• La arquitectura debe garantizar que los productos de comunicación permitidas entre los módulos [14]. Las
que se desarrollen sean multiplataforma (Android, dependencias entre paquetes resumen dependencias
Windows, Ubuntu). entre los elementos internos a ellos como se muestra en
• La arquitectura debe permitir la actualización, la figura 5 [11].
modificación o incorporación de compontes de
forma natural.
• Las prestaciones de hardware dependerán de los
requerimientos no funcionales de los productos que
se desarrollen utilizando la arquitectura propuesta.
• Se debe usar como motor de videojuegos Unity 3D.

3.2 Vistas arquitectónicas


Para describir la arquitectura de software propuesta
sobre el prototipo funcional desarrollado se utilizaron

RIDTEC | Vol. 14, n.° 1, enero - junio 2018. 59


Arquitectura de software para el desarrollo de videojuegos sobre el motor de juego Unity 3D
Software architecture for the development of videogames on the game engine Unity 3D

Figura 5. Diagrama de paquetes de la solución propuesta.

Para la representación de la interacción de las Figura 7. Diagrama de componentes de la solución


funcionalidades de la solución se utilizaron los propuesta.
diagramas de transición de estados para representar el
comportamiento de objetos que se relacionan en 3.2.4 Vista de ejecución
procedimientos ejecutados del videojuego en tiempo En la vista de ejecución se describe la estructura
real, tal y como se muestra en la figura 6. dinámica del videojuego en términos de sus elementos
en tiempo de ejecución como se muestra en la figura 8.
Algunos de los aspectos que se consideran en esta vista
son: el desempeño y el entorno de ejecución [14].

Figura 6. Diagrama de transición de estados: Mecanismo de


Física.
Figura 8. Diagrama de despliegue.
3.2.3 Vista de código
En esta vista se organiza el código fuente 3.3 Evaluación de la arquitectura de software
representando la estructura y organización del prototipo propuesta
El método de Análisis de Acuerdos de Arquitectura
funcional. Además, se puede apreciar la distribución de
de Software (ATAM) está compuesto por nueve pasos
los componentes en cada una de las Capas.
divididos en cuatro fases, los cuales se adaptarán de
La figura 7 visualiza desde una vista más cercana al
acuerdo a los requerimientos del proyecto [15]. Después
código, cómo el prototipo funcional es dividido en
de la descripción de la solución propuesta y el análisis
componentes y muestra las relaciones de dependencias
realizado, se procede a evaluar la arquitectura propuesta
entre estos componentes.
empleando este método.
Se seleccionó el método ATAM para la validación
de la arquitectura propuesta, debido a que permite
obtener los requerimientos de los atributos de calidad
que son importantes para lograr cumplir las metas del
contexto base que se desarrolla. La expresión concreta
de estas metas son los escenarios de los atributos de

60 RIDTEC | Vol. 14, n.° 1, enero - junio 2018.


Andy Hernández Paez | Javier Alejandro Domínguez Falcón | Alejandro Andrés Pi Cruz

calidad que aparecen en las hojas del árbol de utilidad recursos y tipos de
[16]. recursos
Los escenarios aplicados y las propuestas se unen utilizados
cuando se pregunta cómo estos son soportados por la cuando el
arquitectura. El resultado es un conjunto de decisiones videojuego
lleva a cabo su
arquitectónicas. Si estas decisiones son potencialmente
función deben
problemáticas o especialmente importantes, o si afectan
ser bajos.
a más de un atributo, entonces deben ser registradas
Compatibili- Coexistencia El videojuego Media
como riesgos. Por tanto, el método ATAM permite dad debe poder
identificar los riesgos arquitectónicos que coexistir con
potencialmente prohíben a una organización conquistar otro software
las metas del contexto [16]; mientras que el esfuerzo independiente,
dedicado a contrarrestar estos eventos garantiza una en un entorno
estructura lógica y robusta de las funcionalidades bases común,
de un producto de software de calidad. compartiendo
Árbol de utilidad: Los atributos presentes en el recursos
árbol de utilidad [16], usados para evaluar la comunes sin
arquitectura mediante el método ATAM, en conjunto detrimento.
con técnicas basadas en escenarios y prototipo, son los Interoperabili- El videojuego Media
más relevantes a comprobar sobre el dominio de dad debe poder
intercambiar
aplicación desarrollado (videojuegos), dado que aportan
información y
interpretaciones consistentes, pertinentes, facilitando el
utilizar la
análisis de su comportamiento desde el núcleo información
arquitectónico hasta los horizontes de la arquitectura intercambiada
relacionados con las funcionalidades más básicas del con otro
videojuego (prototipo funcional). Las especificaciones sistema.
de atributos pertenecen al modelo de calidad ISO/IEC Usabilidad Estética La interfaz de Media
25010 [17] y sus descripciones se muestran en la tabla usuario debe
1. agradar y
Tabla 1. Árbol de utilidad satisfacer la
Atributo Subatributo Escenario Prioridad interacción
Adecuación Corrección El videojuego Alta con el usuario.
Funcional Funcional debe proveer Aprendizaje El usuario Media
resultados debe
correctos con comprender el
el nivel de sistema con
precisión facilidad.
requerido. Operabilidad El sistema Media
Eficiencia Comporta- Los tiempos Alta (Jugabilidad) debe satisfacer
miento de respuesta y la experiencia
Temporal procesamiento del jugador.
del videojuego Fiabilidad Tolerancia El sistema Alta
con respecto a opera según lo
cada una de previsto en
las acciones presencia de
del usuario fallos
deben ser hardware o
cortos. software.
Utilización de Las cantidades Alta Disponibilidad El sistema está Alta

RIDTEC | Vol. 14, n.° 1, enero - junio 2018. 61


Arquitectura de software para el desarrollo de videojuegos sobre el motor de juego Unity 3D
Software architecture for the development of videogames on the game engine Unity 3D

disponible determinados
cuando se de hardware,
requiere su software,
uso. operacionales
Seguridad Confidenciali- El sistema Media o de uso.
dad protege contra Facilidad de El producto se Media
el acceso a instalación puede instalar
datos e y/o desinstalar
información de forma
de personas no exitosa en un
autorizadas, ya determinado
sea accidental entorno.
o deliberada-
mente. 3.4 Evaluación basada en escenarios con presencia
Integridad El sistema Alta de riesgos sobre la propuesta
previene
accesos o Tabla 2. Descripción del Escenario Confidencialidad del
modificacio- atributo Seguridad
nes no Atributo de Calidad Seguridad
autorizados a Subatributos/Sub-
Confidencialidad.
sus datos. característica
Mantenibili- Modularidad Al realizar un Alta El sistema protege contra el acceso a
dad cambio en un datos e información de personas no
Objetivo
componente autorizadas, ya sea accidental o
del sistema deliberadamente.
debe tener un Origen Usuarios del sistema
impacto Artefacto Videojuego.
mínimo en los Entorno El sistema desplegado.
demás. Estímulo Respuesta: Flujo de eventos
Reusabilidad Los elementos Alta 1. Se accede al (Escenarios)
del videojuego sistema sin
deben ser autorización.
reusables en Se accede al sistema El sistema no posee autenticación de
otros sin autenticarse. usuarios.
desarrollos. Medida de respuesta
Capacidad de El sistema Alta Desplegar el sistema.
ser modificado puede ser
modificado de Tabla 3. Descripción del Escenario Integridad del
forma efectiva atributo Seguridad
y eficiente sin Atributo de Calidad Seguridad
introducir Subatributos/Sub-
defectos o Integridad.
característica
degradar el El sistema previene accesos o
desempeño. Objetivo modificaciones no autorizados a sus
Portabilidad Adaptabilidad El producto Media datos.
puede ser Origen Usuarios del sistema.
adaptado de Artefacto Videojuego.
forma efectiva Entorno El sistema desplegado.
y eficiente a
Estímulo Respuesta: Flujo de eventos
diferentes
1. Se accede al (Escenarios)
entornos

62 RIDTEC | Vol. 14, n.° 1, enero - junio 2018.


Andy Hernández Paez | Javier Alejandro Domínguez Falcón | Alejandro Andrés Pi Cruz

sistema sin desarrollado sobre el motor de juego Unity 3D, se


autorización y se corresponde con un videojuego del género de
modifican las plataformas, el mismo permitió comprobar la utilidad de
puntuaciones. la arquitectura en un escenario sencillo de este tipo con
Se accede al sistema El sistema no posee autenticación de valor de Ci = 37. Sin embargo, muchos de los atributos
sin autenticarse. usuarios, por lo que se pueden de calidad evaluados arrojaron como resultados que la
modificar las puntuaciones.
arquitectura de software propuesta es adaptable,
Medida de respuesta
reutilizable y modificable. Por tanto, en otro escenario
Modificar datos del sistema.
de desarrollo el valor de Ci puede variar sin que
cambien las propiedades básicas de la solución
A partir de la información obtenida tras la aplicación
arquitectónica propuesta.
del método ATAM como se muestra en las tablas 2 y 3,
• Métrica de Complejidad a nivel de componentes:
se identificaron dos riesgos en la arquitectura propuesta
Para la determinación de esta métrica se diseñó el
como se presentan en la tabla 4. Estos riesgos están grafo de flujo para cada una de las operaciones
asociados a los escenarios Seguridad: Integridad y contenidas en los componentes implementados.
Confidencialidad. Posteriormente se calculó la complejidad ciclomática
para cada grafo de flujo. Esto arrojó un valor
Tabla 4. Riesgos identificados promedio de 4 puntos, para un total de once
Escenario Riesgo componentes implementados de la solución con sus
Seguridad: El sistema El sistema no posee respectivas operaciones. Este valor puntual indica
protege contra el acceso a autenticación de usuarios, por que se disponen a lo sumo de 4 caminos lógicos
datos e información de lo que cualquier usuario puede linealmente independientes para la ejecución de
personas no autorizadas, acceder al mismo.
escenarios en sus métodos. Esto demuestra el grado
ya sea accidental o
de optimización de las funcionalidades desarrolladas
deliberadamente.
como parte de la arquitectura base para el desarrollo
Seguridad: El sistema Comportamiento Temporal.
de videojuegos. Además, este resultado denota la
previene accesos o
aplicabilidad en la solución arquitectónica propuesta
modificaciones no
de otros atributos de calidad, tales como:
autorizados a sus datos.
extensibilidad, fiabilidad y mantenibilidad.
Además, como parte del proceso de validación de la
arquitectura, para comprobar la calidad de la misma se 3.5 Evaluación basada en prototipo
utilizaron las siguientes métricas de calidad [18]: Para evaluar la AS fue implementado un prototipo
• Métrica de Complejidad estructural (Si): Para el funcional de un videojuego de plataformas según se
cálculo de esta métrica se tuvo en cuenta el número muestra en la figura 9, en el que, luego de tener una
de módulos subordinados a cada módulo del comprensión mejor del mismo mediante las vistas
prototipo funcional, obteniéndose como valor: Si = 6. arquitectónicas modeladas, se puede apreciar la
• Métrica de Complejidad de datos (Di): Para la interacción de los componentes del prototipo y con la
determinación de esta métrica se tuvieron en cuenta arquitectura propuesta como solución a cada uno de los
las variables de entrada y salida por cada uno de los mecanismos [19] del videojuego.
módulos que comprende el videojuego desarrollado
sobre la arquitectura propuesta, originándose como
resultado: Di = 31.
• Métrica de Complejidad del sistema (Ci): Para el
cálculo de esta métrica se agruparon los valores
obtenidos por Si y Di. Teniendo en cuenta esta
adición se obtuvo un valor: Ci = 37.
A medida que crecen los valores de complejidad,
crece la complejidad arquitectónica del sistema.
Teniendo en cuenta que el prototipo funcional

RIDTEC | Vol. 14, n.° 1, enero - junio 2018. 63


Arquitectura de software para el desarrollo de videojuegos sobre el motor de juego Unity 3D
Software architecture for the development of videogames on the game engine Unity 3D

proponer una solución. El uso de las vistas


arquitectónicas propuestas por Robert Nord, permitió
tener una mayor visión de la propuesta de solución
implementada en el prototipo funcional. Las
evaluaciones realizadas, mediante el método ATAM:
basadas en escenarios y prototipo, arrojaron la presencia
de riesgos en el prototipo funcional y sobre la
arquitectura propuesta, los cuales son considerados para
futuros desarrollos de videojuegos.

Figura 9. Escena de juego del prototipo funcional. 5. Referencias


Para ejecutar cada uno de los estados el personaje se [1] Stack, P. History of video game consoles. Time Magazine
vale del componente animator de Unity, contando con website 2005; Available from:
http://www.time.com/time/covers/1101050523/console_timeline
los siguientes scripts para completar las acciones:
. [Ene. 19, 2018].
ControladorPersonaje: Se encarga de determinar [2] Greenslade, A. Gamespeak: A glossary of Gaming Terms.
en qué estado se encuentra el personaje y realizar la 2006; Available from: https://archive.is/TbSs#selection-147.12-
acción correspondiente. Se encuentra suscrito al 147.29. [Ene. 20, 2018].
NotificationCenter (Observer) para posibilitar que en el [3] Ward, J. What is a Game Engine?. 2008; Available from:
momento que empiece a correr y, por consiguiente, se https://www.gamecareerguide.com/features/529/what_is_a_gam
e_.php. [Ene. 20, 2018].
generen los elementos y objetos del videojuego.
[4] Technologies, U. Motores Gráficos. 2011; Available from:
Puntuación: Controla la puntuación ejecutando las http://www.mat.ub.edu/futurs_ub/activitats/Matefest/2011/triptic
acciones de incrementar 1 punto si el personaje se sitúa s/motoresgraficos.pdf. [Ene. 21, 2018].
sobre un bloque o 5 puntos en caso de que acumule un [5] Pressman, R.S. "Ingeniería de software. Un enfoque práctico".
objeto. Suscrito también al NotificationCenter, accede a Séptima Edición. 2010.
las tablas de puntos contenidas en el GameManager, así [6] Camacho, E., Fabio Cardeso, Gabriel Nuñez. "Arquitecturas de
software. Guía de estudio". 2004.
como al DataManager para obtener la puntuación
[7] GESPRO 16.05. Herramienta de Gestión de Proyectos. 2017.
máxima guardada ahí y al método de guardar para Project Management Suite. Universidad de las Ciencias
sobrescribirla en caso de que se acumule una Básicas. Available from: https://gespro.vertex.prod.uci.cu.
puntuación máxima superior. Para interactuar entre [Ene. 21, 2018].
escenas se usa el SceneManager, que se encarga de los [8] Kruchten, P. "The Rational Unified Process". Addison Wesley
cambios de escenas, siendo implementado ahí los Longman, 2003.
métodos que se encargan de dicho cambio entre [9] Nord, R.L. "Un modelo general de diseño de arquitectura de
software derivado de cinco enfoques industriales". 2007.
escenas. [10] Gutiérrez, H., Ricardo Emmanuel; Francisco J. Álvarez, Jaime
Muñoz-Arteaga. Arquitectura de Software para Juegos Serios
4. Conclusiones con Aspectos Culturales: Caso de Estudio en un Videojuego para
Con la realización de esta investigación, se define y Fórmulas Temperatura. 2013; Available from:
se valida una arquitectura de software para el desarrollo https://www.researchgate.net/publication/236162869_Arquitectu
de videojuegos, probada sobre un prototipo funcional de ra_de_Software_para_Juegos_Serios_con_Aspectos_Culturales_
Caso_de_Estudio_en_un_Videojuego_para_Formulas_Temperat
un videojuego del género de plataformas, la cual
ura. [Ene. 21, 2018].
permite reutilizar componentes, facilitar la base para la [11] Cazalla, C.E. "Diseño y desarrollo de un prototipo básico de un
implementación y el uso de recursos, contribuyendo de videojuego plataformas en 2D". 2014.
este modo al desarrollo base de futuros videojuegos. La [12] GitLab. GitLab Community Edition. 2017; Available from:
combinación de los patrones arquitectónicos: https://gitlab.prod.uci.cu/users/sign_in. [Ene. 21, 2018].
arquitectura en tres Capas y en componentes, permitió [13] Hernández, P.A. "Marco de trabajo ingenieril para el proceso de
desarrollo de videojuegos". RACCIS 7(1), 13-26, Revista
desarrollar una AS que satisface los atributos de
Antioqueña de las Ciencias Computacionales y la Ingeniería de
calidad: reusabilidad, mantenibilidad, extensibilidad y Software. 2017.
eficiencia, que eran pautas a tener en cuenta a la hora de

64 RIDTEC | Vol. 14, n.° 1, enero - junio 2018.


Andy Hernández Paez | Javier Alejandro Domínguez Falcón | Alejandro Andrés Pi Cruz

[14] Reynoso, C.y.K., Nicolás. "Estilos y Patrones en la Estrategia de


Arquitectura de Microsoft". 2004.
[15] Delgado, A., Alberto Castro, Martín Germán. "Evaluación de
Arquitecturas de Software con ATAM". Universidad de la
República, Facultad de Ingeniería, Instituto de Computación.
Uruguay. 2007
[16] Clements, P.K., R & Klein, M. "Evaluating software
architectures: Methods and case studies". Boston: Addison-
Wesley. 2001.
[17] ISO/25010. ISO/IEC 25010. 2011 Available from:
http://iso25000.com/index.php/normas-iso-25000/iso-25010.
[Ene. 21, 2018].
[18] Pallares, E.Y. y .P.V., Johana Andrea. "Métricas del Modelo del
Diseño". 2012; Available from: http://ing-
software3.blogspot.com/2012/11/metricas-del-modelo-del-
diseno.html. [Mar. 22, 2018].
[19] Adams, J.D.E. "Game Mechanics. Advanced Game Design".
2012.

RIDTEC | Vol. 14, n.° 1, enero - junio 2018. 65

También podría gustarte