Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TFMUEX 2017 Franco Martin PDF
TFMUEX 2017 Franco Martin PDF
Escuela Politécnica
Máster en Ingeniería Informática
Desarrollo de un Prototipo de
Videojuego
Escuela Politécnica
Desarrollo de un Prototipo de
Videojuego
Autor: Ricardo Franco Martín
Fdo:
Fdo:
Tribunal Calicador
Presidente:
Fdo:
Secretario:
Fdo:
Vocal:
Fdo:
Dedicado a
mi familia
i
ii
Agradecimientos
mitirme realizar este proyecto y recibirme con los brazos abiertos cada vez
importantes de mi vida.
llegado tan lejos. En especial, darle las gracias a mi hermano José Carlos
para el proyecto.
iii
iv
Resumen
Este Trabajo de Fin de Máster (en adelante TFM) trata sobre todo el
de un prototipo de videojuego.
funcional que pueda ser jugado y que reeje las principales características
quitectura software.
v
vi
Abstract
This Master's Thesis deals with the entire process of research, setting up of
We will analyze the current technology and review some of the most relevant
Next, we will try to develop a video game. For that, from a game concept
idea, mechanics are designed and a functional prototype is built to get an initial
playable version of the sofware product that represent the main characteristics
of the prime game concept. The goal is to check if the game is viable, fun and
ture.
vii
viii
Índice general
Agradecimientos iii
Resumen v
Abstract vii
Índice de Figuras xv
1. Introducción 1
2. Introduction 3
3. Motivación 5
3.1. Sociedad del Entretenimiento . . . . . . . . . . . . . . . . . . . 5
3.3. Propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4. Motivation 9
4.1. Society of Entertainment . . . . . . . . . . . . . . . . . . . . . . 9
4.3. Proposal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
ix
5.1.1. PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.1.2. Videoconsolas . . . . . . . . . . . . . . . . . . . . . . . . 16
5.2.1. Unity . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.2.3. CryEngine . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6. State of art 27
6.1. Gaming Platforms . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.1.1. PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.2.1. Unity . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.2.3. CryEngine . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.4. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.1.1. Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
x
7.1.2. Descripción . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.1.3. Ambientación . . . . . . . . . . . . . . . . . . . . . . . . 38
7.1.4. Mecánicas . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.1.5. Referencias . . . . . . . . . . . . . . . . . . . . . . . . . 39
7.1.6. Riesgos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
7.2.1. Jugabilidad . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.4. Prototipado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7.5.2. Juego/Jugabilidad . . . . . . . . . . . . . . . . . . . . . 62
7.5.4. Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8. Resultados y Discusión 69
9. Conclusiones 79
10.Conclusion 81
11.Trabajos Futuros 83
12.Referencias 85
xi
xii
Índice de cuadros
xiii
xiv
Índice de guras
5.1. PlayStation 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.4. Wii U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.7. PlayStation VR . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
xv
7.12. Ejemplo de prueba con arma, palanca y láser . . . . . . . . . . . 51
8.11. Captura del menú de n del nivel con una lista de puntuaciones
máximas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Unity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
de Unity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
xvi
B.1. Captura de Blender con las plantillas 2D del personaje . . . . . 96
xvii
xviii
Capítulo 1
Introducción
los jugadores que no son posibles en otros sectores como el cine o la música.
1
En videoconsolas es más complicado desarrollar y publicar un videojuego,
1
está apostando por los estudios independientes y algunas empresas como Sony
más importantes del sector del videojuego, tanto desde el punto de vista
desarrollar.
del mismo.
sobre el TFM.
utilizadas.
1 Noes un término muy bien denido, pero suele refererise a estudios pequeños sin apoyo
por parte de una distribuidora de videojuegos
2
Chapter 2
Introduction
The video game industry has become one of the most powerful industries
entry.
However, nowadays, there are many tools and facilities to develop video
Development environments and video game engines that include the pos-
Tools for publishing and monetizing video games, some of them included
3
On videogame consoles it is more complicated to develop and publish a video
1
developers have recently become very important and some companies like
The chapters 5 (spanish) and 6 (english) review some of the most im-
portant aspects of the video game sector, both from the point of view
this way, we will review and analyze the most relevant gaming platforms
and game development tools for the current industry and for this TFM.
Furthermore, we will talk about some similar video games to the one
The chapter 7 describes the choice of the environment and tools to de-
velop a video game and the process followed for its construction.
used.
1 It
is not a very well dened term, but usually refers to small studies without support
from a videogames distributor
4
Capítulo 3
Motivación
vida de los seres humanos. Las personas suelen dedicar su tiempo de ocio en
realizar actividades que les divierten y alejan de las preocupaciones del día a
día. De hecho, entre las muchas deniciones que se han hecho de la sociedad
5
3.2. Los Video juegos
altavoces, etc). Existen otros puntos de vista o deniciones del término (me-
Máster.
3.3. Propuesta
el perl de programación.
6
Construir una versión estable y funcional que reeje las características y
7
8
Chapter 4
Motivation
This chapter discusses the importance of video games in society and justies
Entertainment has a very important role in the human lifetime. People often
expend their leisure time on activities that amuse and get them away from the
worries of the day to day. In fact, among the many denitions that have been
with prot. Some examples are Television, radio, music, magazines, sports,
9
4.2. Video Games
A video game is an electronic game. Users interacts with the game via input
devices or controllers (command, keyboard, mouse, camera, etc.) and the game
are other points of view of the term (entertainment medium, software product
Video game has become one of the most important sectors of the entertain-
ment industry. It is estimated that in 2015 the video game industry moved
The main reasons for developing a video game as a proposal of this TFM
Degree.
posal.
future job.
4.3. Proposal
Investigate the video game developing process, especially from the pro-
gramming prole.
10
Build a stable and functional version that reects the characteristics and
Document the whole process performed for the construction of the video
game.
11
12
Capítulo 5
usuarios, no siempre ocurre así. De esta forma, podemos distinguir los siguien-
Juegos exclusivos. Son títulos que salen al mercado para una plata-
negocio o por ser inadecuados para las demás. Algunos ejemplos de jue-
13
Juegos multiplataforma. Videojuegos que se publican para más de
una plataforma. Algunos ejemplos son Grand Theft Auto, Call of Duty
Por otra parte, según el formato de venta del juego podemos diferenciar:
Son muchos los dispositivos disponibles para jugar a videojuegos. Por este
5.1.1. PC
Ventajas:
problemas de compatibilidad.
14
Pueden ofrecer juegos tecnológicamente mejores que en consolas. El PC
Desventajas:
Los usuarios deben preocuparse de los requisitos de los juegos y del man-
el apoyo suciente por parte de los usuarios, el juego podrá ser publicado
en la tienda principal.
1
popular, pero Microsoft ya ha empezado a publicar sus juegos AAA ,
15
ción de videojuegos sin gestión digital de derechos (DRM, Digital Rights
Humble Bundle. Este servicio cuenta con una tienda virtual, pero des-
taca por la creación de paquetes de juegos donde el usuario paga la
5.1.2. Videoconsolas
Las videoconsolas suelen ser consideradas las plataformas de juego por ex-
celencia, donde el usuario solo tiene que de introducir el juego y jugar, sin
posibilidad de reproducir videos, música, navegar por internet, etc. Ahora los
16
Figura 5.1: PlayStation 4
17
Figura 5.4: Wii U
Android (PlayStore).
está apostando fuerte por estos dispositivos. De esta forma, surge un nuevo
18
Oculus Rift.
HTC Vive.
PlayStation VR.
19
Figura 5.8: Samsung Gear VR
paso del tiempo. FreeScape fue uno de los primeros motores 3D utilizados pa-
20
5.2.1. Unity
ejecutar en Linux.
No hay que pagar regalías por vender productos creados con Unity, hasta
Incluye una tienda con todo tipo de recursos, tanto gratuitos como de
y Visual Studio.
(anexo A).
21
Proporciona gestión de grácos, animaciones, iluminación, shaders, au-
lidad y rapidez.
mente para juegos AAA. Su último producto es Unreal Engine 4, que con una
Permite su uso de forma gratuita, pero cuenta con una regalía del 5 % de
22
Utiliza BluePrint como lenguaje de programación visual.
Cuenta con uno de los motores grácos más potentes del mercado.
5.2.3. CryEngine
licencia.
23
Figura 5.11: Ejemplo del editor de CryEngine
Existe una extensa lista de motores de videjuegos 3D y 2D. Entre los más
Source2.
Amazon Lumberyard.
Ogre3d.
Torque3D.
Cocos2d.
Construct 2.
Game Maker.
Libgdx.
24
5.2.5. Otras Herramientas
tantes para la creación de videojuegos que no suelen estar integradas junto con
Modelado 3d. Adobe 3ds Max, Adobe Maya, Blender, ZBrush, OpenS-
CAD, etc.
etc.
Hay muchos videojuegos que incluyen un editor de niveles, pero suele ser
una herramienta extra. Sin embargo, si hay ciertos productos que basan su
25
nivel.
género.
nivel.
trega de la serie Mario Bros que cuenta con un potente editor donde los
Hemos repasado los dispositivos de juego actuales más relevantes para en-
Por otra parte, se han enumerado y descrito algunos juegos con mecánicas
similares para tener una referencia y comenzar con el desarrollo del videojuego.
planteado.
26
Chapter 6
State of art
In this chapter, we will briey review the history of video games and study
the main gaming platforms and tools to create video games. We will study these
Although producing games for as many devices as possible and getting more
users is the trend of video game development companies, it is not always the
case. In this way, we can distinguish the following types of video game:
Multiplatform games. Video games are published for more than one
platform. Some examples are Grand Theft Auto, Call of Duty or sports
27
video games like Fifa and Pro Evolution Soccer.
On the other hand, there are several types of videogames depending on the
sale format:
Physical video games. It is the traditional sale format. Games are usually
in this area; where in addition to the game itself, art books, models or
Digital video games. This format is getting over the physical market.
Generally, the users own an account and the videogames or products
There are a lot of hardware devices to play videogames. For this reason, we
6.1.1. PC
Computers are general purpose machines but they are the leading platform
Advantages:
With few exceptions, the user can play any old game without any com-
patibility problems.
28
has less resource limitation.
Disadvantages:
Users should be concerned about system requirements of games and
It can not oer the comfort of consoles to play on the living room sofa.
independent developers can publish their games and if the game has
enough support from the users, it can be published in the main store.
Origin, Uplay. They are the digital video game distribution platforms
of Electronic Arts and Ubisoft, respectively.
Humble Bundle. This service has a virtual store, but stands out for
29
the creation of game packages. The users can pay the amount he consi-
der appropriate, in addition, they can choose the receiver of the money
G2A, Kinguin, Green Man Gaming, etc. They are distribution sto-
res of game keys. The products are usually cheaper than in the previous
services and the key is used to activate and associate the game with the
user account in a major virtual stores, usually Steam, Origin, Uplay and
GOG.
Consoles are usually considered the gaming platform par excellence, the
user only has to introduce the game disk and play, without worrying about
other aspects.
However, consoles have evolved into multimedia devices, with the possibility
of playing videos, music, surng the World Wide Web, etc. Now video games
require partial or complete installation on the hard drive and patch upgrades,
even on the rst day of game launch. In this way, the facilities and comforts
The main video game consoles also have an online game sale service and
30
6.1.3. Mobile Devices
tion distribution services have led companies in the video game industry and
complicated market, where it is dicult to stand out and most of the prots
Android (PlayStore).
Although virtual reality is not a new technology, it is now when many com-
panies are doing many tests with these devices. In this way, a new unexplored
There are several virtual reality devices, the most important are:
Oculus Rift.
HTC Vive.
PlayStation VR.
31
6.2. Video Game Development Tools
In the past, video games were developed from scratch, without the use of
the possibilities grew and the complexity increased, so new approaches were
needed to optimize the development cycle. First Person Shooter games (FPS)
were the rst to encourage the development and use of these tools, which we
The rst engines mainly focused on the task of rendering graphics, although
they were incorporating more features with the passage of time. FreeScape was
one of the rst 3D engines used to create video games. Later, tools like id Tech
Currently, game engines are usually made up of a set of tools and software
support service, etc.) to manage, lead and facilitate most phases of the video
games development.
6.2.1. Unity
It has ocial versions for Windows and Mac, although it can also run
on Linux.
There are not royalties to pay for selling products created with Unity,
until you raise one hundred thousand dollars per scal year.
32
It has a store with all kinds of resources, free and paid, created by the
community.
programming environments.
Created by Epic Games, it is the most popular video game engine, especially
for AAA games. Its latest product is Unreal Engine 4, which with a dierent
business vision to its previous versions, it oers a powerful and complete set
of tools for the development of video games. Some of its characteristics are:
Open source engine. You can access the code in Github and be part of
the development.
33
It allows its use for free, but it has a royalty of 5 % of prots from the
6.2.3. CryEngine
Created by Crytek, it is one of the most powerful current video game en-
Source2.
Amazon Lumberyard.
Ogre3d.
Torque3D.
Cocos2d.
Construct 2.
34
Game Maker.
Libgdx.
There are other important tools for creating video games that are not
usually integrated with the game engine. Among them, we can list the fo-
llowing:
etc.
There are many video games that include a level editor, but it is usually an
extra tool. However, there are certain products in which the main base is the
Little Big Planet (2008). This is the main reference used for the
It has been created by Media Molecule for the major platforms of Sony.
35
It is a platform game, physics-based, in two dimensions, but has several
discrete depth levels, so there are actually three dimensions. That is, the
It has a powerful level editor where users have even got to represent
1
physics , so the attraction of the game is the diculty of controlling the
levels creators.
6.4. Conclusion
We have reviewed the most relevant current game devices to focus on one
or more of these devices and we have listed and studied some tools exist for
On the other hand, we have described some games with similar mechanics
to have a reference and begin with the video game development process.
In this way, we start from a solid base to develop the proposed project.
36
Capítulo 7
7.1.1. Perl
37
7.1.2. Descripción
crear niveles con las herramientas y mecánicas del juego, compartirlos con la
7.1.3. Ambientación
1
El juego será completamente en dos dimensiones, excepto el avatar , que
estará modelado en 3d (anexo B). Se utilizará una estética cel shading para el
personaje, es decir, se dibujará el contorno del personaje para darle un toque
de dibujo animado.
7.1.4. Mecánicas
planteen.
El avatar puede:
38
El jugador puede crear niveles en un editor utilizando los bloques, dis-
en la dicultad.
Ejemplo 2. Un dispositivo, que emite una señal cada cierto tiempo, activa
hace daño.
7.1.5. Referencias
7.1.6. Riesgos
La experiencia de usuario del editor debe ser muy buena para que el
39
Se necesita un servidor para gestionar los niveles.
7.2.1. Jugabilidad
El juego está compuesto por una serie de mecánicas que podemos clasicar
en:
del jugador:
impida o llegue a los límites del nivel. Hay tres valores de velocidad,
una cuerda.
40
• Deslizar. Si el avatar está corriendo, puede realizar un deslizamien-
to por el suelo, de forma que puede esquivar ciertos obstáculos sin
impidan.
41
Mecánicas lógicas. Compuesto por todos los elementos lógicos del ni-
vel:
son los usuarios los creadores, hay que proporcionarles una buena herramienta
Hay que tener en cuenta que la creación de un nivel está asociado y limitado
cosa que se le ocurra, ya que no es una herramienta para crear juegos, sino un
entorno que permite crear niveles relacionados con las mecánicas del juego.
los elementos descritos en la sección 7.2.1, dando como resultado un nivel que
42
7.3. Entorno de Desarrollo
7.4. Prototipado
funcionen.
del mismo.
43
7.4.1. Primera Versión
de algunas mecánicas del juego con guras básicas como cubos y esferas. Se
donde se representa el uso de las mecánicas del juego para presentar retos y
puzles que el jugador debe superar controlando al avatar. Esta versión debe
44
presentar elementos jugables que el usuario debería poder crear y personalizar
nando agachado.
45
Figura 7.3: Mecánica de agacharse
En la gura 7.4 el avatar tiene que saltar a la plataforma que se está mo-
a la parte superior.
46
Figura 7.5: Mecánica de saltar sobre las paredes
objetos. En este caso, el avatar tiene que arrastrar el objeto hacia la parte
En la gura 7.7 el avatar tiene que saltar, agarrarse a las cuerdas y balan-
47
cearse para llegar al otro lado.
En la gura 7.8 el avatar tiene que subirse al vehículo. Al pulsar los botones
avatar debe avanzar sin chocar con los bloques que se están moviendo arriba
y abajo.
48
En la gura 7.9 se muestra un pequeño puzle. El botón izquierdo mueve el
bloque gris de la derecha que bloquea el paso y el botón que está debajo de la
caja activa el láser. El avatar tiene que arrastrar la caja de un botón a otro
49
La imágen 7.11 muestra una serie de plataformas que se están moviendo
de arriba hacia abajo y viceversa. El avatar tiene que coordinar los tiempos y
Figura 7.11: Prueba con plataformas móviles que pueden aplastar al avatar
En la gura 7.12 el avatar tiene que interactuar con la palanca para desac-
tivar el láser sin ser impactado por el proyectil que dispara el arma situado a
la izquierda.
50
Figura 7.12: Ejemplo de prueba con arma, palanca y láser
En la gura 7.13 se muestra otro puzle. En este caso, el avatar tiene que
activar la palanca para que la plataforma móvil baje. Seguidamente, debe lan-
creando una caja que cae sobre el botón y desactiva el láser. Finalmente, el
51
Figura 7.13: Segundo ejemplo de puzle (1 de 3)
52
Figura 7.15: Segundo ejemplo de puzle (3 de 3)
azul, que crea un vehículo volador que se muestra debajo del portal. El avatar
53
puede subirse en él, de forma que al presionar el botón, activa los propulsores,
54
7.5. Arquitectura e Implementación del Juego
del juego.
apartados:
Editor de niveles.
Juego/Jugabilidad.
Interfaz de usuario.
Servidor.
para que los usuarios puedan crear niveles y puedan ser jugados por el resto de
entorno, incluido en el propio juego, que permite a los usuarios crear niveles
tidades. Representamos los modos de edición del editor como sistemas y los
objetos editables como entidades. De esta forma, un objeto editable estará
compuesto por una serie de componentes que establecen los tipos de edición
De forma general, para que un objeto sea editable por un modo, deberá
contener un componente que identica al objeto como editable por ese modo y
otro componente con los datos a editar. Por ejemplo, un objeto será Escalable
55
por el modo de edición Escalar si contiene los componentes Scalable, que
indica que se puede escalar, y Scale, que almacena los datos de escalado.
Modos de Edición
En la mayoría de los casos, todos los tipos de tareas que realiza el usuario
puede desarrollar un modo para elegir una opción sobre un menú o paleta.
una paleta de objetos. En esta operación intervienen dos modos, el modo que
2 Los Prefabs son objetos prefabricados con una determinada conguración de componen-
tes
56
Componente de datos. Componente que almacena datos sobre un
tener varios modos activos. EditorMode es la implementación base con las fun-
cionalidades principales que tiene un modo. De esta forma, todos los modos
rísticas correspondientes.
58
PublishMode . Muestra un menú iteractivo, permitiendo cambiar los
detalles del nivel y publicar en el servidor para que los demás usuarios
puedan jugar.
Componentes de Edición
demos apreciar que hay propiedades para los tipos de datos básicos.
todas las entidades del nivel y la información de los componentes de datos. Las
Todo objeto editable que va a formar parte del nivel jugable tiene el
componente EditableEntity.
Todo componente que tenga datos relevantes para el objeto o nivel, he-
60
almacenar y cargar los datos.
archivo.
chivo en dos fases. En el primer paso, crea todos los objetos editables a
del nivel. En esta operación, todas las entidades de editor son transformadas
de tratar, pero otros componentes como las conexiones entre dispositivos, las
Los datos del componente Connection, que representa una conexión entre
61
los nodos de dos objetos editables, es procesado para unir los componen-
de juego son destruidas y los objetos editables del nivel son cargados a partir
Una vez el usuario esté conforme con su nivel puede publicarlo con un
nombre, una descripción y una captura de la región del nivel que considere
oportuna.
7.5.2. Juego/Jugabilidad
Avatar/Personaje
62
• Gestionar todos los movimientos del avatar.
estados para saber en todo momento el estado del avatar y sus posibles movi-
mientos.
63
ON_GROUND y ON_AIR no son estados realmente, simplemente es
RUNNING.
Objetos de Juego
desarrollado:
64
y eventos de C#, de forma que el receptor se mantendrá a la espera
tipos de interfaz:
Menú de juego. Son todos los menús que aparecen al ejecutar el juego.
Se han construido con las herramientas de interfaz de Unity, en una
volumen.
65
la posición y el tamaño de los descendientes del objeto que tiene el
componente.
Unity.
7.5.4. Servidor
66
Modelo de Datos
deducir lo siguiente:
Un nivel puede ser jugado por varios usuarios y un usuario puede jugar
Un usuario puede realizar valoraciones de los niveles, pero solo una por
cada nivel.
Servicio REST
67
Petición Parámetros Descripción
/register name, password Creación de un nuevo usuario
/login name, password Identicación de usuario
/levels/search keyword, updloaded, Búsqueda de niveles
sort_by
/play user_id, level_id Registro de una nueva partida
/score play_id, value Registro de la puntuación de un
partida
/rate user_id, level_id, va- Valoración de un nivel
lue
/level user_id, title, descrip- Publicación de un nivel
tion, image, content
Petición Descripción
/levels/:level_id/content Descarga del contenido de un ni-
vel jugable
/levels/:level_id/image Descarga de la imagen de un nivel
/levels/:level_id/scores/:user_id Petición de las puntuaciones de
un nivel relativas a un jugador
68
Capítulo 8
Resultados y Discusión
brado como Toy Box, mostrando capturas de pantalla de los principales ele-
mentos del mismo.
búsqueda.
Customize. Muestra un menú (gura 8.5) para cambiar los colores del
avatar.
69
• Conguración de sonido (gura 8.3).
teclado o mando.
contrará una escena como la que se presenta en la gura 8.7. El usuario puede
mover la cámara por el nivel hasta los límites del mismo y puede utilizar los
botones del menú para crear objetos y realizar otras acciones. El usuario puede:
3. Cambiar el color. Al crear las guras básicas, éstas aparecen con el color
seleccionado.
5. Borrar objetos.
6. Abrir la paleta de objetos. Muestra un menú (gura 8.8) con todos los
a un objeto raíz.
70
11. Conectar dos bloques con una unión rígida. En el nivel jugable no se
12. Conectar dos guras con un eje. Es similar a la unión rígida, pero la
perder el progreso. Una vez el usuario está satisfecho con el resultado, puede
Por otra parte, cuando un jugador termina el nivel, se presenta un menú (-
gura 8.11) con su puntuación actual y máxima y una lista con las puntuaciones
71
Figura 8.2: Captura del menú de opciones grácas
72
Figura 8.4: Captura del menú de opciones de los controles del juego
73
Figura 8.6: Captura del menú de gestión de niveles editables del jugador
74
Figura 8.8: Captura de la paleta de objetos del editor de nivel
75
Figura 8.10: Captura del menú de búsqueda y selección de niveles
Figura 8.11: Captura del menú de n del nivel con una lista de puntuaciones
máximas
una base mínima que permite cierta exibilidad a la hora de crear niveles, pero
opciones y renar las presentes para que este juego fuera un buen producto
76
No se controla ciertos aspectos de seguridad relacionados con el servidor
y los usuarios.
las mecánicas principales del juego. Todos los elementos, relacionados con el
77
78
Capítulo 9
Conclusiones
desarrollar el juego completo superaría el alcance del TFM. Sin embargo, al-
antes posible. Otras razones son aprender más sobre Unity y el desarrollo de
videojuegos.
Utilizar Unity como motor del juego ha facilitado en gran medida muchos
de los aspectos del desarrollo del proyecto, pero en algunos casos se ha tenido
79
tación más adecuada para un videjuego, pero se ha realizado así para agilizar
Como conclusión nal, aunque quedan algunos aspectos que añadir y me-
jorar, se ha conseguido construir una versión estable y que representa las me-
80
Chapter 10
Conclusion
The initial proposal was to develop a video game prototype, since developing
the complete game would be beyond the scope of this TFM. However, some
aspects, like the level editor, are not trivial to be prototyped. For this reason,
it has been decided to take a step further and develop some functionalities
thinking about the software architecture and not so much about getting a
The previous decision has impacted the scope of the project and has devoted
more eort than estimated (300-350 hours). However, the diculties that have
arisen have been sucesfully solved in most cases and valuable knowledgement
has been achieved, fullling one of the most important objectives of the TFM.
Using Unity as the main engine of the game has greatly facilitated many
Regarding the architecture of the server, it may not be the most suitable
implementation for a videogame, but it has been done in this way in order to
81
speed up the development and quickly obtain a functional version to manage
On the other hand, the art section is very improvable, it is the loosest aspect
of the video game, but in a prototype this does not matter so much and it is
In conclusion, although there are some aspects to add and improve, it has
managed to build a stable version that represents the mechanics and approa-
ches described in the concept document. Knowledge about the process of pro-
totyping and video game development, video game software architecture and
82
Capítulo 11
Trabajos Futuros
83
84
Capítulo 12
Referencias
Dispoible en:
https://es.wikipedia.org/wiki/Videojuego
Disponible en:
https://unity3d.com/
ponible en:
https://www.unrealengine.com/
by Crytek.
c 2016 [consulta: 18 mayo 2016]. Disponible en:
https://www.cryengine.com/
https://www.blender.org/
85
3ds Max. Software de modelado y renderización en 3D.
c 2016 [consulta:
http://www.autodesk.es/products/3ds-max/overview
https://www.tutorialspoint.com/software_architecture_design/ compo-
nent_based_architecture.htm
https://www.youtube.com/watch?v=NTWSeQtHZ9M
Entity system architecture with Unity. Maxim Zaks & Simon Schmid,
2015. Disponible en:
https://www.youtube.com/watch?v=1wvMXur19M4
Referencia de C#.
c 2016 [consulta: 2 mayo a 12 noviembre 2016]. Dis-
ponible en:
https://msdn.microsoft.com/es-es/library/618ayhy6.aspx
Disponible en:
https://docs.unity3d.com/es/current/Manual/index.html
Disponible en:
https://docs.unity3d.com/ScriptReference/
86
Introduction to Unity UI Part 1.
c 2016 [consulta: 14 junio 2016]. Dis-
ponible en:
https://www.raywenderlich.com/114700/introduction-unity-ui-part-1
http://ruby-doc.org/
http://rubular.com/
Disponible en:
http://www.sinatrarb.com/documentation.html
87
88
Apéndice A
go. Por este motivo, hay que considerar ciertos aspectos importantes. Uno de
de objetos.
89
funcionalidad o añadir un nuevo comportamiento.
Por otra parte, Unity utiliza en su motor una visión particular de la AOC,
los componentes Collider y Rigidbody, que contienen datos sobre la forma del
objeto (colisiones) y sobre las propiedades físicas. El Sistema de físicas, en cada
iteración, inspecciona todas las entidades que cuenten con esos componentes y
los utiliza para realizar los cálculos correspondientes y modicar los datos de
la entidad.
guientes:
de programación.
90
Figura A.1: Flujo de ejecución de la clase MonoBehaviour dentro del motor
Unity
91
Utiliza el paso de mensajes para realizar la comunicación entre compo-
nentes. Hay que tener en cuenta que está técnica es muy costosa, ya que
Los campos
1
públicos o marcados con el atributo
2
[SerializeField] de un
componente aparecerán en la ventana Inspector del editor de Unity, de
forma que podemos ajustar los valores de dicho atributo sin pasar por el
código.
92
Figura A.2: Ejemplo de atributos de un componente en la ventana Inspector
de Unity
gencia articial, vida y muerte, de forma que podrá ser utilizado para
93
94
Apéndice B
en la gura B.1.
se escalan y rotan las aristas y caras del modelo para dar forma al
personaje.
95
malla, los vértices de las diferentes secciones no están unidos.
asignar los vértices que mueve cada uno. Debido a que el personaje se ha
96
Figura B.2: Captura de Blender el módelo 3D completado
97
98