Desarrollo de Videojuegos
Desarrollo de Videojuegos
Desarrollo de Videojuegos
Contenido
1. Introducción ............................................................................................................................... 4
1.1. Justificación ....................................................................................................................... 4
1.2. Objetivo General ............................................................................................................... 5
1.3. Objetivos específicos ....................................................................................................... 5
1.4. Metodología ....................................................................................................................... 5
2. Historia ....................................................................................................................................... 6
2.1. Propuesta......................................................................................................................... 10
3. Casos de Uso ............................................................................................................................. 11
4. Herramientas de Hardware ...................................................................................................... 11
5. Herramientas de Software ........................................................................................................ 12
5.1 Unity3D .............................................................................................................................. 12
5.2. Base de Datos ..................................................................................................................... 13
5.2.1. SQLite ........................................................................................................................... 13
6. Presupuesto ................................................................................................................................ 16
7. Plan de Trabajo (Gantt) ......................................................................................................... 17
8. Diseño .......................................................................................................................................... 19
8.1. Interfaz.................................................................................................................................. 19
8.2. Assets ................................................................................................................................... 19
8.3. Scenes.................................................................................................................................. 19
8.4. GameObjects....................................................................................................................... 21
8.5. Colliders ............................................................................................................................... 21
8.6.2. AudioSource ................................................................................................................. 22
8.6.3. Rigidbody ...................................................................................................................... 22
8.7. Scripts ................................................................................................................................... 23
9. Arquitectura software................................................................................................................. 23
10. Implementación ........................................................................................................................ 24
10.1. Héroe .................................................................................................................................. 24
10.2 Género. ............................................................................................................................... 24
10.3 Público objetivo. ................................................................................................................. 24
10.4 Historia ................................................................................................................................ 24
10.5 Personajes .......................................................................................................................... 25
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
1. Introducción
Hoy en día los videojuegos están en todas partes, en dispositivos portátiles con los
que estamos en contacto constante, como teléfonos inteligentes y tabletas, así
como en una variedad de plataformas, incluidas computadoras, dispositivos de
realidad virtual y consolas de juegos. La industria actual ofrece una amplia gama de
títulos en diferentes géneros o subgéneros, así como una amplia gama de opciones
gráficas para una muy amplia gama de espectadores. Todo esto ha creado un auge
en la industria de los videojuegos, aumentando la demanda de talento y
herramientas de desarrollo en constante evolución. Los consumidores quieren
entretenimiento con videojuegos. En resumen, estamos constantemente
desarrollando cosas nuevas e innovadoras que cautiven a nuestros espectadores y
satisfagan sus expectativas y necesidades. Para mejorar nuestras habilidades de
diseño y desarrollo, este proyecto ofrece una gran oportunidad para hacerlo y
presenta todo lo que hemos aprendido a través de la investigación en diferentes
disciplinas. Proporcionaremos un enfoque general y sencillo al juego, haciendo que
todos los controles y funciones proporcionados por el juego sean lo más intuitivos
posible, con el objetivo de brindar una experiencia satisfactoria para el jugador.
1.1. Justificación
En los últimos años el sector de los videojuegos tiene un excelente boom. Cada
año, seguimos rompiendo números relacionados con las ventas y continúa
creciendo cada año pese a la crisis mundial que pasamos recientemente sigue
estando a la orden del día. Al mismo tiempo, el uso de teléfonos inteligentes y
tabletas como dispositivos de entretenimiento de videojuegos está creciendo en
popularidad, ya que muchos de ellos están a la par de una computadora o consola
tradicional desde el punto de vista del rendimiento. Las tiendas convencionales
como Playstore e iTunes están llenas de juegos desarrollados tanto por grandes
desarrolladores como por estudios independientes. La fase de desarrollo de los
videojuegos siempre ha sido muy cara y ha requerido mucho personal. Pero ahora
hay una cultura de empresas independientes, o lo que ellos mismos llaman
empresas independientes. Actualmente existen muchas herramientas que facilitan
la creación de videojuegos para equipos pequeños y medianos, entre ellas Unity, el
motor utilizado en este proyecto. Esto puede reducir significativamente el tiempo de
desarrollo y aumentar la disponibilidad de este tipo de juegos. Muchas de las
empresas mencionadas anteriormente utilizan estas herramientas. Incluso por
educación como es nuestro caso.
El principal impulso para la creación de este videojuego es aprovechar el potencial
desde una variedad de plataformas (PC, dispositivos móviles) con un alto grado de
usabilidad.
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
2. Historia
Década de 1980: la infancia de los videojuegos
Muchos juegos clásicos que todavía se mantienen fuertes hoy en día salieron en la
década de 1980: Pac-Man (1980), Ultima (1980), Mario Bros (1983), Tetris (1984) y
SimCity (1989). A principios de la década, no solo el mercado estaba inundado de
innumerables consolas nuevas, sino que comenzaron a aparecer computadoras
domésticas cada vez más baratas y potentes. En 1983 el mercado de las consolas
colapsó. Muchas empresas, entre ellas Atari, pionera en juegos y de gran éxito en
la industria, quebraron. Pero antes de eso, Atari logró lanzar el juego E.T. (1982),
todavía considerado el peor videojuego de todos los tiempos gracias a sus gráficos
toscos y su complicada jugabilidad. De los escombros de la industria surgieron las
firmas Commodore, con su computadora doméstica Commodore 64 (1982), y
Nintendo, con la consola Nintendo Entertainment System, o NES para abreviar
(1985). Con las tecnologías más refinadas, los juegos avanzaron hacia nuevas
esferas; el juego y los gráficos se volvieron más innovadores. Los juegos tenían sus
propios personajes e historias más complejas. La mayoría de los géneros como los
conocemos hoy en día tienen su origen en este período. El Commodore 64 incluso
permitió a los usuarios altamente motivados programar sus propios juegos. Los
niños y adolescentes de la década de 1980 pasaban horas frente a sus
computadoras o consolas domésticas, y con el lanzamiento de Game Boy a fines
de la década, incluso después de apagar las luces, seguían jugando a la luz de las
antorchas debajo de las mantas.
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
Mucha gente piensa que el primer juego para móviles fue Snake, lanzado en 1997
en el Nokia 6110, pero no es así. El primer juego móvil se introdujo tres años antes.
En 1994, el Hagenuk MT-2000 tenía una versión del popular juego de arcade Tetris
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
Avance rápido hasta 2007 cuando se lanzó el iPhone y un año después, con la
introducción de la App Store, nació una nueva era de juegos móviles. Cuando se
lanzó por primera vez la App Store, solo ofrecía 500 aplicaciones, como Texas
Hold'em y Super Monkey Ball. Con la introducción del iPhone en 2007, los
desarrolladores de juegos móviles pudieron utilizar el control multitáctil. En 2009, el
primer juego para teléfonos inteligentes que alcanzó popularidad mundial en poco
tiempo, Angry Birds, estableció el estándar para los juegos móviles en la década de
2010. Al comienzo de la nueva década, muchos editores de videojuegos
comenzaron a usar aplicaciones como una extensión de la segunda pantalla y como
aplicaciones complementarias para videojuegos como Assassins Creed o Grand
Theft Auto.
2.1. Propuesta
Este proyecto consiste en crear un videojuego desde cero. Su objetivo principal es
captar la esencia de los juegos de la década de los 80´s. La tecnología moderna lo
hace posible. Empezando por el paisaje del juego, emular los controles clásicos.
Cosas simples como caminar, correr, saltar, etc. Son acciones que el usuario puede
realizar. En el lado gráfico se realiza a la manera clásica, es decir: cada imagen de
esa animación se crea a mano por el creador, fotograma a fotograma. Estos
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
3. Casos de Uso
4. Herramientas de Hardware
Requerimientos ventanas Mac OS linux
mínimos
basados en
silicio de Apple)
5. Herramientas de Software
5.1 Unity3D
Unity3D. Es un motor gráfico 3D para PC y Mac que viene empaquetado como una
herramienta para crear juegos, aplicaciones interactivas, visualizaciones y
animaciones en 3D y tiempo real. Unity puede publicar contenido para múltiples
plataformas como PC, Mac, Flash(Hasta la version 4), XBox, PS2/3/4, Android,
PSVita y iPhone. El motor también puede publicar juegos basados en web usando
el plugin Unity web player.
5.1.1. Ventajas
1. Unity es la mejor aplicación para el desarrollo de juegos. Es muy efectivo al
renderizar escenas 2D y 3D. Unity también se puede usar muy bien para
renderizar imágenes en 3D. La calidad que ofrece también es relativamente
buena en comparación con otras aplicaciones.
2. Unity es excelente para el desarrollo multiplataforma y los juegos
multiplataforma. Las plataformas de desarrollo cruzado están muy de moda
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
SQL, y lo más importante es que se puede usar tanto en dispositivos móviles como
en sistemas de escritorio, sin necesidad de realizar procesos complejos de
importación y exportación de datos, ya que existe compatibilidad al 100% entre las
diversas plataformas disponibles, haciendo que la portabilidad entre dispositivos y
plataformas sea transparente.
5.2.2. Ventajas
Sin servidor
Una de las ventajas de nuestra lista de pros y contras de SQLite es que no tiene
servidor, lo que aumenta la velocidad y reduce la complejidad. Sin embargo,
también significa que la base de datos está confinada únicamente a la máquina en
la que está almacenada. No permite el trabajo remoto en otra PC, por ejemplo.
No es adecuado para aplicaciones a gran escala.
SQLite es liviano, es pequeño, es excelente para una computadora de escritorio o
un teléfono: almacenamiento local con un tamaño reducido. Cuando se trata de
aplicaciones más grandes con muchos usuarios simultáneos y muchos datos,
SQLite es menos óptimo. Estos usos requieren un DBMS basado en servidor mucho
más resistente.
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
6. Presupuesto
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
8. Diseño
8.1. Interfaz
8.2. Assets
8.3. Scenes
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
8.4. GameObjects
8.5. Colliders
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
8.6.2. AudioSource
8.6.3. Rigidbody
.
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
8.7. Scripts
9. Arquitectura software
La arquitectura, está en todo lo que hacemos y nos rodea, su función es mejorar
este entorno, y ésta también ha entrado en el ámbito de los videojuegos. Se concibe
como un atractivo, tanto desde el punto de vista de los espacios, como desde el
punto de vista comercial. Gracias a la implantación de escenarios modelados como
punto de conexión entre lo lúdico y cultural, como es jugar y la implantación del
tablero de juego en un contexto y en un entorno, hay cada vez un mayor reclamo
de grandes obras virtuales y espacios. El intento de conseguir aumentar la emoción
y las experiencias del juego, hace especial hincapié en el desarrollo de la
representación, mediante el uso de motores gráficos, más eficientes, y así obtener
detalles de un alto grado de definición, además de una recreación física del espacio
en el que habitamos, para introducirlo en el videojuego.
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
10. Implementación
10.1. Héroe
10.2 Género.
Los videojuegos de plataformas o, simplemente, plataformas, son un género de
videojuegos en los que el jugador tiene que saltar sobre plataformas suspendidas o
a lo largo de obstáculos y enemigos hasta llegar a una meta. Se considera la
presencia de un botón o función de saltar como parte central de la forma de juego
de este género, aunque en algunos casos la capacidad de saltar del personaje es
reemplazada por otras similares como escalar con ganchos o utilizar resortes. Es
muy común que incluyan también elementos de otros géneros como disparos, beat
'em up o aventura.
10.3 Público objetivo.
Everyone ( Niños a adultos hasta 1998) es una clasificación ESRB que
significa que son aptos para todas las edades (anteriormente aptos
para mayores de 6 años). Puede tener violencia leve o lenguaje muy
leve/temas sugerentes, así como juegos de apuestas simulados menores.
Los juegos que son para todas las edades pueden o no interesar a los niños,
ya que (antes de 2018) la calificación de la CE solía hacer eso.
10.4 Historia
El Caballero Raúl
Érase una vez en la tierra media, un pequeño caballero llamado Raúl.
Una vez llegó un Malvado Caballero a la villa Chimali, buscaba al mejor guerrero.
Raúl al considerarse indigno, sabía que necesitaba una gran victoria para que se
realizaran cuentos y canciones sobre él.
Dio un paso al frente y accedió a luchar con el caballero Robok.
El caballero Robok le explicó que el duelo sería en un año y sería en su castillo.
Este juego nos habla de cómo el caballero Raúl emprendió el camino hasta llegar
con su oponente.
Pero en esa travesía se encontrará con obstáculos y distintos escenarios que tendrá
que superar para lograr su hazaña.
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
10.5 Personajes
Raúl.
.
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
12. Conclusiones
13. Glosario
GameObject: En Unity, es la clase base de todos los elementos de una escena. No
confundir con gameObject (empezando por minúscula) que es un tipo de variable.
Corrutina: Subrutinas que se invocan una a otra de manera que, en la segunda
llamada o en llamadas sucesivas, la ejecución se reanuda en el punto en el que se
había interrumpido por última vez.
Animator: En Unity, es un componente que hace de interfaz de control respecto a la
animación en Mecanim.
Trigger: En Unity, en el ámbito de animación y en el contexto de esta práctica, son
unos disparadores que permiten activar un evento, en este caso una animación.
Cuando termina la misma el trigger vuelve al estado original.
Sprite: Gráficos de juegos en 2D. Representan desde personajes a objetos y efectos
en un juego.
Mesh renderer: Malla poligonal, consta de una serie de vértices relacionados entre
sí formando triángulos.
Assets: Recursos de Unity. Unity cuenta además con la Assets Store en la que se
pueden encontrar recursos gratuitos o de pago.
Frames: Fotogramas.
Audio Listener: El Audio Listener en Unity funciona como un micrófono. Recibe la
entrada de todos los sonidos de la escena y los reproduce a través de los altavoces
del ordenador.
Skins: En videojuegos suele denominarse así a las variaciones de sprite de un
mismo personaje.
Prefab: En Unity, Permite almacenar un GameObject con sus componentes y
propiedades. De esta forma se facilita su reutilización.
Shader: Es cualquier programa de ordenador que permite sombrear, es decir,
proporcionar los niveles adecuados de color a una imagen, además hoy en día
también permite producir efectos especiales o hacer post procesamiento de vídeo.
Renderizado: Es un término usado para referirse al proceso de generar una imagen
o vídeo mediante el cálculo de iluminación GI partiendo de un modelo en 3D. Se
desarrolla con el fin de generar en un espacio 3D formado por estructuras
poligonales. Una simulación realista del comportamiento tanto de luces, texturas y
materiales
Rigidbody: En Unity, un componente que se puede asociar a un GameObject y que
permite aplicarle físicas.
Desarrollo de un videojuego de plataformas en C# sobre el motor Unity
14. Bibliografía
https://es.wikipedia.org/wiki/Historia_de_los_videojuegos#Nuevas_consolas.2C_Handhelds_y
_otros_formatos
https://en.wikipedia.org/wiki/Early_history_of_video_games
https://en.wikipedia.org/wiki/History_of_video_games
https://es.wikipedia.org/wiki/Industria_de_los_videojuegos
https://psicogamer.com/articulos/los-videojuegos-como-herramientas-para-el-desarrollo-dela-
sociedad/
https://en.wikipedia.org/wiki/Unity_(game_engine)
http://blog.digitaltutors.com/unity-udk-cryengine-game-engine-choose/
http://blogs.unity3d.com/es/2016/06/16/evolution-of-our-products-and-pricing/
https://www.cryengine.com/get-cryengine
https://www.unrealengine.com/what-is-unreal-engine-4
http://docs.unity3d.com/Manual/Navigation.html?_ga=1.116319232.780478527.1455900866
http://docs.unity3d.com/Manual/LearningtheInterface.html
http://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/2d-catch-game-pt1
http://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/2d-catch-game-pt2
http://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/2d-catch-game-pt3
http://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/2d-catch-game-qa