desarrollo de un videojuego con contenido histórico
TRANSCRIPT
Desarrollo de un
videojuego con
contenido histórico
Grado en Ingeniería Multimedia
Trabajo Fin de Grado Autor:
Miguel Ángel Martínez López
Tutor/es:
Rosana Satorre Cuerda
Carlos José Villagrá Arnedo
Septiembre 2021
2
3
Justificación y objetivos
Desde que tengo uso de razón los videojuegos siempre han sido parte de
mi vida, gracias a ellos he podido sumergirme en una infinidad de mundos, cada
uno con sus propias características y peculiaridades, he podido estar en la carne
de protagonistas únicos, cada uno con su propia historia y desafíos. Además,
estas experiencias no solo me han proporcionado una vía de escape para
desconectar de la realidad, sino también he conseguido conocimientos y
aprendido lecciones muy valiosas.
Es por ello por lo que decidí formar parte de este mundo y aportar mi
pequeño granito de arena, ya no quería ser únicamente un jugador, quería crear
nuevos mundos con los que ayudar a la gente a aprender, vivir experiencias
únicas y pasarlo bien.
Hace 4 años que empecé en el Grado de Ingeniería Multimedia de la
Universidad de Alicante y, ha sido el primer paso para adentrarme en el mundo
de los videojuegos que tanto me apasiona, tras estos 4 años y varios proyectos
desarrollados es el momento de finalizar esta etapa y continuar evolucionando.
Con este proyecto mi objetivo principal es conseguir experiencia en el
desarrollo de videojuegos con todo lo que ello conlleva como la planificación, el
análisis y el diseño del videojuego, además de mejorar mi conocimiento en el
motor Unity, mejorar mis habilidades de programación y aumentar mi
conocimiento en programas de modelado en 3D.
Otro de los objetivos es aprender a trabajar en grupo con otro
departamento como ha sido el de historia, ya que el proyecto se centra en un
videojuego de historia basado en hechos reales. Por último, me gustaría
4
conseguir que los jugadores aprendan hechos históricos a la vez que se
entretienen jugando.
5
Agradecimientos
Agradecer a mis tutores Carlos José Villagrá Arnedo y Rosana Satorre Cuerda
por ayudarme durante el transcurso del proyecto y aconsejarme en las reuniones.
Agradecer a mi familia por haberme dado una buena educación, motivarme a
seguir adelante cada día y aguantarme días en los que no podía hacerlo ni yo. Su
compañía ha sido imprescindible, sobretodo en tiempos de pandemia.
Agradecer a mi pareja, Marina por todo el apoyo que me ha dado durante el
transcurso de la carrera, animándome y estando ahí en todo momento para ayudarme a
superar las distintas adversidades.
Finalmente, agradecer a mis compañeros Daniel Pelegrín Ferrándiz y Daniel
Arranz Carazo del grado en Historia de la Facultad de Filosofía y Letras de la
Universidad de Alicante por el trabajo conjunto.
6
Dedicado a mi familia, por aguantarme y apoyarme.
A Marina, por estar ahí apoyándome en todo momento.
A Carlos y Rosana, por ayudarme durante el transcurso del proyecto.
A Pía y Tamara, por estos cuatro años de universidad.
7
8
Contenido 1. Introducción ........................................................................................................ 12
2. Marco teórico ...................................................................................................... 14
2.1 ¿Qué es un videojuego? ............................................................................... 14
2.2 Motores de videojuegos ............................................................................... 16
2.2.1 Unity ............................................................................................................ 17
2.2.2 Unreal Engine ............................................................................................ 18
2.2.3 Godot ........................................................................................................... 19
2.2.4 Cry Engine .................................................................................................. 21
2.3 Géneros ............................................................................................................... 22
2.3.1 Acción.......................................................................................................... 22
2.3.2 Disparos ...................................................................................................... 23
2.3.3 Estrategia .................................................................................................... 24
2.3.4 Carreras ....................................................................................................... 25
2.3.5 Deportes ...................................................................................................... 26
2.3.6 Rol ................................................................................................................ 27
2.3.7 Aventura ..................................................................................................... 28
2.4 Evolución de los videojuegos históricos ........................................................ 30
2.5 Evolución del género de aventura gráfica ..................................................... 32
2.6 Referentes ........................................................................................................... 33
2.7 Videojuegos y educación ................................................................................. 35
3. Objetivos .............................................................................................................. 36
3.1 Objetivo principal ............................................................................................. 36
9
3.2 Objetivos específicos ..................................................................................... 36
4. Metodología ........................................................................................................ 39
4.1 Modelo de desarrollo iterativo ........................................................................ 39
4.1.1 Iteración 1: Investigación .......................................................................... 40
4.1.2 Iteración 2: Primer prototipo ................................................................... 40
4.1.3 Iteración 3 y 4: Segundo prototipo .......................................................... 41
4.1.4 Iteración 5: Arte ......................................................................................... 41
4.1.5 Iteración 6 y 7: Producto Final ................................................................. 41
4.2 Kanban ................................................................................................................ 42
4.3 Herramientas utilizadas ................................................................................... 42
4.3.1 Trello ........................................................................................................... 42
4.3.2 Toggl track .................................................................................................. 44
4.3.3 Visual Studio .............................................................................................. 44
4.3.4 Audacity ..................................................................................................... 45
4.3.5 Gimp ............................................................................................................ 46
4.3.6 Blender ........................................................................................................ 47
4.3.7 Twine ........................................................................................................... 47
5. Documento de Diseño del Videojuego (GDD) .................................................... 49
5.1 Elección del motor ............................................................................................ 49
5.2 Concepto del videojuego ................................................................................. 50
5.2.1 Historia ....................................................................................................... 50
5.2.2 Objetivo ....................................................................................................... 51
10
5.2.3 Género ......................................................................................................... 51
5.2.4 Público......................................................................................................... 52
5.3 Personajes ....................................................................................................... 53
5.4 Escenario ........................................................................................................ 55
5.5 Mecánicas del juego .......................................................................................... 58
5.5.1 Controles ..................................................................................................... 58
5.5.2 Movimiento y cámara ............................................................................... 59
5.5.3 Mapa ............................................................................................................ 59
5.5.4 Atributos ..................................................................................................... 59
5.5.5 Conversaciones y múltiples finales ........................................................ 61
5.5.6 Capítulos ..................................................................................................... 62
5.5.7 Enciclopedia ............................................................................................... 62
5.5.8 Sistema de guardado ................................................................................ 62
5.5.9 Inventario e interacción con objetos ....................................................... 63
5.6 Interfaces ............................................................................................................ 64
5.6.1 Menú Inicio ................................................................................................ 64
5.6.2 Mapa ............................................................................................................ 64
5.6.3 Menú InGame ............................................................................................ 65
5.6.4 Inventario ................................................................................................... 66
5.6.5 Enciclopedia ............................................................................................... 67
5.6.6 Opciones ..................................................................................................... 68
6. Desarrollo e implementación ................................................................................. 69
6.1 Funcionamiento básico Unity ..................................................................... 69
11
6.1.1 GameObject, Componentes y assets ................................................... 70
6.1.2 Prefab .......................................................................................................... 72
6.1.3 Animator ..................................................................................................... 73
6.1.4 Scripts .......................................................................................................... 74
6.1.5 Ciclo de ejecución funciones de Unity ................................................... 76
6.2 Implementación del videojuego ................................................................. 79
6.2.1 Bucle Inicial............................................................................................. 79
6.2.2 Bucle del juego ....................................................................................... 80
6.2.3 Movimiento y colisiones ....................................................................... 81
6.2.4 Cámara ........................................................................................................ 83
6.2.5 Atributos del personaje ............................................................................ 85
6.2.6 Interacción con NPC’s y objetos .............................................................. 86
6.2.7 Conversaciones .......................................................................................... 88
6.2.8 Interfaces ..................................................................................................... 89
6.2.9 Progreso en la historia .............................................................................. 94
6.2.10 Sistema de guardado .............................................................................. 95
6.2.11 Rigging y animación de los personajes ................................................ 96
7. Conclusiones ..................................................................................................... 100
8. Bibliografía........................................................................................................ 102
12
1. Introducción
El sector de los videojuegos es un sector en auge, no solo por las cifras que
genera la industria en términos de ventas, sino que también por el fenómeno
cultural en el que se están convirtiendo los videojuegos. Por otro lado, este
auge también trae consigo las críticas y valoraciones negativas por parte de
personas no relacionadas con el entorno de los videojuegos llegando a decir
que los videojuegos solo generan violencia.
Este proyecto pretende desmentir estas declaraciones, demostrando que
los videojuegos pueden tener un lado educativo y enseñar a los jugadores
habilidades que se ponen en práctica en el día a día como el desarrollo
cognitivo, el trabajo en equipo y la toma de decisiones, además de fomentar
la lectura y la investigación.
El proyecto consta del desarrollo de un videojuego de género histórico
basado en hechos reales realizado en colaboración con estudiantes del grado
en Historia de la Facultad de Filosofía y Letras de la Universidad de Alicante,
y la Catedra Santander-UA de Transformación Digital.
El desarrollo del videojuego incluye todas las fases de desarrollo
necesarias para realizar cualquier producto software: planificación, análisis,
diseño, implementación y pruebas. El videojuego desarrollado pertenece al
género de aventura gráfica combinado con el género histórico y pretende
enseñar a los jugadores una forma de entretenerse mientras se aprende
historia.
Para el videojuego se han estudiado diferentes metodologías y
herramientas, el motor a utilizar será Unity y, para que resulte más fácil la
13
organización del proyecto se usará la metodología Kanban junto a la
herramienta Trello.
A continuación, en el capítulo 2 se describen los estudios y elementos
conceptuales que han servido de base para realizar la investigación y
desarrollo del proyecto. En el capítulo 3 se describen los objetivos principales
y específicos del trabajo realizado. En el capítulo 4, se explica brevemente la
metodología y las herramientas que han sido utilizadas para el desarrollo del
proyecto. En el capítulo 5 se encuentra el documento de diseño del
videojuego, el cual incluye las bases principales en las que se basa el juego a
desarrollar. En el capítulo 6 se explica el funcionamiento básico de Unity,
además del proceso de desarrollo e implementación del proyecto. Finalmente,
en el capítulo 7 se describe la conclusión después de haber realizado todo el
proyecto y teniendo en cuenta los resultados obtenidos.
14
2. Marco teórico
2.1 ¿Qué es un videojuego?
El auge de los videojuegos en la actualidad es indudable. El mercado
internacional del videojuego está en constante crecimiento, en el año 2019
creció un 9,6% con respecto al año anterior alcanzando una facturación total
de 133.670 millones de euros (Figura 2.1) (AEVI, 2020)1.
Figura 2.1. Facturación internacional por segmentos en el año 20192.
¿Qué es un videojuego? Según las definiciones, un videojuego es una
aplicación interactiva que está orientada al entretenimiento y permite simular
1 Asociación Española de Videojuegos (AEVI)
2 Fuente:
http://www.aevi.org.es/documentacion/el-anuario-del-videojuego/
15
experiencias en la pantalla de un televisor, un ordenador u otro dispositivo
electrónico (DefinicionDe, 2013).
Los videojuegos se diferencian de otras formas de entretenimiento en que
deben de ser interactivos ya sea a través de un teclado, un mando o su propio
cuerpo a través de cámaras como por ejemplo Kinect o EyeToy (Figura 2.2)
para la PS2.
Figura 2.2. Videojuego EyeToy Play3.
Quizás sea por esta interactividad por la que cada vez más personas se
sienten atraída por los videojuegos, ya que puedes formar parte de la historia
a diferencia de una película o una serie.
3 Fuente: https://es.ign.com/
16
2.2 Motores de videojuegos
A la hora de desarrollar un videojuego es muy importante decidir
qué motor se va a emplear para el desarrollo de este. Un motor de juego
es un sistema diseñado para la creación de videojuegos que agrupa un
conjunto de aplicaciones necesarias para su desarrollo (GamerDic.es,
2013).
Los principales sistemas que nos proporcionan los motores de
videojuegos son los siguientes:
• Motor Gráfico
• Motor de físicas
• Motor de sonido
• Scripting4
• Motor de colisiones
Hoy en día, cada vez es menos común usar un motor de videojuego
propio ya que hay que realizar una gran inversión de tiempo y recursos a
la hora de crearlo. Hasta las grandes compañías que cuentan con motores
propios en desarrollo como EA5 han llegado a usar motores comerciales
en sus últimos videojuegos Star Wars Jedi: Fallen Order y Star Wars
Squadrons.
Además, la mayoría de los motores comerciales proporcionan
herramientas que aportan facilidades a la hora de trabajar de una forma
4 Capacidad que tiene el sistema de modificar la lógica del programa usando un lenguaje de
programación.
5 Electronic Arts
17
visual y escalable aparte de proporcionar licencias gratuitas siempre y
cuando el videojuego desarrollado no supere cierta cantidad de ingresos.
2.2.1 Unity
Unity (Figura 2.3) es un motor de videojuegos multiplataforma,
muy popular entre los desarrolladores indies gracias a la cantidad de
herramientas y funcionalidades que aporta además de su versatilidad para
realizar videojuegos de cualquier género, lo que se traduce en una mayor
facilidad a la hora de desarrollar un videojuego. En Unity se han realizado
videojuegos exitosos como por ejemplo Cuphead, Pillars of Eternity, Pokemon Go,
entre otros (HighGroundGaming, 2020).
Figura 2.3. Logo de Unity.
Unity utiliza el lenguaje C# para el scripting debido a que este lenguaje
controla el manejo de la memoria automáticamente y gracias a esto evita las fugas
de memoria o memory leaks6. Además del lenguaje, Unity cuenta con una tienda
6 Una fuga de memoria es un error de software que ocurre cuando un bloque de memoria
reservada no es liberado.
18
de recursos para tu juego que pueden ser de pago o gratuitos, como por ejemplo
sistemas de nubes, agua, modelos 3d, etc.
Unity es gratuito si ganas menos de 100 mil dólares anuales, si ganas más
de 200 mil dólares costará 34 dólares al mes y, por último, al pasar esta barrera
serán 150 dólares mensuales.
2.2.2 Unreal Engine
Unreal Engine (Figura 2.4) es uno de los grandes motores de videojuegos
en la actualidad debido a su gran versatilidad y herramientas que incluye ya que
no requiere de extensiones7 para funcionar a pleno rendimiento. Entre las
herramientas incluye editor de video, estudio de sonido y código o renderización
de animaciones, entre otras características. Este motor ha sido empleado para
realizar juegos triples A8 como por ejemplo Kingdom Hearts 3, Fortnite, Dragon
Quest XII.
Figura 2.4. Logo de Unreal Engine.
Unreal Engine utiliza C++ para el scripting, aunque existe una herramienta
dentro del motor llamada Blueprint que permite programar comportamiento sin
7 Son programas que solo funcionan anexados a otro e incrementan sus funcionalidades.
8 Clasificación informal utilizada para videojuegos producidos y distribuidos por una
distribuidora o editor importante.
19
necesidad de escribir ninguna línea de código. Uno de los principales problemas
de este motor reside en la dificultad que presenta a usuarios no familiarizados
con el entorno, para evitar esto existen una gran variedad de tutoriales para
ayudar a los principiantes con el motor.
Unreal también cuenta con una tienda de recursos, aunque no es tan
amplia como la de Unity también ofrece recursos interesantes para desarrollar.
Por último, este motor es gratuito hasta alcanzar la siguiente condición: en caso
de que se comercialice el producto realizado con este motor a partir de los 3000
dólares de ganancias, se deberá pagar un 5% cada trimestre (GameIndustry.biz,
2020).
2.2.3 Godot
Godot (Figura 2.5) es un motor de videojuegos multiplataforma igual que
Unity, pero cuenta con la ventaja de que es completamente open-source9 y existe
gente que continuamente está arreglando bugs del motor y añadiendo nuevo
contenido. Es un buen motor para realizar juegos en 2D y, a partir de su
actualización 3.0 añadió una gran cantidad de mejoras para realizar juegos 3D
(ConceptArtEmpire, 2020). Además, cuenta con una gran cantidad de
herramientas que permiten trabajar sin que tengas que desarrollar desde cero.
9 Es un modelo de desarrollo de software basado en la colaboración de los miembros de la
comunidad.
20
Entre sus puntos fuertes nos encontramos con un sistema de escenas y
nodos que nos permite organizar nuestro videojuego de una forma muy fácil y
permite la escalabilidad del proyecto.
Figura 2.5. Logo de Godot.
Godot incluye varios lenguajes de programación a la hora de realizar
scripting, entre ellos tenemos C++, C# y GDScript (variante de Python), esto hace
que sea fácil de programar y aprender.
Por último, otro de los puntos fuertes de este motor es que es totalmente
gratuito independientemente de la cantidad de beneficios generados con el
proyecto realizado.
21
2.2.4 Cry Engine
CryEngine (Figura 2.6) es un motor de videojuegos 3D muy potente
dirigido principalmente a aquellos desarrolladores que quieran crear
videojuegos con gráficos de última generación para realizar juegos muy realistas
y contenido de calidad altamente detallado. Además, cuenta con un soporte muy
sólido para realidad virtual y efectos visuales avanzados (ConceptArtEmpire,
2020). Como los motores anteriores, CryEngine también cuenta con una serie de
herramientas para facilitar el desarrollo de los proyectos.
Con este motor se han desarrollado videojuegos como la saga de Crysis,
Ryse: Son of Rome o Monster Hunter Online entre otros.
Figura 2.6. Logo de CryEngine.
El lenguaje de programación que utiliza el motor es Lua, un lenguaje de
alto nivel diseñado para el uso embebido en aplicaciones. Uno de los puntos
débiles de este motor es que tiene la reputación de ser difícil de usar y aprender
por lo que los desarrolladores novatos deberían empezar por otro motor
anteriormente si quieren probar CryEngine.
22
Por último, el precio de este motor es gratuito siempre y cuando el
beneficio no pase de 5000 dólares, una vez pasa este margen CryEngine te cobrará
una tasa del 5% de estos beneficios.
2.3 Géneros
Actualmente existe una gran cantidad de videojuegos, y una forma de
clasificarlos es mediante géneros, que están basados principalmente en su
jugabilidad10. Un género de videojuego es definido según su conjunto de
limitaciones en la jugabilidad y son clasificados independientemente de su
ambientación (Adams, 2006).
Un videojuego puede pertenecer a varios géneros a la vez, algunos de los géneros
principales son los siguientes:
2.3.1 Acción
Un videojuego de acción es aquel en el que el jugador debe usar su
destreza, velocidad y tiempo de reacción. Se popularizaron en los arcades en los
años 1970 y 1980, la gran mayoría de estos videojuegos contaban con una tabla
de puntuaciones con la que los jugadores podían comprobar a qué nivel estaban
sus habilidades (Genre and game studies, 2013).
El género de acción es el más amplio y engloba muchos subgéneros como por
ejemplo lucha, beat’em up11, plataformas, etc.
10 Término empleado en el diseño y análisis de juegos que describe la calidad del juego en
términos de sus reglas, funcionamiento y de su diseño como videojuego. 11 Estos videojuegos ofrecen un combate entre el protagonista y un número elevado de
oponentes.
23
Dentro de este género nos encontramos juegos como la saga de Mario (Figura
2.7), Zelda, Monster Hunter…
Figura 2.7. Super Mario Bros12.
2.3.2 Disparos
Los videojuegos de disparos, conocidos también como shooters. Consisten
principalmente en que el protagonista hace un uso continuado de armas de fuego
para abrirse paso y seguir avanzando dentro del juego. Dentro del género de
disparos nos encontramos dos subgéneros principales: disparos en primera
persona y disparos en tercera persona.
Los videojuegos de disparos en primera persona también conocidos como
FPS13 , manejamos al protagonista de forma que vemos en la pantalla lo que ve
12 Fuente: Nintendo.es
13 First Person Shooter
24
nuestro personaje. En cambio, en los videojuegos de disparos en tercera persona
o TPS14 se juega con un personaje visto desde atrás o desde una vista cenital.
Dentro de este género destacan juegos como Doom o Valorant (Figura 2.8), entre
otros.
Figura 2.8. Valorant15.
2.3.3 Estrategia
El género de estrategia se caracteriza por la manipulación a un numeroso
grupo de personajes, objetos o datos. Destaca en este género el uso de la
inteligencia y la planificación para lograr los distintos objetivos y así ganar o
avanzar en el juego. La mayoría de los videojuegos de este género son de temática
bélica, aunque también existen de estrategia económica, social o empresarial.
Existen dos grandes subgéneros: estrategia en tiempo real y estrategia por turnos.
14 Third Person Shooter
15 Fuente: https://playvalorant.com/en-us/
25
Dentro de los videojuegos de estrategia en tiempo real los jugadores
tendrán que pensar rápidamente ya que cada segundo es importante para la
planificación si no quieren perder la partida, mientras que en la estrategia por
turnos los jugadores suelen tener todo el tiempo que necesiten para idear sus
siguientes movimientos y realizar todo tipo de planes para lograr el objetivo.
Los videojuegos más conocidos que pertenecen a este género son: Total
War, Final Fantasy, Age of Empires… (Figura 2.9)
Figura 2.9 Age of Empires II16.
2.3.4 Carreras
A veces este género es considerado como una subcategoría dentro de los
videojuegos de deporte, los videojuegos de carreras o de conducción. El objetivo
suele ser llegar a una meta antes que sus contrincantes o dentro de un tiempo
límite. Algunos de estos juegos recrean circuitos de competición existentes en el
mundo real, como por ejemplo los circuitos de Fórmula 1.
16 Fuente: https://store.steampowered.com/app/813780/Age_of_Empires_II_Definitive_Edition/
26
Según lo realista que sea la conducción, este género se divide en dos:
Arcade y simuladores.
Los videojuegos de carreras arcade tienen una conducción más ficticia sin
tener en cuenta muchos aspectos del mundo real y con vehículos y objetos
imaginarios como por ejemplo Mario Kart.
En cuanto a los videojuegos de carreras de simulación suelen tener una
conducción más real, utilizando modelos reales de vehículos y circuitos reales.
Uno de los ejemplos más destacados de este tipo de juegos sería el Forza Horizon
(Figura 2.10).
Figura 2.10. Forza Horizon 417.
2.3.5 Deportes
Este género de videojuegos consiste en simular deportes del mundo real y
la mecánica del juego es la misma que en el deporte original, aunque a veces se
incorporen algunos extras. Hay una amplia lista de deportes para los que se han
hecho videojuegos: fútbol, baloncesto, tenis, juegos olímpicos, etc.
17 Fuente: https://www.somosxbox.com/analisis-de-forza-horizon-4-xbox-one/795576
27
Entre los ejemplos más conocidos encontramos toda la saga del FIFA, NBA
2K (Figura 2.11), Madden NFL…
Figura 2.11. NBA 2k2118.
2.3.6 Rol
Estos videojuegos suelen estar muy emparentados con los de aventura ya
que la gran mayoría de videojuegos de rol tienen una historia profunda, además
de una evolución de los personajes protagonistas a medida que esta historia
avanza.
Este género está inspirado mayoritariamente por los juegos de rol de mesa
como Dungeons & Dragons aunque otras fuentes de inspiración fueron
videojuegos de aventura, de estrategia, novelas de fantasía, etc. (The History of
Console RPGs, 2010)
18 Fuente: https://2k.com/en-US/game/nba-2k21-mamba-forever-edition-next-gen/
28
Los videojuegos de rol tienen una gran diferencia respecto a los de acción,
y es que los combates de los RPG suelen ser un desafío táctico, además de la
gestión del inventario, elecciones de diálogo y sistema de mercado para comprar
y vender objetos.
Algunos de los juegos más conocidos de este género son Final Fantasy,
Pokémon (Figura 2.12) entre otros.
Figura 2.12. Combate Pokémon19.
2.3.7 Aventura
Los videojuegos de aventura son aquellos donde el protagonista tiene que
avanzar en la historia interactuando con diversos personajes y objetos, están
caracterizados por la exploración e investigación del entorno. El enfoque que
tienen estos videojuegos permite tomar prestados elementos de otros medios
como son las películas y la literatura, además abarcan un amplio abanico de
temas incluyendo fantasía, ciencia ficción, misterio, terror, histórico, etc. Dentro
del género de aventura encontramos que hay muchos subgéneros.
El primero de los géneros de aventura en aparecer fue la aventura
conversacional, donde el jugador interactúa con el videojuego mediante texto,
19 Fuente: https://www.wikiwand.com/en/Charmander
29
tecleando la acción a realizar después de leer la situación en la que se encontraba
el protagonista.
Otro de los subgéneros sería la aventura interactiva, famosa en Japón y
otros países asiáticos, también conocida como novelas visuales. En vez de
analizadores de texto como en la aventura conversacional, estos videojuegos se
caracterizan por el uso de menús en pantalla para todo, desde interactuar con la
historia hasta navegar por los escenarios.
La aventura gráfica es otro de los subgéneros más conocidos, introducida
por la compañía Sierra On-Line con el videojuego King’s Quest en 1984, donde
introdujeron nuevos sistemas y mecánicas de juego. Apple Macintosh desarrolló
en 1984 una interfaz llamada “apuntar y clic”, el primer juego desarrollado con
esta interfaz fue Enchanted Scepters pero no fue hasta el año siguiente cuando la
empresa ICOM Simulations lanzó su juego Deja Vu, el cual quitó por completo el
programa de análisis de texto y solo tenía la interfaz de “apuntar y clic” (Eronen,
2015). Un ejemplo muy conocido de este tipo de juegos es la saga de Monkey Island
o Maniac Mansion (Figura 2.13).
Figura 2.13. Maniac Mansion20.
20 Fuente: https://www.polygon.com/2014/7/21/5924899/maniac-mansion-ron-gilbert-lucasarts
30
Por último, otro de los subgéneros de aventura sería rompecabezas. Este tipo
de videojuegos consisten en descubrir cómo resolver mecanismos complejos para
conseguir avanzar en la trama, son muy típicos los juegos de “escapar de la
habitación” en los que el jugador deberá interactuar con su entorno para
conseguir escapar del escenario en el que se encuentra.
2.4 Evolución de los videojuegos históricos
Los videojuegos históricos basados en hechos históricos estudiados por
expertos comenzaron a destacar en el año 1997 con el videojuego Age of Empires.
Este videojuego de estrategia en tiempo real fue desarrollado por Ensemble
Studios y publicado por Microsoft, actualmente la saga tiene tres títulos
principales. La primera parte consta desde la Edad de Piedra hacía la Edad de
Hierro, la segunda parte se centra en la Edad Media y, por último, la última parte
se centra en la primera etapa de la edad moderna, desde el año 1421 hasta el año
1850 (EducacionTresPuntoCero, 2020). A lo largo de sus tres partes profundiza y
explora diferentes periodos históricos ahondando en el desarrollo de las
civilizaciones y los avances de sus tecnologías. Los jugadores pueden elegir una
civilización entre una gran variedad, fortalecerla y luchar contra los enemigos
que se encuentren en la partida. Además de todo ello, estos juegos cuentan con
una enciclopedia dentro del videojuego, en ella el jugador dispondrá de una gran
cantidad de información para aprender sobre las distintas civilizaciones.
En el año 2003 nació una de las sagas más grandes de shooters como es Call of
Duty, en sus primeros 3 juegos, el modo historia se sitúa en la Segunda Guerra
Mundial para cubrir diferentes eventos ocurridos en este conflicto. Por otra parte,
en los videojuegos Call Of Duty ‘Black Ops’, la historia se centrará en la época de
la Guerra fría y en varios momentos diferentes de su evolución.
31
Otra saga de videojuegos muy conocida es Civilization. Su primer juego fue
creado en 1991 y tuvo bastante éxito, pero fue en 2005 con Civilization IV cuando
comenzó su momento de expansión en cuanto a jugadores. Esta saga se basa en
juegos de estrategia por turnos en el que manejaremos un imperio a elegir entre
una amplia variedad en la que se incluyen chinos, romanos, cartagineses, indios,
vikingos, etc. Para ganar, deberemos llevar a nuestra civilización hacia lo más
alto en los diferentes terrenos: ciencia, religión, guerra, turismo.
Por último, tenemos una saga conocida por tener una ambientación muy
cuidadosa, teniendo detrás un grupo de historiadores realizando una gran
investigación previamente a cada videojuego, estudiando personajes históricos,
momentos destacados en la historia y lugares emblemáticos. Esta saga es
Assassin’s Creed, en ella, los diferentes protagonistas de los juegos deben viajar
por diferentes momentos de la historia a través de una máquina conocida como
‘Animus’ para descubrir un conflicto entre asesinos y templarios. Con los
diferentes juegos de esta colección de nueve juegos los jugadores han podido
viajar a diferentes épocas históricas como las Cruzadas, el Renacimiento o la
Revolución Francesa entre muchas otras. Esta saga sigue activa creando nuevos
videojuegos, el último en salir al mercado fue Assassins Creed: Valhalla basado en
la historia vikinga, contando en él tanto sus tradiciones como personajes
históricos como, por ejemplo, Ragnar Lothbrok.
32
2.5 Evolución del género de aventura gráfica
El género de las aventuras gráficas surgió en 1984 a partir de las aventuras
conversacionales. En estas aventuras se narraba la historia mediante texto y el
jugador debía teclear la acción que el protagonista llevaría a cabo. El primer juego
del género de aventura gráfica fue King’s Quest, además en este videojuego se
introdujeron también 16 colores y el cursor se movía, aunque el jugador seguía
teniendo que jugar a través del teclado (IslaDeMonos, 2020).
Un poco más tarde apareció en escena LucasFilm con su videojuego Maniac
Mansion que marcaría la tendencia de seguir guiones donde el humor sería la
clave principal. Además, se introdujo uno de los rasgos más representativos del
género: el “apuntar y click” mediante el cual los jugadores podían dejar de lado
el teclado y utilizar el ratón para jugar.
En 1990 nace por parte de LucasFilm probablemente uno de los mejores juegos
del género de la aventura gráfica Monkey Island, el juego tuvo un éxito rotundo,
consolidándose como una de las principales referencias. La historia trata de un
joven aspirante a pirata que acaba cruzándose en el camino de un malvado pirata,
la premisa es sencilla y funcionó gracias al humor, diálogos ingeniosos y la
cantidad de detallismo dentro de este.
A pesar del gran éxito que tenían las aventuras gráficas a mitad de los 90 el
género comenzó a entrar en declive, hasta que en 2010 gracias a la innovación de
compañías como TelltaleGames, creando juegos como The Walking Dead o The Wolf
Among Us, estos videojuegos supusieron una evolución y reactivación del género,
adquiriendo más ritmo y acción narrativa, además de tomar la toma de
decisiones como un elemento distintivo.
Posteriormente a estos juegos han surgido juegos del género de gran éxito
como Life is Strange, Beyond: Two Souls o Detroit, entre otros.
33
2.6 Referentes
Los videojuegos que se han tomado como referentes para realizar este
proyecto han sido principalmente Monkey Island y Kingdom Come Deliverance,
combinándolo con elementos básicos de videojuegos con rompecabezas como
son llaves, botones, palancas, buscar objetos perdidos, etc.
Monkey Island (Figura 2.14) ha sido un referente para muchos desde su salida.
Este videojuego destaca por ser una aventura gráfica con puzles y acertijos, a la
vez que diálogos ingeniosos, detallismo y mucho humor. La historia está
protagonizada por Guybrush Treepwood, un aspirante a pirata sin experiencia
que desembarca en la isla Melee para convertirse en un lobo de mar.
Figura 2.14. The Secret of Monkey Island21.
El otro videojuego que ha sido un referente para el proyecto es Kingdom Come
Deliverance (Figura 2.15), inspirado en el año 1403 en el Reino de Bohemia que
sufre la muerte de su rey Carlos IV creando problemas familiares y disputas por
21 Fuente: https://eloutput.com/noticias/videojuegos/secret-of-monkey-islan-edicion-
coleccionista/
34
ver quién será el siguiente gobernador. El protagonista de este videojuego es
Henry, el hijo de un herrero que vive junto a su familia en el pueblo de Skalice,
un día de repente un ejército llega al pueblo y arrasa todo a su paso matando a
sus padres. Desde este momento Henry jura vengarse y comienza su aventura
para encontrar a los culpables. Uno de los puntos fuertes del videojuego es que
las decisiones que vas tomando en cada diálogo influirán en un futuro, pudiendo
meterse en problemas y peleas. Además, este videojuego tiene una base histórica
muy cuidada ya que los hechos son históricos.
Figura 2.15. Portada Kingdom Come22.
22 Fuente: https://www.microsoft.com/en-in/p/kingdom-come-deliverance/
35
2.7 Videojuegos y educación
Durante años, los videojuegos han sido considerados una mala influencia
para los niños y adolescentes. Sin embargo, pueden convertirse en una
herramienta poderosa para que estos desarrollen habilidades, además de mejorar
su capacidad de planificación, crear estrategias, trabajar en equipo, entre otras
(Educo.org, 2015). Entre las habilidades que pueden desarrollarse jugando a
videojuegos tenemos las siguientes:
Desarrollo cognitivo: Cheryl K. Olson, profesora de psiquiatría de la Escuela
de Medicina de Harvard asegura que los videojuegos ayudan al desarrollo
cognitivo del cerebro debido a que los niños tienen que tomar decisiones y
probar a resolver el juego utilizando diferentes opciones.
Fomenta la lectura y la investigación: El contenido de juegos como Age of
Empires puede motivar a los jugadores a leer e investigar dentro del juego, ya
que incluye un apartado únicamente con información sobre el juego y las
distintas civilizaciones.
Toma de decisiones: Otro de los valores que nos pueden ofrecer los
videojuegos, en la mayoría de los juegos de estrategia se tiene un límite de
recursos y los jugadores necesitarán saber cómo usarlos de manera efectiva,
preguntándose a sí mismos si usar el recurso ahora o guardarlo para más
tarde.
Trabajo en equipo: Muchos juegos incluyen la competición dentro de ellos,
esta competición sana provoca que los niños se esfuercen y aprendan a
trabajar en equipo.
36
3. Objetivos
3.1 Objetivo principal
El objetivo principal del proyecto es la creación de un videojuego con un
contenido basado en una época de la historia, en concreto, sobre la sociedad de
la segunda mitad del siglo XVIII. El juego será protagonizado por Olympe de
Gouges, también conocida como Marie Gouze, escritora de la Declaración de los
Derechos de la Mujer y la Ciudadana. Los jugadores vivirán la vida de Olympe en
esta época, de manera que los jugadores podrán aprender tanto las vivencias de
Marie Gouze como los distintos hechos históricos sucedidos en Francia a lo largo
del siglo XVIII a través de un videojuego.
El desarrollo del videojuego incluirá todas las fases de desarrollo de un
producto software: planificación, análisis, diseño, implementación y pruebas.
Para la creación del contenido histórico el proyecto se realiza de forma
conjunta con estudiantes del grado en Historia, de la Facultad de Filosofía y
Letras de la Universidad de Alicante y la Cátedra Santander-UA de
Transformación Digital.
3.2 Objetivos específicos
Los objetivos específicos del proyecto son los siguientes:
• Aplicar el modelo de desarrollo iterativo.
• Mejorar las habilidades del autor, en la utilización del motor de Unity.
• Aumentar la experiencia en el desarrollo de videojuegos
• Documentar un proyecto de Diseño del Videojuego (GDD) completo.
• Demostrar que jugando a videojuegos también es posible aprender.
• Conseguir que los jugadores descubran la historia de Olympe de
Gouges y su causa.
37
• Realizar un videojuego que tenga toma de decisiones reales,
incluyendo distintos finales según las opciones elegidas en los
diálogos.
La metodología de trabajo aplicada al proyecto ha sido el modelo de
desarrollo iterativo. Es una de las metodologías mayormente utilizadas en
el desarrollo de software ya que permite ir realizando mejoras sobre el
producto base y seguir desarrollando e iterando sobre él. Esta metodología
se explicará más detalladamente en el siguiente apartado.
Los objetivos específicos del proyecto se centran en la mejora y el pulido de
mis habilidades a la hora de realizar un proyecto completo como es el
desarrollo de un videojuego, todo ello con el motivo de ganar experiencia en
la industria de los videojuegos. Además de demostrar que los videojuegos
también son una forma de aprender que aparte de entretenida, es útil para
las habilidades diarias como el trabajo en equipo, la resolución de problemas
y la gestión de recursos.
Además, para ganar experiencia como diseñador de videojuegos, otro de los
objetivos específicos es crear un Documento de Diseño del videojuego
completo donde se explican todas las mecánicas que contiene el juego, los
escenarios en los que transcurre, los personajes que aparecen en este, etc.
El autor también prefiere crear un videojuego en el que la historia dependa
del jugador y tenga múltiples finales. En el videojuego los finales que no
38
coincidan con los hechos históricos se considerarán una derrota y el jugador
podrá jugar en otra ocasión eligiendo distintas opciones.
El segundo foco de los objetivos específicos es conseguir que los jugadores
aprendan historia a través de los videojuegos y descubran la vida de Olympe
y su papel en la lucha por los derechos de la mujer.
39
4. Metodología
Para el desarrollo del proyecto, se ha utilizado el sistema Kanban ya que es
un sistema muy eficiente para controlar el avance del trabajo y tenerlo todo el
proceso del proyecto visualmente a través de tarjetas. Además, se han utilizado
varias herramientas aparte de Unity que han favorecido la organización y
generación del contenido.
4.1 Modelo de desarrollo iterativo
El modelo de desarrollo utilizado ha sido el modelo de desarrollo iterativo
(ProyectosAgiles.org, 2018). Este modelo es una evolución del método de
desarrollo en cascada y se basa en tres ideas primordiales:
• Entregar un prototipo incial tangible en el menor tiempo.
• Realizar pequeñas iteraciones que aporten beneficios crecientes al
proyecto.
• Repetir los mismos pasos durante cada una de las iteraciones.
Este modelo proporciona ventajas como la reducción del riesgo que se puede
asumir ya que si hay un impedimento se puede solventar con mayor
facilidad en la siguiente iteración, también provoca que las partes
complicadas del proyecto se diluyan en pequeñas partes menos complejas.
Además, el conocimiento sobre el producto va creciendo progresivamente
según va avanzando el desarrollo de manera que no hay necesidad de tener
40
una visión detallada (Figura 4.1) de cada parte del producto desde el
principio del desarrollo.
Figura 4.1. Cronograma planificación del proyecto23.
4.1.1 Iteración 1: Investigación
La primera iteración del proyecto tiene una duración de 4 semanas y se
centra en la investigación de tecnologías, motores e información necesaria para
la realización de este, así como el comienzo de idear el diseño del juego, sus
mecánicas y los objetivos de este.
4.1.2 Iteración 2: Primer prototipo
Inicio de la creación de las mecánicas básicas de movimiento, cámara e
interacción y principios de las conversaciones. Para ello, se realizará un prototipo
con varias escenas y en cada una de estas se desarrollará una mecánica por
separado, de esta manera se evita el mal funcionamiento de alguna mecánica por
el motivo de que esté interfiriendo con otra. La duración de la segunda iteración
es de 2 semanas hará falta este tiempo debido a que hay que realizar todas las
mecánicas necesarias para el correcto funcionamiento del juego.
23 Elaboración propia
41
4.1.3 Iteración 3 y 4: Segundo prototipo
En esta iteración se realizará la unión de todas las mecánicas en un único
proyecto para comprobar el correcto funcionamiento de todas ellas en conjunto,
además de pulir el comportamiento de todas ellas. La duración prevista del
segundo prototipo es de 2 semanas ya que es necesario comprobar que todas las
mecánicas funcionen correctamente juntas.
4.1.4 Iteración 5: Arte
En la iteración 5 se dedicará a realizar gran parte del tema gráficos del
videojuego, incluyendo personajes y escenarios, así como edición de sonidos. La
duración de la iteración 5 es de 2 semanas.
4.1.5 Iteración 6 y 7: Producto Final
En las últimas dos iteraciones se añadirá más contenido al juego tanto
capítulos como datos en la enciclopedia, además se tratará de pulir el videojuego
lo máximo posible para que no existan problemas dentro del juego que puedan
perjudicar la experiencia de los usuarios. La duración de las últimas dos
iteraciones es de 3 semanas, aunque se puede alargar hasta la fecha de entrega
debido a futuros problemas que pueden aparecer.
42
4.2 Kanban
Kanban es un método para gestionar el trabajo que surgió en Toyota
Production System en el que la producción se basa en la demanda de los clientes
y no en la práctica tradicional de fabricar los productos e intentar venderlos en el
mercado. El objetivo principal es crear más valor para el cliente sin generar más
gastos (Kanbanize, 2016).
La palabra Kanban viene del japonés y significa tarjeta con signos. El tablero
más básico de Kanban está compuesto por tres columnas: “Por hacer”, “En
proceso” y “Hecho”. Aunque también se puede añadir otras columnas como:
“Pruebas”, “Integración”.
Kanban es un método muy útil ya que nos permite visualizar todo el flujo de
trabajo con el hecho de mirar las tarjetas del tablero.
4.3 Herramientas utilizadas
4.3.1 Trello
Trello es una aplicación basada en el método Kanban y sirve para gestionar
tareas permitiendo organizar el trabajo, resultando ideal para la gestión de un
proyecto (Figura 4.2) y gracias a ella los desarrolladores pueden mejorar su rutina
de trabajo. Además, cuenta con una versión gratuita con la que se dispone de una
gran cantidad de funciones.
43
Figura 4.2. Tablero de Trello del proyecto24.
Trello es una aplicación muy sencilla y cualquier persona la puede utilizar
disponiendo de acceso a internet. Se ha utilizado su sistema de etiquetas (Figura
4.3) para destacar las distintas tarjetas según su dificultad y así organizarse de
una mejor forma. Se han usado las siguientes etiquetas:
Figura 4.3. Etiquetas dificultad de las tarjetas25.
24 Elaboración propia
25 Elaboración propia
44
4.3.2 Toggl track
Toggl (Figura 4.4) es una herramienta muy sencilla utilizada para saber el
tiempo que lleva cada tarea del proyecto en realizarse. Para utilizar es tan sencillo
como crear un proyecto con el nombre que desees y cada vez que vayas a realizar
alguna tarea del proyecto tienes que poner nombre a dicha tarea y clicar el botón
de play y, al finalizar, clicar el botón de pausa para pararlo.
Además, esta aplicación realiza resúmenes gráficos del proyecto, lo que nos
permite ver los datos de una manera visual y el tiempo empleado en él.
Figura 4.4. Logo de toggl track.
4.3.3 Visual Studio
Visual Studio (Figura 4.5) es un IDE26 que permite que la programación sea
más sencilla ya que posee herramientas para programar, depurar e implementar
soluciones.
Figura 4.5. Logo de Visual Studio.
26 Integrated Development Enviroment(IDE), conocido en español como entorno de desarrollo
integrado
45
Entre sus funciones ofrece un control de versiones con Git y Github
incorporado, también cuenta con IntelliSense, una herramienta para escribir
código y variables de una manera más sencilla ya que aporta información de los
métodos que contienen las clases y una descripción detallada de qué hacen estos.
También contiene herramientas para pausar la ejecución de errores, de esta
manera es más sencillo la detección de errores para su futura resolución.
4.3.4 Audacity
Audacity (Figura 4.6) es un software de código abierto de edición y grabación
de sonido digital, además es un programa totalmente gratuito. Actualmente está
disponible para Windows, MacOS, Linux y otros sistemas operativos similares a
Unix.
Una de las características de Audacity es que se puede usar para el
procesamiento de todo tipo de archivos de audio, con la posibilidad de agregar
distintos efectos como normalización, recorte o desvanecimiento entre otros.
Figura 4.6. Logo de Audacity.
46
4.3.5 Gimp
Gimp (Figura 4.7) es un software gratuito y de código abierto utilizado para
la manipulación y edición de fotos disponible para Linux, MacOS y Windows.
Este software tiene una gran cantidad de herramientas y permite a los
usuarios poder hacer muchas cosas. Uno de sus puntos fuertes es que, al ser de
código abierto, los usuarios pueden manipular el programa a su gusto y realizar
plugins27. Además de realizar Plugins, el software es válido para realizar todo
tipo de diseños gráficos, manipulación de fotos en gran calidad y creaciones
originales.
Figura 4.7. Logo de Gimp.
27 Un plugin es un componente de software que proporciona una función específica para un
programa existente.
47
4.3.6 Blender
Blender (Figura 4.8) es un software gratuito de código abierto de gráficos 3D,
con una gran cantidad de herramientas que permiten la creación de películas de
animación, efectos visuales, modelado 3D, etc.
Del mismo modo que Gimp, Blender también puede usar extensiones creadas
por la comunidad, además de crear extensiones también se puede customizar la
interfaz y conectar con la API28 de render de Blender.
Figura 4.8. Logo de Blender.
4.3.7 Twine
Twine (Figura 4.9) es una herramienta de código abierto y gratuita diseñada
para crear historias interactivas, de forma que a través de la página web puedes
escribir una historia en la que el jugador puede elegir varias opciones y después,
gracias a un código escrito en JavaScript te exporta la historia en formato JSON,
de manera que resulta más fácil de controlar la información. Esta es la
28 Application Programming Interface (API) o interfaz de programación de aplicaciones,
permite la comunicación entre dos sistemas o plataformas diferentes, permitiendo agregar
diversas funciones a sitios web y aplicaciones.
48
herramienta que se ha utilizado para escribir la historia del videojuego y que
según las respuestas dadas suceden distintas cosas.
Figura 4.9. Logo de Twine.
49
5. Documento de Diseño del
Videojuego (GDD)
El documento de diseño del Videojuego o Game Design Document (GDD)
es el documento que representa las bases principales sobre las que se va a
realizar el desarrollo del videojuego. En los siguientes apartados se
encuentra la decisión del motor tras analizar los requerimientos del
videojuego, después se desarrollará el concepto del juego explicando datos
básicos como la historia en la que se basa el juego, el objetivo que debe
cumplir el jugador, los personajes principales del videojuego, etc. Por
último, se explicarán las mecánicas que se desarrollarán para realizar el
videojuego.
5.1 Elección del motor
Finalmente, después de analizar y comparar los distintos motores que hay
actualmente en el mercado el autor ha decidido emplear Unity para este trabajo
debido a que es uno de los motores más utilizados por los desarrolladores, por
lo que, en caso de tener dudas o problemas a la hora de la implementación, en la
mayoría de los casos se va a poder disponer de bastante material de ayuda.
Además, Unity tiene una gran cantidad de herramientas y funcionalidades que
aportan mucha versatilidad a la hora de desarrollar un videojuego de varios
géneros.
También se ha escogido Unity debido a que una gran cantidad de
empresas realizan sus videojuegos indies en este motor, por lo que supondría
una experiencia muy útil a la hora de entrar en la industria de los videojuegos.
50
5.2 Concepto del videojuego
5.2.1 Historia
La historia del videojuego transcurre en la Francia de la segunda mitad del
siglo XVIII y tiene como protagonista a Marie Gouze (Figura 5.1), conocida como
Olympe de Gouges.
Figura 5.1 Retrato de Marie Gouze29.
Olympe nació en una familia burguesa en 1748 en Montauban, a lo largo
de su vida escribió una gran cantidad de obras de teatro y escritos políticos, la
obra de teatro más destacada fue La esclavitud de los negros, obra por la que fue
encarcelada, aunque fue durante un periodo corto de tiempo gracias a la
intervención de conocidos, su escrito político más destacado fue la Declaración de
los Derechos de la Mujer y la Ciudadana. Sus trabajos fueron profundamente
feministas y revolucionarios para su época, defendiendo la igualdad entre el
hombre y la mujer en todos los aspectos de la vida pública y privada, incluyendo
la igualdad en el derecho a voto, acceder a la política, controlar propiedades, etc.
29 Fuente: https://www.olympedegouges.paris/biografia
51
En el transcurso del videojuego, el jugador deberá encarnar a esta
protagonista y tomar las decisiones adecuadas, promoviendo los derechos de las
mujeres y luchando por sus ideales.
5.2.2 Objetivo
El objetivo principal del videojuego es hacer avanzar a la protagonista,
siguiendo el transcurso de su vida, promoviendo los derechos de las mujeres en
la sociedad de la segunda mitad del siglo XVIII.
Para conseguir el final ideal del videojuego se tienen que cumplir dos
requisitos:
• Publicación de la Declaración de los Derechos de la Mujer y la
Ciudadana.
• Muerte en la guillotina por su defensa de los derechos de la mujer
y su orientación política girondina.
Aparte del final ideal también habrá distintos finales según las elecciones
que haya tomado el jugador a lo largo del juego que contarían como derrotas en
el videojuego.
5.2.3 Género
El género del videojuego es aventura gráfica histórica combinando con
rompecabezas, ya que la mayor parte del videojuego se basa en las
conversaciones y las distintas elecciones que tienes que realizar en estas para
avanzar en la historia.
52
5.2.4 Público
El videojuego está dirigido a todos los públicos, especialmente personas
interesadas en el género de la aventura gráfica o que quieran aprender sobre
momentos de la historia, ya que el juego está basado en hechos históricos.
53
5.3 Personajes
La historia del videojuego está protagonizada por Olympe de Gouges y será
el personaje que controlará el jugador. Este personaje irá evolucionando a lo largo
de la historia defendiendo los derechos de las mujeres y sus ideales políticos.
Contará con varias vestimentas dependiendo del acto en el que nos encontremos.
En la historia Olympe interactúa con una gran cantidad de personajes, pero
de entre todos estos personajes con los que más lo hace son los siguientes:
Condorcet: filósofo, matemático y político francés del partido girondino.
Destacó por sus capacidades intelectuales y por su amplitud de conocimientos
científicos.
Robespierre: abogado, escritor y político francés apodado como «el
Incorruptible». Fue uno de los líderes de la Revolución Francesa, jefe de la facción
más radical de los jacobinos y entidad que gobernó Francia durante el periodo
conocido como el Terror (Figura 5.2).
Figura 5.2 Retrato de Maximilien Robespierre30.
30 Fuente: https://www.olympedegouges.paris/biografia
54
La Fayette: aristócrata francés y militar que luchó en la guerra de la
independencia americana donde comandó tropas en varias batallas. Cuando
volvió a Francia fue una figura clave en la revolución francesa.
Figura 5.3 Retrato del marqués La Fayette31.
Jacques: hombre de negocios nacido en Lyon, con el que Olympe estableció
una relación después de la muerte de su marido.
M.ª Antonieta: última reina de Francia antes de la revolución francesa, odiada
por la corte francesa y posteriormente por el pueblo, que la acusaba de
derrochadora y presumida (Figura 5.4).
Figura 5.4 Retrato de María Antonieta32.
31 Fuente: https://es.alphahistory.com/revoluci%C3%B3n-Francesa/marqu%C3%A9s-lafayette/ 32 Fuente: https://www.mujeresenlahistoria.com/2012/02/la-reina-perdida-maria-antonieta-
de.html
55
Además de estos personajes también intervienen otros como por ejemplo el
padre de Olympe, su marido Louis o Mirabeau entre otros.
5.4 Escenario
El escenario principal donde transcurre el videojuego es París a mediados
del siglo XVIII. En este siglo París vive una explosión económica y cultural
que se refleja principalmente en la especulación mobiliaria y la ampliación de
la ciudad, con la construcción de nuevos barrios en los que las personas con
mayores fortunas construyen pequeños palacetes. El río Sena cruza la ciudad
de este a oeste, se convierte en un elemento central en el desarrollo de la
ciudad, y se construyen muchos puentes para facilitar la circulación entre
orillas. Además, la demografía parisina experimenta un gran crecimiento
llegando hasta los 600 000 habitantes poco antes de la revolución.
París es representada en el juego mediante el plano de Turgot (Figura 5.5)
realizado entre 1734 y 1739 a petición de los comerciantes. Este plano está
realizado aproximadamente a una escala de 1/400 y tenía un tamaño de 2,49m
por 3,18m.
56
Figura 5.5. Plano de Turgot33.
El segundo escenario donde transcurren escenas dentro de la historia es el
Palacio de Versalles (Figura 5.6) ubicado en el municipio de Versalles cerca
de París, lugar que desempeñaba las funciones de residencia real desde 1682
hasta 1789. Además, dentro de los dominios del Palacio de Versalles nos
encontramos sus jardines situados al oeste del palacio cubriendo
aproximadamente 800 hectáreas de superficie.
Figura 5.6. Plano del Palacio de Versalles34.
33 Fuente: https://en.wikipedia.org/wiki/File:Turgot_map_of_Paris_-
_Norman_B._Leventhal_Map_Center.jpg 34 Fuente: https://mapas.owje.com/10274_mapa-de-versailles-francia-1866.html
57
Por último, Montauban (Figura 5.7), el escenario donde comienza la
historia del videojuego y lugar de nacimiento de Olympe de Gouges. Es una
ciudad situada al suroeste de Francia, conocida como la primera bastida de la
historia. Una bastida fue un tipo particular de desarrollo concertado urbano
en el medio rural, construido con una finalidad defensiva y económica.
Figura 5.7. Plano de Montauban35.
35 Fuente: https://mapas.owje.com/10227_mapa-de-montauban-francia-1914.html
58
5.5 Mecánicas del juego
5.5.1 Controles
El videojuego se jugará mediante teclado y ratón, usando teclas comunes
a la gran mayoría de videojuegos para que los jugadores se sientan cómodos y
no resulte complicado aprender a jugar.
Para seleccionar las opciones y moverse por los menús se usará
principalmente el ratón ya que es la herramienta más común para ello y
visualmente más sencilla.
Los controles dentro del juego son los siguientes:
Tecla Acción
W Moverse hacia delante
A Moverse hacia la izquierda
S Moverse hacia atrás
D Moverse hacia la derecha
Mayús Izquierdo Correr
Control izquierdo Agacharse
Esc Menú pausa
I Inventario
E Interactuar con NPC y objetos
Clic izquierdo Escoger opciones conversación
Movimiento del ratón Movimiento de la cámara
Tabla 1. Controles del juego36.
36 Fuente: Elaboración propia.
59
5.5.2 Movimiento y cámara
El movimiento del personaje será simple, se moverá en las cuatro
direcciones, hacia arriba, hacia abajo, hacia derecha y hacia izquierda. La
velocidad del personaje será media como si estuviese andando, pero si lo desea
el jugador podrá correr pulsando el botón Mayús izquierdo.
En cuanto a la cámara, será en primera persona ya que permitirá que el
jugador se sienta más próximo a la protagonista, al estar en su lugar y observar
todo aquello que esté viendo ella. La cámara se podrá mover mediante el ratón
para observar el entorno.
5.5.3 Mapa
El mapa será un punto clave en el juego ya que para acceder a los distintos
escenarios tendremos que hacerlo a través de este. Este plano nos mostrará
principalmente toda la ciudad de París y para movernos por él utilizaremos el
ratón. Cuando el ratón pase por encima de un escenario este destacarán y al clicar
nos saldrá la opción de entrar en dicho escenario.
Para que el jugador no se pierda en la historia principal del videojuego
siempre habrá un marcador en el mapa indicando cuál es el siguiente destino al
que debe ir para seguir con la historia.
5.5.4 Atributos
La protagonista contará con varios atributos que ayudarán en la historia
desbloqueando nuevas opciones de diálogo. Estos atributos se obtendrán según
las decisiones que el jugador va tomando a lo largo de la historia. De manera que
60
una contestación en un diálogo puede subir o bajar un atributo que
posteriormente desbloquearán nuevas respuestas en futuras conversaciones y,
por lo tanto, distintos finales.
Los atributos existentes en el juego son los siguientes:
• Carisma
• Salud
• Dinero
• Reputación
Los distintos atributos aumentan o disminuyen según la respuesta que se
seleccione. Por ejemplo, se obtendrá carisma cuando se den respuestas
desafiantes a los roles de esa época y disminuirá cuando las respuestas
seleccionadas sean asentir o aceptar lo que te digan. Los demás atributos
funcionan de forma similar. Si enfadas a alguien con una respuesta podría
pegarte y bajará tu salud, si en la conversación das o recibes dinero, este
atributo subirá o bajará. Por último, la reputación se obtiene al final de las
conversaciones, de forma que según hayan transcurrido podrá
incrementarse o reducirse.
61
5.5.5 Conversaciones y múltiples finales
Una de las mecánicas principales del videojuego son las conversaciones
(Figura 5.8), pues a través de ellas se avanzará a lo largo de la historia. Las
conversaciones contarán con un máximo de cuatro respuestas posibles que
nuestra protagonista podrá dar. Para dar algunas respuestas será necesario
cumplir algún requisito en concreto como tener X puntos de un atributo.
Figura 5.8. Conversación en estado de pruebas37.
Conforme se va avanzando en la historia, según las respuestas que se
hayan escogido, los personajes irán apareciendo e interactuarán con el jugador
de manera distinta. Además, en el juego existen finales anticipados que
significarían una derrota si no escoges las respuestas correctas como, por
ejemplo, el exilio, apartarte de la política y las reivindicaciones, etc.
37 Fuente: Elaboración propia.
62
5.5.6 Capítulos
El juego estará dividido en distintos capítulos y existirán varias formas de
superarlos mediante los diálogos, aunque encuentra la posibilidad de llegar a un
final distintos que no es el basado en la realidad que significaría una derrota y el
volver a comenzar el capítulo. Para superar el juego el jugador deberá pasar los
capítulos correctamente y superar dos requisitos fundamentales como son la
publicación de los Derechos de la mujer y la ciudadana y finalmente la muerte
en la guillotina por sus ideales.
5.5.7 Enciclopedia
En el menú del juego ofrece un apartado que será la enciclopedia. En esta
se mostrarán datos como la vida cotidiana en el siglo XVIII, noticias de los
periódicos y propaganda de la época, además de información sobre los
personajes y escenarios del videojuego.
5.5.8 Sistema de guardado
Para aumentar la dificultad del juego, no se podrá realizar un guardado
en mitad de un capítulo por lo que los guardados se realizarán automáticamente
al comienzo de cada capítulo.
63
5.5.9 Inventario e interacción con objetos
El jugador cuenta con un inventario donde podrá guardar los objetos que
vaya encontrando durante el capítulo como, por ejemplo, llaves y anillos. El
inventario tiene una capacidad de hasta 8 objetos los cuales permitirán que el
jugador interactúe con distintos elementos como son las puertas ya que para
poder abrirlas necesitarás la llave correcta.
Una característica del inventario es que se eliminarán los objetos
conseguidos al final de cada capítulo y, por lo tanto, los objetos que se encuentran
en él sólo son útiles para el capítulo en el que el jugador se encuentra en ese
momento.
64
5.6 Interfaces
La interfaz es una parte importante del juego ya que, al tratarse de una
aventura gráfica, el jugador interactúa con ella constantemente, por lo que deben
ser lo más sencillas e intuitivas posibles.
5.6.1 Menú Inicio
El menú de inicio (Figura 5.9) es la interfaz que aparece nada más
comenzar el juego y tiene los siguientes elementos:
Figura 5.9. Interfaz Menú Inicio38.
Desde el menú de inicio es posible crear una nueva partida, continuar la
partida guardada, acceder a la enciclopedia para leer información sobre el juego,
revisar los controles, cambiar las opciones del juego o salir de la aplicación.
5.6.2 Mapa
El mapa (Figura 5.10) es la interfaz mediante la cual el jugador puede
trasladarse a través de los escenarios y las distintas zonas del juego.
38 Fuente: Elaboración propia.
65
Figura 5.10. Interfaz Mapa39.
Dentro del mapa el jugador tiene la posibilidad de desplazarse a los
distintos lugares del videojuego. Las flechas sirven para moverse entre las 3
zonas disponibles: Montauban, París y Versalles. Después, se muestra un texto
en la parte superior que nos indica la zona en la que nos encontramos y en la
parte inferior otro texto que indica la zona que acaba de clicar el jugador para
desplazarse hacia allí. Las exclamaciones indican que para avanzar en la misión
principal el jugador deberá conversar en esa parte del mapa.
5.6.3 Menú InGame
El menú Ingame (Figura 5.11) es la interfaz que aparece cuando el jugador
pulsa la tecla Escape dentro de un escenario y contiene las siguientes
características:
39 Fuente: Elaboración propia.
66
Figura 5.11. Interfaz Menú InGame40.
Dentro de este menú, las opciones que se permiten son: volver al juego, ir
al mapa, mirar los controles, entrar en las opciones y salir al menú principal.
5.6.4 Inventario
El inventario (Figura 5.12) es la interfaz donde se muestran los distintos
objetos que posee el jugador en ese momento. Además, al mantener el ratón por
encima de un objeto saldrá una descripción de este.
Figura 5.12. Interfaz Inventario41.
40 Fuente: Elaboración propia.
41 Fuente: Elaboración propia.
67
5.6.5 Enciclopedia
La enciclopedia (Figura 5.13) es un apartado del juego mediante el cual el
jugador puede informarse y aprender sobre hechos históricos, personajes y
lugares que está recorriendo dentro del videojuego. La enciclopedia se ha
dividido en cuatro apartados base que son Siglo XVIII, personajes, lugares y
acontecimientos, esta división se ha realizado considerando la información
obtenida dando como resultado estos cuatro apartados. En el primero aparecerán
datos como la vida cotidiana en la época, la ropa que se empleaba, etc. En el
apartado de personajes aparece información sobre los distintos personajes
emblemáticos que aparecen en el juego. En el apartado lugares se muestra
información sobre los lugares más conocidos de Francia. Por último, en el
apartado de acontecimientos se muestran datos sobre los actos más importantes
durante la época como la toma de la bastilla o la muerte de Luis XVI.
Figura 5.13. Interfaz Enciclopedia42.
42 Fuente: Elaboración propia.
68
5.6.6 Opciones
Desde la interfaz de opciones (Figura 5.14) el jugador podrá modificar
varias cosas dentro del juego como la resolución de la pantalla, si el juego está en
pantalla completa o en modo ventana, la sensibilidad del ratón dentro del juego
y el sonido del juego.
Figura 5.14. Interfaz Opciones43.
43 Fuente: Elaboración propia.
69
6. Desarrollo e implementación
En el apartado 6.1 se explicará de una forma resumida el funcionamiento de
las distintas partes básicas de Unity, desde sus componentes principales hasta su
funcionamiento interno, el proceso de implementación de todas las mecánicas
del videojuego. En el siguiente apartado, el 6.2 se explicarán los procesos
realizados para la implementación del videojuego, así como los distintos
diagramas de flujos.
6.1 Funcionamiento básico Unity
Figura 6.1. Diagrama básico Unity44.
El funcionamiento más básico de Unity podría resumirse en la figura 6.1,
el juego está compuesto por múltiples escenas, donde una escena podría
representar un nivel del juego o incluso el menú principal. Estas escenas se
componen de los elementos más básicos de Unity, los GameObject, que se
44 Fuente: Elaboración propia.
70
explicarán en el siguiente apartado. Por último, nos encontramos con los
componentes, estos elementos se incluyen dentro de los GameObjects
proporcionándoles utilidades como, por ejemplo, un cuadro de texto, una cámara
o incluso una pista de audio.
6.1.1 GameObject, Componentes y assets
Los GameObject son los objetos fundamentales del juego. Representan
cualquier objeto de nuestro juego ya sea personajes, escenarios, objetos
utilizables, accesorios, etc.
Estos objetos no tienen ninguna funcionalidad por sí solos ya que funcionan
como contenedores de componentes. Por ejemplo, si a un GameObject se le
adjuntas un componente Light (figura 6.2), este objeto representará una luz en la
escena donde se utilice o, si a un GameObject se le adjunta un componente Collider,
este objeto será un elemento dentro del juego con el que se pueda colisionar.
Los componentes son las piezas funcionales de los GameObject. Uno de sus
grandes aspectos es la flexibilidad ya que desde el mismo editor de Unity puedes
editar los distintos parámetros del componente como por ejemplo cambiar el
color de la luz, que genere sombras, el tipo de luz, etc.
Todos los GameObjects tienen por defecto un componente Transform dentro de
ellos, el cual representa la posición y la orientación de nuestro objeto.
71
Figura 6.2. GameObject con un componente Light45.
Un asset es un fichero multimedia que se utiliza a través del editor de Unity
(figura 6.3). Estos ficheros pueden ser audios, mallas 3D, texturas, scripts, etc. En
resumen, son los distintos objetos con los que se construye el videojuego desde
sus escenarios hasta los distintos menús.
Figura 6.3. Assets mostrados en el editor de Unity46.
45 Fuente: Elaboración propia
46 Fuente: Elaboración propia
72
6.1.2 Prefab
Un Prefab (figura 6.4) es un tipo de asset que permite almacenar un
GameObject con todos sus componentes y propiedades. Este prefab actúa como
una plantilla para que se puedan crear nuevas instancias del objeto en cuestión y
cada vez que se realice una edición dentro del prefab será reflejado en todas las
instancias que se han creado a partir de este.
Este elemento resulta útil cuando en el escenario debe haber objetos que
es necesario que tengan las mismas propiedades y actúen igual, como por
ejemplo cierto tipo de NPC47. De esta manera, si queremos realizar un cambio
sobre todos ellos lo único que habría que tocar sería el prefab.
Figura 6.4. Prefab con un componente de colisión48.
47 NPC: Non-Player Character, personaje no controlado por un jugador.
48 Fuente: Elaboración propia
73
6.1.3 Animator
El animator es un componente que permite manejar las distintas
animaciones y sus interacciones de una forma sencilla una vez que se han
conseguido los clips de animación necesarios para realizar las animaciones.
Dentro del componente se requiere una referencia a un Animator controller
(figura 6.5), lo cual va a permitir seleccionar y editar como deben realizarse las
transiciones entre las distintas animaciones, además de cambiar entre
animaciones según las condiciones que se exijan. Por ejemplo, se puede indicar
que la animación Saltar se realice siempre y cuando el booleano denominado
saltando contenga el valor verdadero.
Figura 6.5. Animator Controller con sus distintas transiciones 49.
49 Fuente: Elaboración propia
74
6.1.4 Scripts
Los scripts son una porción de código que permite al desarrollador
implementar características propias a su juego. Esto resulta muy útil ya que no
es posible realizar todo nuestro juego con los componentes integrados de Unity.
Estos permiten activar y desactivar eventos del juego, modificar las propiedades
de los componentes, responder a los distintos inputs…
Unity soporta dos lenguajes nativamente que son el C# y el UnityScript, y
también es posible utilizar otros lenguajes como .NET siempre y cuando se
compile un DLL50 compatible.
Los scripts (figura 6.6) actúan como componentes siempre y cuando
hereden de una clase base implementada por Unity denominada MonoBehaviour.
Esta clase permite sobrescribir funciones implementadas por esta clase, de esta
manera podemos definir una lógica propia.
Una de las funciones implementadas por MonoBehaviour es el método Update, este
método es llamado una vez por frame principalmente se utiliza para la
actualización de los datos del videojuego, aunque para las físicas o cálculos de
tiempo es más común la utilización del método FixedUpdate ya que se las veces
que se llama a este método son fijas a diferencia de Update.
50 Dynamic-Link Library o biblioteca de enlace dinámico, son archivos de código ejecutable .dll
es la denominación exclusiva de windows
75
Figura 6.6. Script básico para controlar al personaje 51.
Cuando un script no herede de la clase MonoBehaviour no será posible
añadirlo directamente como un componente a un GameObject. Estos scripts se
suelen utilizar principalmente para definir estructuras de datos.
51 Fuente: Elaboración propia
76
6.1.5 Ciclo de ejecución funciones de Unity
Para la ejecución de las funciones de los scripts, Unity sigue un orden
predeterminado que se debe tener en cuenta para saber qué funciones deben ser
sobrescritas según lo que se quiera realizar. El orden se muestra en la figura 6.7:
Figura 6.7. Primera parte esquema ejecución de las funciones Unity 52.
La primera fase de la ejecución del script es la inicialización. En esta fase
se ajustan todos los datos necesarios que se necesitan al crear el GameObject en el
52 Fuente: https://docs.unity3d.com/Manual/ExecutionOrder.html
77
que se encuentra el script. Si estuviera dentro de un personaje aquí sería donde
se inicializarían las variables de este personaje.
La segunda parte del esquema (figura 6.8) son las físicas. El primer método
que se realiza es FixedUpdate, el cual se invoca un número fijo de veces por frame,
por defecto ese número es de 50 veces por frame aunque este valor se puede
cambiar en las opciones de Unity. Después del método se ejecutan
actualizaciones internas de la física y por último, se comprueba todos los
triggers53 y colisiones.
Figura 6.8. Segunda parte esquema ejecución de las funciones Unity 54.
53 Funciones que se ejecutan cuando ocurre una acción concreta.
54 Fuente: https://docs.unity3d.com/Manual/ExecutionOrder.html
78
En la segunda parte del esquema, después de las físicas se comprueban los
inputs que se reciben por parte de los periféricos. Después de esta fase se ejecuta
la lógica del juego donde tenemos la función Update. En esta función es donde se
actualizan los datos del juego que no tienen que ver con las físicas, en nuestro
caso las conversaciones, contestaciones y lo que estas provoquen. Además, en
esta parte de lógica del juego se actualizan todas las animaciones internamente y
después comienza el renderizado de la escena.
Figura 6.9. Tercera parte esquema ejecución de las funciones Unity 55.
En la última parte del ciclo de scripts se renderizan los gizmos56 (figura 6.9),
la interfaz, se comprueba si la aplicación se ha puesto en pausa y finalmente, si
se ha cerrado la aplicación se comienza a limpiar los datos del juego borrando los
datos de la memoria, limpiando buffers, etc.
55 Fuente: https://docs.unity3d.com/Manual/ExecutionOrder.html
56 Elementos que proporcionan ayuda visual a la hora de la depuración
79
6.2 Implementación del videojuego
En este apartado se va a describir todo el proceso de implementación del
videojuego teniendo en cuenta el funcionamiento de Unity descrito en el
apartado anterior. En los siguientes puntos se van a detallar los distintos
diagramas de flujo elaborados para la creación del videojuego y el
funcionamiento de los distintos scripts creados para la implementación del
juego.
6.2.1 Bucle Inicial
Al inicializar el videojuego lo primero que se muestra en el menú de inicio
mediante el cual se pueden comenzar una nueva partida, continuar una
ya guardada, acceder a la parte de la enciclopedia, ver los controles,
acceder a las opciones y finalmente, salir del programa lo que provocaría
el cierre de la aplicación. En la figura 6.10 se muestra una versión
simplificada del diagrama de flujo del juego.
80
Figura 6.10. Diagrama de flujo del bucle inicial 57.
6.2.2 Bucle del juego
Una vez se entra en el bucle de juego (figura 6.11), el videojuego se irá
actualizando con los métodos de Unity mientras que no se detecte ninguna
entrada por parte del teclado o del ratón. Una vez se detecte una, se
comprobará cual ha sido, lo que podría llevar a dos procesos: movimiento
del jugador o menú de juego. Desde este último se podrá salir del bucle de
juego y dirigirse hacia el bucle inicial mostrado en el apartado 6.2.1. Los
procesos predefinidos de movimiento del jugador, movimiento de la
cámara, interacción y menú de juego serán detallados en los siguientes
apartados.
57 Fuente: Elaboración propia.
81
Figura 6.11. Diagrama de flujo del bucle de juego 58.
6.2.3 Movimiento y colisiones
Para realizar el movimiento y las colisiones del videojuego primero se ha
creado un prefab del personaje principal (figura 6.12) ya que va a estar en distintos
escenarios del juego y si se necesita hacer algún cambio durante el desarrollo nos
será más fácil a través de este prefab.
Figura 6.12. GameObject del jugador 59.
Como se puede observar, el jugador se compone de una cápsula con el
componente de Mesh Renderer desactivado ya que el juego se desarrolla en
primera persona y no se va a visualizar al jugador. Después se dispone de un
Capsule Collider, el cual indica la zona donde puede colisionar nuestro jugador.
Se ha elegido una forma de cápsula ya que es la que más se asemeja a un
58 Fuente: Elaboración propia.
59 Fuente: Elaboración propia.
82
personaje humanoide. Por último, se cuenta con un Rigidbody, que es el que
provoca que actúen las físicas sobre el objeto, como, por ejemplo, la gravedad.
El movimiento del jugador está controlado por el script PlayerController, y
sigue el diagrama de flujo de la figura 6.13. Primero se comprueba el input para
saber que tecla se está pulsando y en qué dirección va nuestro personaje. Una vez
hecho esto se comprueban las colisiones del componente Collider del jugador, si
no colisiona se sumará la velocidad en la dirección adecuada para que el
personaje se mueva con las físicas de Unity, y en caso de colisión el personaje no
continuará con el movimiento.
Las comprobaciones de la dirección se realizan en el método Update
mientras que la suma de la velocidad se realiza en el método FixedUpdate. Esto es
debido a que las físicas se deben realizar en este último método debido a que
FixedUpdate se realiza exactamente 50 veces por frame mientras que Update
depende de la velocidad del ordenador donde se esté ejecutando el juego.
83
Figura 6.13. Diagrama de flujo del movimiento del jugador 60.
6.2.4 Cámara
El videojuego tiene una cámara en primera persona por lo que la cámara
debe moverse a la vez que el personaje. Por lo tanto, el GameObject que contiene
la componente Camera debe ser hijo del GameObject que contiene al Jugador para
que en caso de que el Jugador se mueva, la cámara también lo haga. Una vez
realizado esto, para simular que la visión viene de la parte de los ojos es necesario
elevar la cámara de forma que se quede en la parte superior del jugador como en
la figura 6.14.
Figura 6.14. CapsuleCollider y cámara 61.
60 Fuente: Elaboración propia.
61 Fuente: Elaboración propia.
84
La cámara está controlada también mediante el script de PlayerController
aunque lo que va a variar de esta no es la posición, sino la rotación ya que se
quiere provocar la sensación al jugador de que la cámara está en los ojos. Por lo
tanto, el primer paso es comprobar si el ratón se ha movido. En caso afirmativo
se realizan los cálculos necesarios teniendo en cuenta la posición anterior del
ratón y la nueva, y una vez finalizados se rota la cámara.
La cámara sigue el diagrama de flujo de la figura 6.15 y ocurre lo mismo
que en el movimiento del jugador, de forma que las físicas se realizan en el
método FixedUpdate mientras que la comprobación del movimiento se realiza en
el método Update.
Figura 6.15. Diagrama flujo movimiento de la cámara 62.
62 Fuente: Elaboración propia.
85
6.2.5 Atributos del personaje
Los atributos del personaje tienen que estar presentes en todas las
conversaciones y para ello debe ser posible acceder a ellos desde cualquier
escena, por lo que el script que controla y contiene estos datos usa el patrón
Singleton63.
public static PlayerStats inst;
void Awake() {
//la primera vez cuando no se ha creado es null
if(PlayerStats.inst == null){
popStats.SetActive(false);
PlayerStats.inst = this; // instancia unica
DontDestroyOnLoad(gameObject);
carisma = 0;
salud = 100;
dinero = 0;
reputacion = 0;
talking = false;
inMenu = false;
sensibility = 2.0f;
}else{
Destroy(gameObject);
}
}
Código 1. Patrón Singleton.64
El script que controla los atributos del personaje es PlayerStats y en el
código 1 se observa el método Awake. Este método es el necesario para crear un
patrón singleton. Lo primero que se tiene que hacer es comprobar si la instancia
es null, en caso de que lo sea tenemos que inicializar el script y usar el método
63 Patrón de diseño que permite restringir la creación de objetos pertenecientes a una clase o el
valor de un tipo a una única instancia. 64 Elaboración propia
86
DontDestroyOnLoad, esto provoca que cuando se cambia de escena, el script no se
destruirá de forma que se pueda acceder a él desde cualquier lugar.
6.2.6 Interacción con NPC’s y objetos
Para realizar la interacción con los NPC’s se han necesitado tres scripts:
InteractionReciever, CheckInteraction y IAction. Este último es únicamente una
interfaz para que los distintos elementos realicen acciones diferentes.
En la figura 6.16 se aprecia el diagrama de flujo de las interacciones. Lo primero
que se realiza es comprobar si se ha pulsado la tecla E ya que es con la cual el
personaje interactúa con el entorno. Si se ha pulsado se tiene que comprobar si el
jugador está apuntando a algún elemento que pueda interactuar y, además que
se encuentre en el rango de acción que es de 3 unidades. En el caso en el que se
cumpla esta condición se ejecutará el método Activate de la interfaz IAction.
Figura 6.16. Diagrama flujo interacción 65.
65 Fuente: Elaboración propia.
87
Además, siempre que un objeto esté dentro del rango y sea apuntado por
el jugador aparecerá un texto en pantalla como en la figura 6.17.
Figura 6.17. Mensaje para interactuar con un objeto 66.
66 Fuente: Elaboración propia.
88
6.2.7 Conversaciones
Para guardar las conversaciones es necesario crear un archivo con formato
JSON. Para ello el fichero debe de tener una composición como en la figura 6.18.
JSON es un formato ligero de intercambio de datos, y la ventaja principal que
proporciona es que leerlo y escribirlo resulta sencillo tanto para las máquinas
como para los humanos.
Figura 6.18. Fichero de una conversación 67.
Gracias a la composición del archivo se puede transformar a un objeto
dentro del juego con el método FromJson de la librería JsonUtilities. Una vez usado
el método sobre el fichero tendríamos un objeto con las características del código
2:
public class Conversations {
public List<Conversation> passages;
}
public class Conversation {
public string text;
public List<Choices> links;
public string name;
public string pid;
public string[] tags;
}
public class Choices {
public string name;
public string link;
public string pid;
67 Fuente: Elaboración propia.
89
}
Código 2: Clase Conversación68.
Una vez se cuenta con el objeto de la conversación, se utiliza el script
NpcConversation, el cual hereda de la interfaz IAction mencionada anteriormente
en el apartado 6.2.6. De esta manera cuando se presione la tecla E mientras se está
apuntando a un NPC y dentro del rango de acción se ejecutará el método
sobrecargado del interfaz llamado Activate, el cual comenzará la conversación. A
través del objeto obtenido podemos acceder a los distintos datos de una
conversación como, por ejemplo, las posibles contestaciones que el personaje
puede dar y los atributos que variarán con dicha contestación.
6.2.8 Interfaces
Para el desarrollo de las interfaces se han utilizado los mismos gráficos
para que estén todos en sintonía y ninguno sea totalmente diferente a los demás.
Para el desarrollo de cada parte de la interfaz se han empleado distintos scripts.
6.2.8.1 Inventario
Para implementar el inventario han hecho falta los siguientes tres scripts:
InventorySystem, Items y Slot. El primero de ellos sirve como controlador para
abrir y cerrar el menú, además tiene una variable llamada SlotHandler que es el
GameObject que contiene las distintas partes del inventario que en total son 8
slots. También se encarga de gestionar cuando se recoge un objeto invocando su
método getItem el cual busca en el inventario el primer hueco vacío para depositar
el objeto.
El script Items se adjunta a los GameObject que tienen los objetos que se van
a poder recoger, como por ejemplo una llave. Dentro de este script se encuentran
68 Fuente: Elaboración propia.
90
distintas variables como id, descripción y el icono. Estas variables nos permiten
identificar el objeto que es y modificar la imagen necesaria que se mostrará en la
interfaz del inventario.
Por último, el script Slot tiene que estar adjunto a los 8 huecos del
inventario y será donde “entren” los ítems, ya que cuando cojamos un objeto, se
meterán los datos de dicho objeto en el slot.
6.2.8.2 Mapa
Para la implementación del mapa es necesario el script MapController, que
junto al script ZoneSelector se encargarán de realizar todas las funciones de esta
interfaz. MapController cuenta con una imagen que representará la zona del mapa
en la que estamos. Esta imagen se puede cambiar si se da clic sobre una de las
flechas de los laterales, al clicar se cambiará dicha imagen y aparecerá el mapa de
otra zona. Las zonas existentes en el juego son Montauban, Palacio de Versalles
y París. Además, existe una función que destaca con exclamaciones la siguiente
zona del mapa (figura 6.19) a la que debe dirigirse el jugador para continuar con
la historia principal.
Figura 6.19. Zona destacada con exclamaciones 69.
Otra de las funciones para realizar el mapa lo más interactivo posible se
encuentra en el script ZoneSelector, y permite que se destaque la zona del mapa
sobre la que se encuentra el cursor a la vez que se muestra el nombre de dicha
parte (figura 6.20).
69 Fuente: Elaboración propia.
91
Figura 6.20. Zona destacada en Montauban 70.
Por último, al clicar cualquiera de las zonas dentro de un mapa aparecerá
una alerta diciendo si quieres trasladarte a dicha zona. Si clicas el botón si, se
invocará el método Swap que provoca que se cambie de escena al escenario
elegido.
6.2.8.3 Menú Inicial
Esta interfaz es lo primero en mostrarse nada más abrir el juego. Está
controlada generalmente por el script InitMenu y contiene las opciones necesarias
para comenzar una nueva partida, continuar la partida, acceder a la enciclopedia,
mirar los controles, cambiar las opciones y salir del juego.
Para crear una nueva partida se ejecuta el método nuevaPartida, en el cual
se crea un fichero de guardado nuevo sobreescribiendo el anterior estableciendo
los atributos del personaje a los iniciales y dando paso a la primera transición
para comenzar el juego. En caso de haber clicado el botón de continuar partida
se ejecutará el método cargarPartida, el cual busca en los ficheros de la aplicación
el fichero de guardado y carga los datos para que el jugador pueda continuar. En
70 Fuente: Elaboración propia.
92
el caso de los demás botones, se invocan sus respectivos métodos que hacen
aparecer las distintas interfaces como la enciclopedia, los controles y las opciones.
Por último, el botón de salir del juego invocará al método endGame que finalizará
la aplicación con el método de Unity Application.Quit.
6.2.8.4 Menú InGame
El menú Ingame es parecido al de inicio, aunque no contiene las mismas
funciones, y está controlado por el script InGameMenu. El menú dispone de las
siguientes opciones: volver al juego, ir al mapa, mostrar los controles, mostrar las
opciones y finalmente, salir al menú principal.
Volver al juego invoca el método backGame cuya función es quitar el menú
de nuevo. Luego existe la función swapMapa la cual cambia de escena al jugador
para volver al mapa y elegir de nuevo hacia dónde dirigirse. Por último, tenemos
la opción de salir al menú principal que provoca un cambio de escena hacia el
menú principal.
Otra de las características de este menú es que, gracias al script PlayerStats
y su patrón singleton, podemos acceder a las características de nuestro personaje
(figura 6.21) mediante un GameObject con una componente tipo Text.
Figura 6.21. Menú InGame 71.
71 Fuente: Elaboración propia.
93
6.2.8.5 Enciclopedia
La enciclopedia es el apartado del juego donde el jugador puede aprender
y leer información sobre la historia, personajes y lugares que está viviendo
durante el juego. Está controlada por el script EnciclopediaController, y posee dos
GameObject principales, un menú Lateral y un menú superior.
El menú superior está compuesto por 4 botones que indican las distintas
secciones de la enciclopedia, mientras que el menú lateral está compuesto por
una ScrollList y textos. Y en el centro de la pantalla encontramos la información
sobre el elemento que hemos clicado.
Para mostrar la información primero hay que guardarla en ficheros aparte
en la carpeta del juego. Cuando se clique el nombre del elemento sobre el que el
jugador quiera informarse, se buscará en el fichero dicha información y se
colocará en el centro de la pantalla.
6.2.8.6 Opciones
La última interfaz son las opciones. Desde ella se podrá cambiar la
configuración de nuestro juego como, por ejemplo, la resolución de la pantalla,
modo pantalla completa o ventana, cambiar la sensibilidad del ratón dentro del
videojuego y bajar el volumen del juego. Para ello se usa el script OpcionesMenu
que tiene como parámetros un Audio Mixer y el Dropdown de las resoluciones. El
Audio Mixer es un elemento de Unity que emula un canal de voz por lo que todo
el sonido del juego se escucha al volumen al que se encuentre dicho mixer.
Para ver qué resoluciones tiene cada ordenador hace falta una variable de
Unity que es Screen.resolutions. Una vez se dispone de las distintas resoluciones,
se añaden a la lista del dropdown para mostrarlas.
94
Para cambiar las distintas opciones se han usado los siguientes métodos:
setSensibility, setFullscreen, setVolumen y setResolution. Los valores
correspondientes al volumen y a la sensibilidad son sencillos obtener el valor ya
que el deslizador nos da la capacidad de hacer las variables dinámicas de forma
que estos métodos reciben como parámetro el valor del deslizador y de esta
forma podemos cambiar estas variables.
6.2.9 Progreso en la historia
Para controlar el progreso en la historia que lleva al personaje se utiliza un
GameObject vacío con el script historyMan junto a un fichero JSON (figura 6.22).
Este script sigue también el patrón singleton para que se pueda acceder a él desde
cualquier parte de la aplicación. Dentro del script se guardan variables como el
capítulo y las partes actuales dentro de ese capítulo, y de esta manera siempre se
sabe en qué lugar está en la historia.
Figura 6.22. Archivo Capitulo1.json 72.
Como se aprecia en la figura 6.22, dentro del fichero se dispone de
distintos valores como el número de la parte del capítulo, el mapa y lugar donde
se encuentra el siguiente NPC para avanzar, el nombre del NPC y si al pasar a la
siguiente parte hace falta poner una transición.
72 Fuente: Elaboración propia.
95
Las transiciones (figura 6.23) son fragmentos de la historia que se
muestran en forma de cartas escritas por la propia Olympe al avanzar de una
parte del capítulo a otra.
Figura 6.23 Transición entre capítulos 73.
Cada vez que el jugador finaliza una conversación con un NPC se
comprueba si el NPC con el que acaba de hablar es el que indica el fichero del
capítulo. Si es correcto la variable parte actual avanzará, y se comprueba si existe
una transición. Si existe comienza una corrutina que invoca un método llamado
ponerTransicion que lleva al jugador a la escena transición. Una vez se ha llegado
a la última parte se avanzará de capítulo y se utilizará el método cargarCapitulo
con el siguiente fichero.
6.2.10 Sistema de guardado
El juego dispone de un sistema de guardado que, tal y como se explica en
el apartado 5.5.8 del Documento de Diseño del Videojuego solo se podrá guardar
73 Fuente: Elaboración propia.
96
una vez finalizado un capítulo para añadir una dificultad mayor al juego y,
además, se guardará automáticamente al acabar el capítulo actual.
Figura 6.24 Diagrama de flujo del sistema de guardado 74.
Tal y como se muestra en el diagrama de flujo (figura 6.24), cuando se
inicia el script que controla el sistema de guardado lo primero que se realiza es
comprobar si el capítulo ha finalizado. Si ha finalizado se guardarán los datos en
un fichero JSON sencillo, el cual contiene los datos necesarios para continuar el
juego posteriormente, que son el nombre del fichero del capítulo en el que se
encuentra y los atributos principales del jugador en ese momento (Carisma,
Salud, Dinero y Reputación).
6.2.11 Rigging y animación de los personajes
Para realizar las animaciones del videojuego se ha realizado rigging. El
rigging es un proceso creativo que se inicia con un modelo tridimensional,
necesario para poder deformar y animar personajes de manera fácil y efectiva. Se
74 Fuente: Elaboración propia.
97
denominan riggs (figura 6.25) a cada creación dirigida a un movimiento en
particular como, por ejemplo, riggs para los músculos, las extremidades, etc.
(Monsuton, 2019).
Figura 6.25 Modelo 3D rodeado de riggs 75.
El primer paso para realizar las animaciones es crear una estructura de
huesos que representen correctamente el modelado 3D del personaje que se
quiere animar. Para ello se ha empleado el programa de Blender (figura 6.26), el
cual nos permite crear los distintos huesos y asignarlos a las partes
correspondientes del modelado. La creación de la estructura es un proceso
costoso debido a que en numerosas ocasiones el modelo se deforma durante la
animación por lo que habría que volver a colocar los huesos para que esto no
suceda.
75 Fuente: https://www.monsuton.com/rigging/
98
Figura 6.26 Estructura de huesos y modelo 3D de un personaje 76.
Una vez se dispone de la estructura de hueso del personaje se realizan las
distintas animaciones que se van a emplear posteriormente en el videojuego. Para
realizar las animaciones se deben mover los huesos imitando dicha acción y
guardando esos keyframes77 para que Blender lo interpole automáticamente. Una
vez realizado ya es posible exportar la animación dentro del Unity como son la
animación de hablar y la animación de espera.
Por último, una vez importada la animación dentro de Unity se debe crear
un Animation Controller como en la figura 6.27. Este elemento permite poner las
condiciones necesarias para que el personaje pase de una animación a otra. En el
videojuego se ha empleado una variable booleana llamada Talking, que indicará
76 Fuente: Elaboración propia.
77 En animación, un keyframe es la localización en una línea de tiempo de un momento
concreto.
99
cuando el personaje está hablando, y si lo está haciendo cambiará a la animación
de hablar.
Figura 6.27 Animation Controller de un personaje 78.
78 Fuente: Elaboración propia.
100
7. Conclusiones
Tras varios meses de trabajo, he conseguido desarrollar un videojuego
incluyendo todas las fases de desarrollo necesarias para crear un producto
software: planificación, análisis, diseño, implementación y pruebas.
He descubierto que el transcurso completo de un producto software, ya sea
un videojuego o una aplicación, no es para nada sencillo, y que en el camino nos
podemos encontrar con distintos baches que nos dificultan el desarrollo, pero con
constancia y dedicación se pueden superar estas dificultades. El principio del
proyecto fue costoso ya que había que reunir una gran cantidad de información
previa sobre videojuegos del mismo género para tomar como referentes, sobre
los distintos motores que existen para decidir con cual se iba a realizar el proyecto
y la elección de herramientas para crear los distintos recursos empleados en el
juego.
Durante el desarrollo he aprendido habilidades nuevas como la creación de
videojuegos con Unity, realizar una estructura de huesos y el rigging de los
modelados para crear animaciones sencillas. Además, también he conseguido
mejorar habilidades como por ejemplo, la programación en C#, el modelado, el
texturizado y la edición de sonido entre otras.
La planificación del proyecto no fue la esperada debido a que comencé a
trabajar y esto no me permitía dedicar las horas que me hubiese gustado por lo
que el proyecto sufrió un retraso. Además, durante el desarrollo surgen distintos
problemas que, a pesar de estar planificados dejando un margen de tiempo
siguen existiendo como, por ejemplo, los errores.
En cuanto a los objetivos planteados en el proyecto, se ha conseguido
desarrollar un videojuego histórico en el cual se puede conocer la vida de Olympe
101
de Gouges y aprender jugando. También se ha conseguido realizar la creación de
un documento del diseño del videojuego completo (GDD) desde cero. El autor
ha adquirido experiencia en la planificación de un proyecto siguiendo un modelo
de desarrollo iterativo. Además, también se ha obtenido experiencia en el
desarrollo de videojuegos y en el uso del motor de Unity.
A pesar de los problemas, estoy orgulloso del trabajo realizado ya que he
conseguido crear un videojuego desde cero y todo lo que ello respecta, como
realizar un documento de diseño del videojuego completo (GDD), aunque en un
futuro me gustaría mejorar la optimización del proyecto y añadir más contenido
para continuar la historia.
Crear un videojuego es un buen paso para introducirse en la industria,
aunque sea un videojuego de corta duración ya que te aporta una experiencia
que antes no tenías y de cara a futuros proyectos te ves con una mayor
preparación que ayudará a que los próximos desafíos sean resueltos con una
facilidad mayor.
Por último, estoy orgulloso de haber podido defender mis ideales e intentar
demostrarlo con este proyecto. Enseñar que también se puede aprender gracias
a los videojuegos y que pueden ser una buena herramienta, no solo para aprender
cosas didácticas como matemáticas, historia o geografía, sino que también ayuda
a los jugadores a desarrollar distintas habilidades que se emplean diariamente
como el trabajo en equipo, la gestión de los recursos y el desarrollo de la memoria
cognitiva.
102
8. Bibliografía
Adams, Ernest. 2006. Fundamentals of Game Design. s.l. : Prentice Hall, 2006.
AEVI. 2020. AEVI. [En línea] 2020. http://www.aevi.org.es/la-industria-del-
videojuego/en-el-mundo/.
ConceptArtEmpire. 2020. conceptartempire.com. [En línea] 2020.
https://conceptartempire.com/free-game-engines/.
DefinicionDe. 2013. definicion.de. [En línea] 2013.
https://definicion.de/videojuego/.
EducacionTresPuntoCero. 2020. Educaciontrespuntocero. [En línea] 2020.
https://www.educaciontrespuntocero.com/recursos/sagas-videojuegos-ensenan-
historia/.
Educo.org. 2015. educo. [En línea] 2015. https://www.educo.org/Blog/5-cosas-
que-los-ninos-aprenden-jugando-a-videojuegos.
Eronen, Jukka. 2015. SpringBringer. [En línea] 2015.
http://www.springbringer.com/web/fantasya/index.html.
GameIndustry.biz. 2020. GameIndustry.biz. [En línea] 2020.
https://www.gamesindustry.biz/articles/2020-01-16-what-is-the-best-game-
engine-is-unreal-engine-4-the-right-game-engine-for-you.
GamerDic.es. 2013. gamerdic.es. [En línea] 2013.
https://www.gamerdic.es/termino/motor-de-juego.
Thomas, Apperley. 2013. Genre and game studies. s.l. : Simulation & Gaming,
2013.
103
HighGroundGaming. 2020. HighGroundGaming. [En línea] 2020.
https://www.highgroundgaming.com/best-games-made-with-unity/.
IslaDeMonos. 2020. Islademonos. [En línea] 2020.
https://islademonos.com/articulos/las-aventuras-graficas/.
Kanbanize. 2016. Kanbanize. [En línea] 2016.
https://kanbanize.com/es/recursos-de-kanban/primeros-pasos/que-es-kanban.
monsuton. https://www.monsuton.com/rigging/. [En línea]
https://www.monsuton.com/rigging/.
Monsuton. 2019. https://www.monsuton.com/rigging/. [En línea] 2019.
https://www.monsuton.com/rigging/.
ProyectosAgiles.org. 2018. ProyectosAgiles.org. [En línea] 2018.
https://proyectosagiles.org/desarrollo-iterativo-incremental/.
GameSpot. 2010. The History of Console RPGs. 2010.