ISSN: 2773-7489
Correo: editor@istvidanueva.edu.ec
URL: http://nexoscientificos.vidanueva.edu.ec/index.php/ojs/index
Fecha de aceptación: noviembre 2022
Revista Nexos Científicos
Julio-Diciembre 2022 pp. 32-41
Volumen 1, Número 2
Fecha de recepción: septiembre 2022
32
1. INTRODUCCIÓN
La industria de los videojuegos tiene un papel
protagónico en la sociedad, se utilizan para la
formación, la diversión o para este proyecto con
fines educativos.
Con los cambios tecnológicos de hoy en día, los
procesos y estrategias de aprendizaje han cambiado
y lo que permite aprender a través de videojuegos,
esto se logra mediante el uso de elementos
interactivos que permiten a los usuarios aprender a
través de logros y avances en el juego, y con el paso
Diseño de un videojuego aplicando una arquitectura en capas basada en el
framework de unity
Aguas Luis
1
; Recalde Henry
2
1
Universidad Tecnológica Israel, Quito-Ecuador, laguas@uisrael.edu.ec
2
Universidad Tecnológica Israel, Quito-Ecuador, hrecalde@uisrael.edu.ec
Resumen: El desarrollo de videojuegos es un tema especial en el campo del desarrollo de software.
El equipo de desarrollo multidisciplinario y los componentes artísticos introducidos por este
estudiante de ingeniería de software hicieron que los métodos de desarrollo tradicionales fueran
ineficaces. Aquí, las ideas y mecanismos propuestos deben ser probados para entender si son
efectivos y si contribuyen a las expectativas puestas en ellos. Esto significa que el proceso de
desarrollo debe ser iterativo, porque si bien hay una hoja de ruta desde el principio y una descripción
de lo que desea hacer, las ideas y los mecanismos del juego siguen apareciendo a lo largo del proceso
de desarrollo, se modifican y algunos se revisan. La preparación técnica de expertos incluye el
dominio de las últimas herramientas y avances de software. En la actualidad, ciertas plataformas se
destacan y permiten la creación a partir de disciplinas de ingeniería de software y modelos de
programación, entre ellas Unity, cuya practicidad es comparable a frameworks como Genexus y
Visual Studio. Además, considerando que Unity incluye la compatibilidad de dispositivos y consolas
del mercado.
Palabras clave: modelado, 3D, 2D, alas, vrml, renderizado.
Design of a video game applying a layered architecture based on the unity
framework
Abstract: Video game development is a special topic in the field of software development. The
multidisciplinary development team and artistic components introduced by this software engineering
student rendered traditional development methods ineffective. Here, the proposed ideas and
mechanisms must be tested to understand if they are effective and if they contribute to the
expectations placed on them. This means that the development process must be iterative, because
while there is a roadmap at the outset and a description of what you want to do, game ideas and
mechanisms keep popping up throughout the development process, are being modified, and some are
being revised. Technical expert preparation includes mastering the latest tools and software
advancements. Currently, certain platforms stand out and allow creation from software engineering
disciplines and programming models, among them Unity, whose practicality can be compared to
frameworks such as Genexus and Visual Studio. In addition, considering that Unity includes the
compatibility of devices and consoles on the market.
Keywords: modelling, 3D, 2D, wings, vrml, rendering.
ISSN: 2773-7489
Correo: editor@istvidanueva.edu.ec
URL: http://nexoscientificos.vidanueva.edu.ec/index.php/ojs/index
Fecha de aceptación: noviembre 2022
Revista Nexos Científicos
Julio-Diciembre 2022 pp. 32-41
Volumen 1, Número 2
Fecha de recepción: septiembre 2022
33
del tiempo, el concepto de un Se forma la “Sociedad
Digital” y gracias a la integración de los medios, ya
no se asocia a ningún medio en particular, y los
videojuegos se convierten en un objeto cultural y
social que forma parte de nuestras vidas. diario.
Para nosotros, el contenido anterior es una de las
motivaciones importantes para llevar a cabo el
proyecto, ya que las nuevas herramientas existentes
pueden mejorar la calidad del aprendizaje de la
nueva generación, estableciendo así un nuevo
modelo de enseñanza que de alguna manera potencie
el aprendizaje de los estudiantes. aprendizaje
significativo de los estudiantes. Considerando la
situación anterior, se decidió proponer un escenario
que permita analizar todas estas condiciones, en
especial todos los contenidos relacionados con el
campo técnico. Así mismo, como paso inicial y
necesario, se diseñó y desarrolló un videojuego
educativo que permitiera la enseñanza y dinámicas
de enseñanza del principio de ingeniería de este tipo
de análisis es lo que significa utilizar la formación
de educación superior basada en las tecnologías de
la información y la comunicación.
2. METODOLOGÍA
2.1 Metodología y arquitectura
La metodología permitirá definir las principales
fases y roles que se encuentran inmersos en el
desarrollo de un proyecto de software en este caso
un videojuego, es necesario considerar ciertos
aspectos que permitirán determinar el tipo de
videojuego a desarrollar, tales como:
Plataforma: PC, celulares, web, etc.
Tipo: 2D o 3D.
Para quién es: Niños, adolescentes o adultos.
Motor de juegos:Unidad, Irreal, Cry Engine, etc.
Pero centrándonos en la metodología, es necesario
establecer un mecanismo que nos permita ordenar el
proceso de desarrollo de un proyecto de videojuego,
en las siguientes fases (Metodología de desarrollo de
proyectos con Unity en CIPSA, 2021).
2.2 Fases de la metodología
Para desarrollar un videojuego no existe un punto de
partida predeterminado, sino que se deben
considerar ciertas etapas para desarrollar el
videojuego de manera ordenada. En cada etapa se
resuelven diferentes problemas de producción de
videojuegos, y en ella participan diferentes
profesionales, las etapas se dividen de la siguiente
manera:
2.2.1 Fase de preproducción
Esta etapa tiene como objetivo definir los aspectos
básicos de los videojuegos y dar un concepto de
cómo se desarrollarán los videojuegos, lo que
brindará modelos para la planificación y producción
de videojuegos (Morales Urrutia, Nava López,
Fernández Martínez, & Rey Corral, 2010). Además
de los conceptos básicos de planificación, la idea
también incluye proponer cómo ejecutar el proyecto
y cómo organizar el proyecto según el equipo de
trabajo, el presupuesto y el tiempo de ejecución. Si
bien esta etapa contiene alrededor del 10% al 25%,
es importante porque la idea o concepto a desarrollar
aquí se configura de acuerdo a lo anterior y se crea
el primer prototipo.
2.2.2 Fase de diseño
En esta etapa se fusionan los conceptos definidos en
la etapa anterior y se ubican en el documento de
diseño del videojuego (game design document). Este
documento propone todo el contenido que debe
alcanzar un videojuego, incluyendo conceptos
generales de alcance, público objetivo y propósito
del juego, así como las diferentes dinámicas,
mecanismos, roles, guiones y jugabilidad del video.
Juegos para construir módulos, niveles y escenarios
de videojuegos.
2.2.3 Fase de planeamiento
Al igual que en el proyecto, en la fase de
planificación se establecen y detallan diferentes
actividades para cada campo o equipo de desarrollo
de videojuegos. La idea en esta etapa es utilizar un
método definido que permita el trabajo en equipo
ISSN: 2773-7489
Correo: editor@istvidanueva.edu.ec
URL: http://nexoscientificos.vidanueva.edu.ec/index.php/ojs/index
Fecha de aceptación: noviembre 2022
Revista Nexos Científicos
Julio-Diciembre 2022 pp. 32-41
Volumen 1, Número 2
Fecha de recepción: septiembre 2022
34
para asignar todas las tareas a desarrollar, y que los
videojuegos se puedan complementar y desarrollar
de forma ágil (Acerenza et al., 2009).
2.2.4 Fase de Producción
En esta etapa, la codificación o programación de
videojuegos, que se definió en la etapa anterior, es
una de las más importantes y de mayor duración, ya
que aquí el equipo de desarrollo de videojuegos
realiza diferentes actividades, con el fin de dejar un
Prototipo de juego. Básicamente, cada área de
trabajo se lleva a cabo de acuerdo con el plan
previamente completado. Estas áreas se pueden
dividir en las siguientes partes: área de diseño de
juegos, área de diseño de niveles, área de
programación, área de diseño de personajes, área de
diseño de ambientes, etc. Esta es la etapa donde
entran todos los roles y todos los campos de
conocimiento (Urrutia, 2010) que se resuelven con
el desarrollo de videojuegos.
Todos los miembros del equipo de desarrollo
iniciarán su tarea de acuerdo a las herramientas o
software especificados en las fases de planificación
y diseño. Con el tiempo, estas tareas serán realizadas
por todos los miembros del equipo de acuerdo al
cronograma y metodología definidos en la fase de
planificación (Análisis de las herramientas Unity y
Blender para el desarrollo de videojuegos con
enfoque educativo, s/f).
En esta etapa, se puede dividir de diferentes maneras
desde el concepto de diseño de personajes o el
entorno del juego, un proceso que generalmente lo
realiza un diseñador 3D o un artista del entorno.
Después de eso, con personajes y entornos o mapas,
comienza a desarrollar o programar todos los
mecanismos y dinámicas que los jugadores podrán
realizar en un videojuego para lograr un prototipo
usable del juego. (Análisis de las herramientas Unity
y Blender para el desarrollo de videojuegos con
enfoque educativo, s/f).
2.2.5 Fase de prueba
Esta etapa solo incluye las pruebas del prototipo de
videojuego realizadas en la etapa anterior. La idea es
que estas pruebas corrijan todos los errores y
mantengan el juego en la versión final para seguir
vendiendo. El principal objetivo de esta etapa es
corregir todos los errores del prototipo, y en base a
los comentarios de los testers o personas que han
jugado la versión anterior del juego, hacer que el
juego satisfaga las preferencias del público
minimizando la cantidad de errores.
2.3 roles del equipo de trabajo
El desarrollo de un videojuego es un proyecto el cual
lo lleva a cabo un equipo multidisciplinario y por eso
es importante definir cuáles son las funciones de
cada miembro de este equipo, para lo cual se
definirán los siguientes roles:
2.3.1 Artista
Los artistas suelen ser personas del ámbito del arte y
el diseño gráfico, y son los encargados de crear todos
los recursos gráficos de los videojuegos. Las
responsabilidades principales incluyen crear y
texturizar modelos de personajes usando
animaciones correspondientes, elementos de escena
definidos en el juego, niveles y varios contenidos 2D
y 3D, así como crear imágenes, interfaces de
usuario, diseños y promociones para usar como
opciones en el juego.
2.3.2 Diseñador
El diseñador es quien define el proyecto y
conceptualiza la idea a desarrollar, se involucran de
principio a fin en todas las etapas del proyecto y en
coordinación con todos los roles, una de las tareas
más importantes del diseñador es transmitir al los
miembros del equipo lo que se desea como producto
final, definir las reglas mecánicas del juego,
interacción con los usuarios, escenarios y niveles
que tendrá el videojuego. Es decir, es el responsable
del proyecto y el creador de la idea a desarrollar.
2.3.3 Programador
Su principal responsabilidad es crear el código del
videojuego para plasmar todas las ideas definidas
por el diseñador y utilizar los recursos creados por
los artistas. Una de sus principales características es
la creación de una arquitectura que permite la
reutilización de código por parte de otros
programadores que forman parte del equipo.
ISSN: 2773-7489
Correo: editor@istvidanueva.edu.ec
URL: http://nexoscientificos.vidanueva.edu.ec/index.php/ojs/index
Fecha de aceptación: noviembre 2022
Revista Nexos Científicos
Julio-Diciembre 2022 pp. 32-41
Volumen 1, Número 2
Fecha de recepción: septiembre 2022
35
Los programadores son ingenieros informáticos con
conocimientos de herramientas de desarrollo y
frameworks especializados para proyectos de
videojuegos. Una de sus funciones importantes es
acordar con el proyectista todos los aspectos
técnicos, riesgos y limitaciones que pueda tener el
proyecto en base a su experiencia.
2.3.4 Probadores
El rol de testers y control de calidad se encarga de
verificar si el juego está funcionando de acuerdo a
los objetivos del proyecto. Su función principal es
verificar que no haya errores o problemas de
compatibilidad, y si hay suficientes errores de juego
y acción. revisados.
2.4 Herramientas
El uso de herramientas es fundamental, sobre todo la
adecuada selección de software para el desarrollo de
videojuegos, para este proyecto se propone un
framework como Unity y el lenguaje de
programación C#.
2.4.1 Unidad
Unity es una herramienta para crear y desarrollar
juegos digitales. Es un motor de renderizado de
imágenes muy potente que se integra con otras
herramientas de trabajo para ayudar a crear
contenido 3D interactivo. Tiene innumerables
recursos de alta calidad a través de la comunidad de
usuarios, aquí también se puede intercambiar
conocimiento, también es multiplataforma, por lo
que puede crear juegos en iOS, Android, Web, Xbox
360, PS3, Wii, Windows Phone, Linux y más. otras
plataformas (Unity Technologies, s/f).
Con las muchas herramientas, flujos de trabajo y
capacidades de iteración rápida de Unity, puede
crear juegos, simulaciones o visualizaciones en 2D
y 3D. El motor de Unity te permite crear
innumerables personajes, juegos, diseños, entornos,
etc.; desde títulos de consola 3D hasta aplicaciones
móviles 2D (Unity Technologies, s/f).
2.4.2 C#
Este lenguaje de programación multiparadigma
desarrollado y estandarizado por Microsoft, permite
la creación de aplicaciones sólidas de cualquier tipo,
basando su programación en objetos y seguridad de
tipos, su sintaxis es fácil de aprender, lo que permite
que cualquiera que conozca otro lenguaje de
programación se familiarice rápidamente.
La programación es un elemento clave de cualquier
plataforma de desarrollo de juegos, incluido Unity.
El script que implementa el comportamiento de cada
elemento del juego se puede implementar usando
lenguaje C# y Visual Code o Visual Studio IDE.
(Metodología de desarrollo de proyectos con Unity
en CIPSA, 2021).
2.5 Arquitectura
En este caso, la arquitectura permite la construcción
de un sistema, en este caso un videojuego, que se
realizó en las primeras etapas de su desarrollo y
permitirá su mantenimiento y crecimiento en el
futuro. Por lo tanto, la arquitectura de software
define la estructura que debe tener el producto de
software, las partes que debemos desarrollar y la
forma en que deben estar conectadas o relacionadas
con el trabajo general. Se define en un alto nivel a
través de una serie de patrones y abstracciones, que
se utilizan en el desarrollo de software y la
interacción entre sus diversas partes.
Según (García, 2014) Aunque existen muchos tipos
y descripciones complejas de arquitectura de
videojuegos, en su forma más simple, podemos
considerar dos grandes piezas:
La interfaz es responsable de brindar
retroalimentación a la experiencia del jugador
procesando los comandos de entrada del usuario
(teclado, mouse, etc.) y presentando el juego (a
través de gráficos, motor de sonido, etc.)
El back-end se encarga de especificar las reglas de
la lógica del juego, determinar la dinámica de
interacción con los objetos, proporcionar
comportamientos a los personajes no jugadores
(NPC), coordinar sus interacciones, etc.
Se propuso la siguiente arquitectura para simplificar
el funcionamiento de un videojuego en un bucle
principal en el que se realizan tres acciones en cada
iteración del bucle:
El motor del juego recopila la entrada del usuario y
comunica los comandos que el jugador elige ejecutar
a la vista lógica.
ISSN: 2773-7489
Correo: editor@istvidanueva.edu.ec
URL: http://nexoscientificos.vidanueva.edu.ec/index.php/ojs/index
Fecha de aceptación: noviembre 2022
Revista Nexos Científicos
Julio-Diciembre 2022 pp. 32-41
Volumen 1, Número 2
Fecha de recepción: septiembre 2022
36
La lógica del juego determina lo que se debe
presentar al usuario en función de los comandos de
entrada del usuario, el estado actual del juego y las
acciones realizadas por el NPC, y comunica esto al
motor del juego. El motor del juego debe utilizar
recursos gráficos y sonoros para transmitir el nuevo
estado del juego al usuario.
Figura 1. Simplearquitectura de videojuegos.
3. RESULTADOS Y DISCUSIÓN
3.1 desarrollo de juegos
Para contextualizar el desarrollo de este videojuego,
es necesario conocer el estilo que representará su
implementación, es decir, qué tipo de videojuego se
desarrollará, cuáles serán las limitaciones que esto
conlleva y cómo es este tipo de videojuego.
normalmente jugado (Marcos, 2012).
Para la aceptación pública de un videojuego se
tienen en cuenta 3 factores que son totalmente
relevantes a la hora de evaluarlo: jugabilidad,
entretenimiento e historia; Es por ello que, por
decisión del desarrollador, se realiza un videojuego
tipo plataforma, que tiene como objetivo alcanzar
una meta en un tiempo determinado, adquiriendo
puntos, bonificaciones y evaluación en el terminal
para cada escenario (Marcos, 2012).
3.2 Servidor web
WebGL es una especificación estándar actualmente
en desarrollo para mostrar gráficos 3D en un
navegador web. WebGL le permite mostrar gráficos
3D acelerados por hardware (GPU) en páginas web
sin necesidad de instalar complementos en ninguna
plataforma compatible con OpenGL 2.0 y OpenGL
ES 2.0. Nos permitirá ejecutar los juegos que
hicimos en Unity en el navegador sin instalar ningún
complemento. Esta tecnología genera un script
JavaScript, el cual convierte nuestro script C# a
JavaScript para su posterior ejecución en la página
web. Cuando construimos un proyecto WebGL,
Unity crea una carpeta que contiene los siguientes
archivos:
Incruste el contenido en el archivo index.html de
la página web.
Un archivo JavaScript que contiene el código para
el reproductor.
El archivo. mem contiene una imagen binaria que
se usa para inicializar el montón del reproductor.
Un archivo .data que contiene datos de activos y
escenas.
Algunos archivos JavaScript ayudan a inicializar y
cargar el reproductor. Para reproducir el juego de
forma estable, se inicia la página web que contiene
toda la información del videojuego a partir de los
archivos generados por Unity WebGL (Maths, s/f).
Para instalar el Manager y el Player en el servidor,
es necesario importar las bibliotecas de Apache
antes de generar el ejecutable del videojuego, para
ahorrar tiempos de carga y contenido en segundo
plano (teniendo en cuenta que el servidor de carrera
local es Apache).
Finalmente se realiza un Launch Compilation que
generará los archivos antes mencionados y una
sencilla página web donde se almacenará el Unity
Plug-in que permitirá jugar al videojuego.
Figura 2. Carga enchufable.