Upload
aldevet
View
1.168
Download
2
Embed Size (px)
DESCRIPTION
Trabajo de Investigación realizado por Albert Devesa Triscon que trata de la creación de un videojuego para móviles multitáctiles (iOS y Android). Podéis encontrar el juego en las siguientes tiendas:App Store: http://itunes.apple.com/es/app/miku-the-videogame/id417629154?mt=8Android Market: https://market.android.com/details?id=cat.android.miku&feature=search_result
Citation preview
CREACIÓN DE UN VIDEOJUEGO
PARA MÓVILES MULTITÁCTILES
M iku , e l v ideo juego
Albert Devesa Triscon
2º Bachillerato A
INS Narcís Monturiol
Tutor: Manel Niubó
31/1/2011
Piensa dos veces antes de empezar a programar,
o terminarás programando dos veces
antes de empezar a pensar.
- Anónimo
ÍNDICE
1. INTRODUCCIÓN ........................................................................................................ 3
2. EVOLUCIÓN DE LAS VIDEOCONSOLAS ............................................................... 4
2.1 PRIMERA GENERACIÓN ..................................................................................... 4
2.2 SEGUNDA GENERACIÓN ................................................................................... 5
2.3 TERCERA GENERACIÓN .................................................................................... 6
2.4 CUARTA GENERACIÓN ...................................................................................... 6
2.5 QUINTA GENERACIÓN ........................................................................................ 7
2.6 SEXTA GENERACIÓN ......................................................................................... 8
2.7 SÉPTIMA GENERACIÓN ..................................................................................... 9
2.8 EL AUGE DEL IPHONE Y ANDROID .................................................................. 10
2.9 CIFRAS ............................................................................................................... 11
3. HERRAMIENTAS PARA CREAR UN JUEGO ........................................................ 12
3.1 CONOCIMIENTOS PREVIOS ............................................................................. 12
3.2 UNITY 3D, EL MOTOR DEL JUEGO ................................................................... 12
3.3 DISEÑO 3D ......................................................................................................... 14
3.4 JAVASCRIPT COMO LENGUAJE DE PROGRAMACIÓN .................................. 15
4. EL VIDEOJUEGO, PASO A PASO ......................................................................... 17
4.1 DISEÑO DE LOS NIVELES ................................................................................. 17
4.2 LA UNIÓN CON UNITY 3D .................................................................................. 20
4.3 CREACIÓN DEL PROTAGONISTA .................................................................... 22
4.4 PROGRAMACIÓN DE LOS SCRIPTS ................................................................ 25
5. EXPORTACIÓN ....................................................................................................... 29
6. CONCLUSIONES ..................................................................................................... 32
7. AGRADECIMIENTOS .............................................................................................. 33
8. BIBLIOGRAFÍA ........................................................................................................ 33
ANEXO A: .................................................................................................................... 34
ANEXO B: .................................................................................................................... 40
ANEXO C: .................................................................................................................... 43
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
3
1. INTRODUCCIÓN
Hace más de un lustro que los juegos mueven más dinero que, por ejemplo, la industria del
cine o de la música. La avalancha de los nuevos videojuegos (cada vez más realistas) y la
llegada de videoconsolas con mayor número de funcionalidades, añaden la entrada de
nuevos segmentos sociales que hasta ahora permanecían como minorías dentro de este
mercado, y que, cada vez más, ocupan nuestro tiempo de ocio y entretenimiento.
Algunas de estas videoconsolas han formado parte de mi vida y, con la experiencia
adquirida como jugador, me gustaría saber cómo se hace un videojuego y llevarlo a la
práctica. He elegido una plataforma móvil táctil porque son las videoconsolas con más
potencial que hay actualmente y con las que más experiencia he podido conseguir.
¿Por qué un mono? Siempre he querido crear un personaje imaginario y original. Quería que
fuera un animal humanizado, pero, después de trabajar con los programas de creación de
objetos y gráficos en tres dimensiones y comprobar su complejidad, creé el personaje que
me acercaba a estas características y que menos problemas me llevaba.
Empezaré investigando cómo han evolucionado las consolas a lo largo del tiempo y cuáles
predominan actualmente. Búsquedas cuáles son las acciones, métodos y programas que
deben llevar a cabo los programadores y diseñadores para elaborar y publicar un
videojuego.
Principalmente, extraeré toda la información de Internet y solucionaré muchos problemas
gracias a la ayuda de los usuarios de los foros de Unity 3D. No dispongo de ningún
conocimiento sobre el diseño en 3D, así que supondrá un gran obstáculo por culpa de su
complejidad. Por otro lado, ya he tenido experiencia en el campo de la programación y,
consecuentemente, su interpretación me será más fácil y flexible.
Finalmente, crearé un videojuego para móviles multitáctiles, sobre todo para iPhone y
Android, que me permitirá estudiar su estructura y compararla con los videojuegos de gran
escala.
1.1 OBJECTIVOS
✓ Estudiar la evolución de las consolas de videojuego a lo largo del tiempo.
✓ Conocer y aprender a utilizar las herramientas necesarias para la creación de un videojuego.
✓ Conocer la estructura de un videojuego.
✓ Crear un videojuego en 3D.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
4
2. EVOLUCIÓN DE LAS VIDEOCONSOLAS
Antes de empezar se debe tener claro que se está tratando exactamente. Una consola de
videojuego o, simplemente, videoconsola es un ordenador de entretenimiento interactivo
controlado por un dispositivo de entrada y que produce una señal de vídeo que puede ser
utilizada por un dispositivo de salida (generalmente es una televisión o un monitor de
ordenador ). Estos videojuegos se presentan en cartuchos, chips, disquetes, CD o DVD,
aunque actualmente se empiezan a distribuir por Internet
En la industria de los videojuegos, las videoconsolas han sido clasificadas en generaciones.
La primera y la segunda generación se clasifican según los recursos tecnológicos en aquella
época y la fecha de lanzamiento. En cambio, de la segunda a la sexta generación son
clasificadas según el número de bits 1que posee la consola.
2.1 PRIMERA GENERACIÓN
Los primeros juegos aparecieron en 1950, pero éstos utilizaban pantallas vectoriales, no de
vídeo. Ralph Baer, en 1972, lanzó al mercado Magnavox Odyssey, la primera consola de
sobremesa que se empezó a popularizar gracias al juego Pong de la compañía Atari. Este
evento comenzó a mover el interés ante esta nueva industria. Después de una actualización
de la consola Odyssey, la cadena de centros comerciales Sears compró los derechos del
sistema Atari Pong y los introdujeron en el mercado de consumo bajo con el nombre de
Sears-Telegames. Pero debido a los clones de Pong y juegos derivados, esta compra no dio
el resultado esperado.
Fig. 1. Magnavox Odyssey Fig. 2. Magnavox Odyssey 2000 Fig. 3. Sears-Telegames
Paralelamente, Mattel Auto Race (1976) y Electronic Quaterback (1979) fueron las primeras
videoconsolas electrónicas portátiles que salieron al mercado. 1 El número de bits (binary digit) es un dígito del sistema de numeración binario, 0 o 1, que determinan el ancho de bus del procesador. 2 Un joystick o palanca de control es un dispositivo de control de dos o tres ejes que se usa en ordenadores, videoconsolas, transbordadores espacial y aviones de caza. 3 Una trackball es un dispositivo apuntador compuesto por una bola incrustada en un receptáculo que contiene
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
5
2.2 SEGUNDA GENERACIÓN
En octubre de 1977, el Atari 2600 fue la primera consola lanzada al mercado
estadounidense, convirtiéndose en la primera consola en tener éxito utilizando cartuchos
intercambiables. Atari 5200 fue su sucesora pero acabó adoptando el nombre de CX2600, el
cual se basaba en el número de catálogo que poseía. Esta consola fue un gran éxito y Atari
se convirtió en sinónimo de videojuegos. La consola venía acompañada con dos joysticks2,
una trackball3 y un cartucho de juego (inicialmente Combat y subsiguientemente Pac-Man).
Atari consiguió el monopolio, aunque tuvo dos rivales destacables: Colecovision, con el
doble de colores y Mattel Intelvission, que por primera vez en la historia, incluía una CPU de
16 bits. Nintendo y Sega, una de las mejores compañías de juegos hoy en día, con TV-
Game 6 y SG-1000 respectivamente, comenzaban a dar los primeros pasos a nivel
doméstico
En 1979 apareció la primera videoconsola portátil, la MB Microvision, con cartuchos
intercambiables. En cambio, en 1980, Nintendo sacó Game & Watch, una consola
electrónica portátil con 59 juegos por defecto y que no admitía cartuchos.
Fig. 4. Atari 2600 Fig. 5. Atari 5200 (CX2600) Fig. 6. ColecoVision
Fig. 7. SG-1000 Fig. 8. TV-Game 6 Fig. 9. Game & Watch
2 Un joystick o palanca de control es un dispositivo de control de dos o tres ejes que se usa en ordenadores, videoconsolas, transbordadores espacial y aviones de caza. 3 Una trackball es un dispositivo apuntador compuesto por una bola incrustada en un receptáculo que contiene sensores que detectan la rotación de la bola en dos ejes.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
6
2.3 TERCERA GENERACIÓN
A partir de la tercera generación, el mundo de las consolas comenzó a ser abolido por el
monopolio japonés. Las consolas de esta generación como NES y Sega Master System
tenían 8 bits. Hasta el 1988, NES, junto con el juego Super Mario Bros, dominaban la
industria. Atari con la esperanza de recuperar el dominio sacó el Atari 7800, una versión
mejorada del Atari 5200, pero no lo consiguió.
Fig. 40. NES Fig. 11. Sega Master System Fig. 12. Atari 7800
2.4 CUARTA GENERACIÓN
En 1983, Nec y Hydon sacaron a la luz la consola PCEngine (en Japón) o TurboGrafx (en el
resto del mundo) que también tenía una CPU de 8 bits pero con un chip gráfico de 16 bits.
La consola más relevante de esta generación era Sega Mega Drive, conocida
comercialmente como Sega Genesis, introducida en 1988 aunque Nintendo sacó su consola
de 16 bits llamada Super Nintendo el mismo año. Neo Geo fue la consola más potente de
esta generación pero era muy cara.
Los chips gráficos añadidos a los cartuchos destacaban en esta generación. Aparecen
también conceptos como la multitarea, multimedia, gráficos vectoriales, etc. Super Nintendo
fue la consola más vendida con 49 millones de unidades en Japón.
Fig. 13. PCEngine/TurboGrafx-16 Fig. 14. Sega Mega Drive Fig. 15. Super Nintedo
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
7
Game Boy de Nintendo fue y aún es una de las consolas portátiles más
vendidas de la historia gracias a la llegada del juego Tetris y el
grandísimo apoyo de las compañías que trabajaban para NES. En
1989, para competir con la Game Boy, Sega creó la Game Gear, la
tercera videoconsola portátil en color.
2.5 QUINTA GENERACIÓN
Entorno en 1994, se dejó de utilizar el 2D al ponerse de moda los entornos tridimensionales
3D, aprovechando al máximo el hardware de los equipos. Esta generación es conocida
como la era de los 32 bits, aunque se confunde con la de 64 bits por el nombre que le dieron
a la consola Nintendo 64. También se enunciaron dos grandes consolas, la PlayStation de
Sony y la Sega Saturn. La primera tuvo un gran éxito en el mundo de los videojuegos que
aún perdura.
Básicamente el mercado estaba dominado por tres consolas, Sega Saturn, PlayStation y
Nintendo. Esta generación también vio dos versiones actualizadas de la Game Boy: la
Game Boy Color y Game Boy Light (esta última sólo estaba disponible en Japón). Apple
también quiso entrar en el mercado con su producto Apple Pippin, pero no tuvo éxito.
Fig. 17. PlayStation Fig. 18. Sega Saturn Fig. 19. Apple Pippin
Fig. 16. Game Boy
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
8
2.6 SEXTA GENERACIÓN
Las consolas de esta generación se mejoraron gracias a la introducción de arquitecturas de
ordenadores. Las consolas de sobremesa sustituyeron los cartuchos para grandes
capacidades como el DVD, GD-ROM4 o el GOD5, así los juegos eran más largos y más
atractivos visualmente. Las nuevas memorias flash y los discos duros implantados en esta
generación eran utilizados para guardar las partidas.
Sega sacó su nueva y última consola llamada Dreamcast, en cambio, PlayStation 2 de Sony,
la primera en introducir el reproductor DVD, continuó teniendo el mismo éxito que la
PlayStation. Todas las consolas PlayStation, a lo largo de la historia, han tenido su versión
Slim pertinente. Por otra parte, la GameCube fue la cuarta videoconsola de sobremesa de
Nintendo. Finalmente, el Xbox fue la última consola en salir al mercado de esta generación y
la primera de Microsoft. También utiliza un reproductor DVD, con conexión online y un disco
duro integrado.
Las videoconsolas portátiles también iban evolucionando y Nintendo comenzó a fabricar la
sucesora de la Game Boy Color, Game Boy Advanced, con un procesador ARM6 propio de
32 bits. Además, era capaz de ejecutar los juegos compatibles con Game Boy (cuarta
generación) y la Game Boy Color (quinta generación). En 2003, Nokia, una de las
principales empresas del sector de las telecomunicaciones, sacó la N-Gage, el primer
teléfono móvil y consola portátil a la vez.
Fig. 20. PlayStation 2 Fig. 21. Xbox Fig. 22. GameCube
4 Este nuevo soporte óptico fue implantado por Sega con el objetivo de parar la piratería de software, que era
relativamente fácil en las consolas de la generación anterior ya que coincidió con la salida al mercado de las
primeras grabadoras de CD-ROM. Aún así este nuevo sistema fue violado poco tiempo después de su
lanzamiento. 5 GOD (GameCube Optical Disc) fue el formato de distribución de los videojuegos de Nintendo. Actualmente se
emplea la Wii Optical Disc para la consola Wii. 6 ARM (Advanced RISC Machines) son microprocesadores RISC diseñados por la empresa Acorn Computers y
desarrollados por Advanced RISC Machines Ltd.., una empresa derivada de la anterior.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
9
2.7 SÉPTIMA GENERACIÓN
Esta actual generación se caracteriza por la introducción de la tecnología multi núcleo de la
CPU. Durante el 2005, Microsoft presentó la nueva Xbox 360, mientras que en 2006, la
PlayStation 3 fue presentada por Sony. En ese mismo año, Nintendo, con el deseo de
recuperar el mercado, presentó su nueva y actual consola Wii, caracterizada por el
innovador mando con la capacidad de apuntar gracias a la detección de la aceleración de
los movimientos en tres dimensiones. Posteriormente, las versiones Slim de la PlayStation 3
y la Xbox 360 fueron presentadas a lo largo de 2009 y 2010.
Fig. 23. PlayStation 3 Fig. 24. Xbox 360 Fig. 25. Wii
Desde 2005, Nintendo y Sony han estado compitiendo en el sector de las videoconsolas
portátiles. PlayStation Portable, o simplemente PSP, tenía más potencia gráfica que la
Nintendo DS (siglas de Dual Screen), pero esta la superaba en ventas. A lo largo del tiempo
se han ido mejorando las consolas. La PSP ha tenido hasta cuatro versiones más, con
nuevas mejoras. La Nintendo DS también ha tenido el mismo número de versiones y la
última, la cuarta, con tecnología 3D (efecto tridimensional de su pantalla), será la encargada
de estrenar la octava generación de consolas cuando se tire en febrero de 2011.
Fig. 26. PSP Go! Fig. 27. Nintendo 3DS
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
10
2.8 EL AUGE DEL IPHONE Y ANDROID
Cada vez hay más demanda en el sector de los videojuegos para móviles de última
generación. Estos móviles, llamados smartphones, cada vez tienen más capacidad para
ejecutar juegos como lo haría una de las videoconsolas portátiles citadas antes.
A finales de 2007, Apple introdujo su primer smartphone, el iPhone. Fue uno de los primeros
en utilizar una interfaz multitáctil. En julio de 2008, Apple lanzó un
nuevo modelo con un precio menor y apoyo 3G. A partir de la versión
2.0 de su sistema operativo, se creó la App Store con aplicaciones
tanto gratuitas como de pago, permitiendo instalar aplicaciones
desarrolladas por terceros. Esta tienda de aplicaciones ha tenido un
gran éxito llegando hasta las 250.000 aplicaciones.
El éxito del iPhone ha reafirmado ciertas tendencias dentro del mundo
de los smartphones como el uso de interfaces táctiles, el abandono de
los teclados o la importancia de las tiendas de aplicaciones.
El sistema operativo Android, desarrollado por Google, apareció para
smartphones el año 2008 para contraatacar el iPhone de Apple. Se
trata de un sistema operativo de código abierto basado en Linux y
soportado por la Open Handset Alliance (que aparte de Google está
formada por Intel, HTC, Motorola y Samsung entre otros). El primer
smartphone en utilizarlo fue el HTC Dream, llamado G1 por la
operadora americana T-Mobile que el distribuyó. El software incluido en
el sistema operativo integra los servicios propios de Google, como
correo, calendario, navegación, etc. Las aplicaciones de terceros están
disponibles en el Android Market, el principal competidor de la App
Store.
Fig. 28. iPhone 4
executant l’App Store
Fig. 29. HTC Desire
amb Android 2.2
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
11
2.9 CIFRAS
Este apartado va destinado a los datos obtenidos del mundo de los videojuegos y las
consolas a lo largo del tiempo hasta la actualidad. La siguiente estadística muestra las
consolas más vendidas (unidades en millones) durante los últimos 25 años (actualizado el
mes enero de 2011):
La industria de los videojuegos es un mercado que mueve más dinero que la industria del
cine y va creciendo año tras año. Por este motivo, multinacionales como Sony o Microsoft
han invertido miles de millones de dólares en el desarrollo de sus nuevas consolas,
conscientes de que si las cosas les salen bien amortizarán el dinero gastado.
El siguiente gráfico, realizado por Newzoo © durante el 2010, muestra el número de
personas entre 10 años y superior que juega en unas específicas consolas portátiles. Desde
la llegada de la App Store, el número de juegos destinados a iOS no ha parado de crecer y
el 22 de enero de 2011 llegó a las diez mil millones de descargas.
0 20 40 60 80
100 120 140 160
Pla
ySta
tion
2
Nin
tend
o D
S
Gam
e B
oy
Pla
ySta
tion
Gam
e B
oy A
dvan
ce
Wii
PS
P
NE
S
Sup
er N
inte
do
Xbo
x 36
0
Pla
ySta
tion
3
Nin
tend
o 64
Ata
ri 26
00
Meg
aDriv
e
Xbo
x
Gam
eCub
e
Mas
ter S
yste
m
Gam
eGea
r
Dre
amC
ast
Turb
oGra
fx
Sat
urn
Col
ecov
isio
n
Inte
llivi
sion
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
12
3. HERRAMIENTAS PARA CREAR UN JUEGO
Son muchas las herramientas que se pueden utilizar para la elaboración de un juego. Entre
estas, he utilizado las herramientas más flexibles y fáciles de utilizar, sobre todo en el ámbito
3D. También he intentado crear un juego fácil, simple y apto para todos. De las
características que me ofrece la exportación de Unity 3D, me he centrado en la plataforma
móvil.
3.1 CONOCIMIENTOS PREVIOS
Además de tener conocimientos de programación, hay que tener agilidad para moverse
entre programas, adaptarse a lo que te pide y saber los límites de este. Hay que tener una
mente clara a la hora de escribir programación, sino te ganas problemas y dolores de
cabeza innecesarios.
Para crear un juego en la plataforma de iOS, Apple ofrece su programa XCode, el cual se
basa en Objective-C, lenguaje de programación con licencia GPL por el compilador GCC.
Este lenguaje deriva del lenguaje C, orientado a objetos. En mi caso he elegido el programa
Unity por la simplicidad que me da. Unity se ocupa de todos los aspectos que requiere la
creación de un juego, aun transforma el lenguaje JavaScript, C # o Boo a Objective-C para
ser compilado y ejecutado al iOS. También se ocupa del apartado de la física, aunque se
necesita un mínimo de conocimientos para resolver problemas que puedan surgir durante el
desarrollo del juego.
3.2 UNITY 3D, EL MOTOR DEL JUEGO
Unity 3D es el programa para crear los juegos 3D de vídeo u otro
contenido interactivo como visualizaciones arquitectónicas o
animaciones 3D en tiempo real. Integra casi todas las necesidades
indispensables para crear el videojuego.
Funciona tanto en Windows como en Mac OS X, y puede producir juegos para diferentes
plataformas: Windows, Mac, Wii, iPad, iPhone y, ahora también, para PlayStation 3 y Xbox
360. También puede importar estos juegos navegadores gracias a su plug-in, compatible
con Internet Explorer, Mozilla Firefox, Safari, Netscape, Opera, Google Chrome y Camino.
Hay que tener en cuenta que un juego creado a Unity 3D no siempre se ejecutará bien en
todas las plataformas. Por ejemplo, un juego creado para PlayStation 3 puede ser exportado
iPhone pero no lo hará con la misma fluidez que en la PlayStation 3, ya que esta posee un
hardware más potente, al igual que el Xbox 360.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
13
Miku se empezó a desarrollar con Unity iPhone 1.7, ya que Unity estaba separado por
plataformas. Con la nueva versión 3, se han fusionado todas las plataformas para formar
Unity 3D. Este es capaz de importar modelos 3D creados por 3ds Max, Maya, Blender,
Cheetah3D y Cinema 4D. Utiliza diferentes motores gráficos, Direct3D en el caso de
Windows, OpenGL Mac y también Windows, OpenGL ES únicamente para iOS y APIs
propietarias como Wii.
1. Escenario: ventana donde se visualiza el escenario del juego en 3D. Desde esta
ventana se puede editar, mover y rotar cualquier objeto.
2. Proyecto: listado de todos los archivos que hay en todo el juego.
3. Jerarquía: ficheros que sólo corresponde al nivel.
4. Inspector: propiedades de cada objeto del juego.
5. Juego: como se ve el juego realmente una vez sea exportado a la plataforma.
También informa de los recursos que se emplean en ese preciso momento.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
14
3.3 DISEÑO 3D
Para hacer todo el diseño 3D del juego, se han utilizado dos programas: Cine 4D y ZBrush. El primero
es un programa de creación de gráficos y animación 3D desarrollado por Commodore Amiga por la
compañía alemana Maxon, y llevado posteriormente a las plataformas Windows, Linux y Macintosh.
Permite el modelado de primitivas, splines 7 y polígonos, texturización y animación. Este
programa se encargará de los escenarios 3D.
7 Un spline es una curva definida en porciones mediante polinomios.
1. Escenario: ventana donde se visualiza los objetos en 3D. Desde esta ventana se
puede editar, mover y rotar cualquier objeto.
2. Objetos: lista de todos los objetos 3D.
3. Atributos: ventana donde se muestran las propiedades y atributos de los objetos.
4. Coordenadas: posición, tamaño y rotación del objeto seleccionado.
5. Materiales: lista de las texturas de los objetos.
6. Herramientas: todas las herramientas que ofrece Cinema 4D para editar los
objetos. También se pueden seleccionar desde el menú de arriba.
7. Animación: permite animar los objetos y visualizar su comportamiento en cada
fotograma.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
15
En cambio, ZBrush me permite crear el protagonista del juego gracias al original
planteamiento de su proceso creativo para personajes. Lo utilizan compañías de gran escala
como Electronic Arts o también para películas, como El señor de los Anillos.
3.4 JAVASCRIPT COMO LENGUAJE DE PROGRAMACIÓN
Como he expresado antes, el juego está realizado con el lenguaje JavaScript, lenguaje
script basado en el concepto de prototipo, implementado originalmente por Netscape
Communications Corporation, y que derivó en el estándar ECMAScript. Es conocido sobre
todo por su uso en páginas web, pero también se utiliza en otras aplicaciones. A pesar de su
nombre, JavaScript no deriva del lenguaje de programación Java, pero ambos comparten
1. Escenario: ventana donde se visualiza el objeto o personaje que se esté
creando.
2. Herramientas: todas las herramientas que ofrece el programa. En la parte de la
derecha podemos encontrar las herramientas más utilizadas en la parte superior
las podemos encontrar todas.
3. Opciones: podemos regular la herramienta seleccionada cuando es utilizada.
4. Atributos: podemos seleccionar los materiales, sus colores, los punteros y los
efectos especiales para aplicarlos al personaje u objeto.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
16
una sintaxis similar inspirada en el lenguaje C. El nombre JavaScript es una marca
registrada por Sun Microsystems.
De entre todos los programas, he elegido Unitron por su sencillez y su integración con Unity.
Fig. 30. Captura de Unitron
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
17
4. EL VIDEOJUEGO, PASO A PASO
En los siguientes apartados iré explicando los conceptos fundamentales para la realización
del juego y los pasos que he ido siguiendo hasta su publicación. La mejor manera de
diseñar y programar un juego es planificar desde el principio toda la mecánica, los objetivos
y las funcionalidades, sino sería muy difícil que fuera terminado con éxito.
4.1 DISEÑO DE LOS NIVELES
Después de haber planteado y dibujado a mano el nivel en una plantilla podemos proceder a
su creación en 3D con el programa mencionado en el apartado anterior: Cinema 4D.
En primer lugar creamos un objeto preparado para Cinema 4D que será la base, en este
caso un cuadrado. El modificamos y le cambiamos las medidas. Especificamos el número
de segmentos y lo hacemos editable. Cuanto más segmentos tenga más pequeños serán
los cortes y más precisión tendremos, pero el juego tardará más en procesar. En la siguiente
captura de pantalla he resaltado los lugares que hemos tenido que ir pulsando.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
18
A continuación empezamos a crear los obstáculos que
previamente hemos dibujado. El primer obstáculo para el
jugador será saltar en tres bloques sin caer al fuego.
Para su creación seleccionamos el número de
cuadrados y extrusionado el terreno con la herramienta
“Extrude”. Después creamos un cilindro, el
redimensionado, el posicionamos y lo hacemos editable.
Para ahorrarnos hacer el mismo trabajo, duplicamos dos
veces el mismo cilindro y los alineamos (debemos tener
en cuenta la potencia de salto del personaje).
El próximo obstáculo será saltar sobre una plataforma móvil sin caer al fuego. En este caso
elegimos la opción de crear un tanque y le cambiamos el número de segmentos de rotación
para convertirlo en un hexaedro. Una vez redimensionado y situado en su posición, le
animamos. Nos colocamos en el primer fotograma y le añadimos un fotograma clave para
guardar su posición inicial. Moviendo sólo el eje Z (o el eje Y dependiendo de cómo esté
orientado el escenario), el desplazamos unos cuantos metros a la izquierda y nos situamos
en el fotograma 200 (el número de fotogramas
es proporcional al tiempo que tarda en
completar el movimiento). Guardamos la
posición añadiendo un fotograma clave, nos
situamos en el fotograma 400 y volvemos a
posicionar la hexaedro a la posición inicial. En
el momento de pulsar el fotograma clave,
Cinema 4D nos creará una línea que sigue la
trayectoria de la plataforma (fig. 32).
Siguiendo los pasos anteriores ya tendremos hechos dos obstáculos. Como este escenario
se trata del Nivel 1 es necesario que no sea muy complicado porque tenemos que
acostumbrar al jugador los movimientos y límites del personaje. En el caso de este
escenario he elegido un ambiente Wild West y para simular lo he añadido dos cactus, un
pozo, unas cuantas piedras y dos colinas.
Una vez creado todos los objetos, debemos añadir las texturas. Estas pueden ser extraídas
de Internet para que llevaría mucho trabajo y esfuerzo hacer cada foto de cada componente
en concreto. De hecho, existen programas dedicados a la realización y edición de texturas.
Fig. 32. Creando animaciones
Fig. 31. Creación de tres bloques
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
19
Para aplicar las texturas a los objetos, creamos un material nuevo, le añadimos la fotografía
determinada para cada objeto y después sólo hará falta que lo arrastramos sobre el objeto
deseado. Si queremos editar el material sólo tendremos que ir al editor de materiales y allí
tendremos una larga lista de opciones para modificar (fig. 33). Como a veces no disponemos
de una fotografía con suficiente resolución, a la hora de aplicarla sobre el objeto no quedará
bien. Para solucionarlo sólo hará falta que le añadimos repeticiones y el mismo programa se
encargó de dividir la textura.
Una vez tengamos el escenario 3D completo sólo deberemos exportar. Veremos que hay
diferentes extensiones de exportación. Las más utilizadas son .OBJ (la más internacional) y
.FBX. En este caso he elegido la segunda ya que me permite exportar las animaciones.
También serán exportadas las texturas de cada material.
Fig. 33. Editor de materiales
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
20
Una vez tengamos el escenario exportado sólo tenemos que arrastrar dentro del listado de
los archivos a Unity o guardarlo en la carpeta del juego.
4.2 LA UNIÓN CON UNITY 3D
Una vez en Unity, cuando seleccionamos el escenario en 3D que hemos realizado con
Cinema 4D, nos mostrará unos serie de opciones en la ventana del Inspector. Allí podemos
configurar nuestra configuración más adecuada para
nuestro nivel. Las opciones seleccionadas serán (fig. 34):
Scale Factor a 0.1, redimensiona el escenario; Generate
Colliders seleccionado, genera colisionadores los objetos
para que el personaje pueda chocar contra ellos; Animation
Wrap Modo a Loop, así la plataforma móvil sigue la
trayectoria infinitamente hasta que se complete el nivel, sino
sólo haría una trayectoria. Todas las demás opciones las
dejamos por defecto.
Para controlar el personaje, Unity nos ofrece una serie de
controles ya configurados y adaptados para el iOS. Cada
plataforma tiene sus configuraciones más adecuadas. Por el
primer nivel he elegido la configuración más clásica para un
dispositivo móvil táctil, movimiento en primera persona
mediante dos joysticks virtuales. Sólo hay que abrir el
archivo FirstPersonSetup y automáticamente nos creará un
nuevo escenario con los archivos necesarios.
Fig. 34. Inspector
Fig. 35. Todos los ficheros que corresponden al Nivel 1
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
21
A partir de ahora sólo hay que añadir todos los objetos necesarios:
• Skybox: es un cuadro que simula un cielo, ya que sus paredes son imágenes del
mismo.
• Point Light: se trata de un punto de luz que puedes regular su intensidad, el color, la
resolución ... y, consecuentemente, provoca las sombras de los objetos.
• Particle System: efecto especial que, con una larga lista de opciones, puedes darle
infinidad de formas como la simulación del fuego.
• GUI Texture (Graphic User Interface): elementos gráficos que permiten interactuar
de forma mucho más intuitiva y son impresos en la pantalla por encima del juego.
También es posible hacer lo mismo con textos (GUI Texto).
Todos los archivos que son importados y reconocidos a
Unity tienen propiedades que pueden ser cambiadas al
Inspector. Por ejemplo, una vez el personaje es importado
dentro Unity nos permite dividir sus animaciones por frames
(fotogramas). Simplemente seleccionamos el personaje y,
en el inspector, vamos a la sección Animations. Allí
separamos por frames las animaciones que hemos aplicado
al personaje (fig. 36). Desde el fotograma 2 al 60 hemos
definido la animación walk mientras que idle será la
animación cuando no esté en movimiento. La creación de
las animaciones está explicado en el siguiente apartado.
Sin embargo, no será suficiente para tener un personaje
totalmente operativo para jugar, faltará el uso de la
programación para indicarle al programa cuando utilizar
estas animaciones. Podemos encontrar las instrucciones de
este procedimiento en el apartado de programación de los
scripts.
Fig. 36. Animaciones del
personaje
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
22
4.3 CREACIÓN DEL PROTAGONISTA
Una vez realizado y situado el escenario donde se moverá el personaje, es hora de hacer el
protagonista del juego. Yo he decidido hacer el personaje antes de programar el juego, pero
se puede hacer al revés ya que el resultado será el mismo.
En primer lugar elegimos la herramienta ZSphere pulsando sobre Tool. Creamos una bola
de diámetro considerable en el modo Draw (en el caso que no lo tuviéramos seleccionado)
ya continuación pulsamos Edit para que sea editable. Una vez hecho esto, sólo hay que ir
montando bolas sobre otras bolas más pequeñas o más grandes dependiendo de la sección
del cuerpo. La captura siguiente marca las partes donde hemos tenido que hacer clic.
Una vez tengamos la figura hecha, pulsamos la tecla A y el mismo programa convertirá la
figura en una figura geométrica más pulida (fig. 37). En caso de que quisiéramos añadir
algún detalle como los orificios nasales o de las orejas, se desmarcan el modo de dibujo,
pulsando a la vez la tecla Alt, y clicar sobre la parte que queremos agujerear. Ahora sólo
falta exportarlo en formato .OBJ para ser tratado en Cinema 4D.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
23
Con Cinema 4D abierto, es hora de añadirle articulaciones
para poder crear las animaciones.
Desplaguem el menú Character y seleccionamos Joint Tool.
Esta herramienta permite crear, mover y eliminar las
articulaciones del personaje. Cambiamos a vista frontal y le
añadimos las articulaciones desde los pies hasta la cabeza
(fig. 38). Cuanto más articulaciones tenga, más real será el
movimiento pero más difícil será controlarlo.
Cuando creemos que ya tenemos suficientes articulaciones,
las alineamos con la herramienta Align ya continuación las
seleccionamos todas y aplicamos la opción Blind. Este unirá
las articulaciones con el cuerpo 3D.
Cinema 4D ofrece un servicio llamado BodyPaint 3D que
nos servirá para darle color. Primero tenemos que seguir un
asistente que nos guiará y preguntará qué textura u objeto
queremos pintar. Por defecto se ejecutará el pincel ya partir
de ahí sólo tendremos que ir controlando el espesor y el color que queremos aplicar.
Fig. 37. Conversión de la figura
Fig. 38. Vista frontal con
las articulaciones
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
24
Finalmente, vamos al panel de animaciones y nos situamos en el primer fotograma.
Elegimos la articulación de la pierna derecha y la giramos 60º y guardamos la posición con
un fotograma clave. Hacemos el mismo proceso con la pierna izquierda y un ángulo de -60º.
Dentro del fotograma 60, giramos -120º para la pierna derecha y 120º para la pierna
izquierda y lo guardamos. Cinema 4D ya nos hará las animaciones automáticamente. Ahora
sólo falta exportar el personaje en .FBX en la carpeta del juego para Unity lo detecte.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
25
4.4 PROGRAMACIÓN DE LOS SCRIPTS
JavaScript no es un lenguaje de programación propiamente dicho. Es un lenguaje script
orientado a documentos, como pueden ser los lenguajes de macros que tienen muchos
procesadores de texto. Nunca se podrá hacer un programa completamente con JavaScript.
Los scripts son un lenguaje de programación que controlan aplicaciones. Los scripts son
ejecutados directamente desde su código fuente que, generalmente, son archivos de texto
que contienen lenguajes de marcado específicos.
La sintaxis de un lenguaje de programación se define
como el conjunto de reglas a seguir al escribir el
código fuente de los programas para considerarse
como correctos para este lenguaje de programación.
Los operadores son uno de los elementos
fundamentales en cualquier lenguaje de
programación, ya que son los que nos permiten
trabajar con variables y datos. La tabla situada a la
derecha expone los diferentes operadores divididos
en categorías.
La sintaxis de JavaScript es muy similar a la de otros lenguajes de programación como Java
y C. Las normas básicas que definen la sintaxis de JavaScript son las siguientes:
o No se tienen en cuenta los espacios en blanco y las nuevas líneas: el intérprete de
JavaScript ignora cualquier espacio en blanco sobrante, por lo que el código se
puede ordenar de forma adecuada para entenderlo mejor.
o Se distinguen las mayúsculas y minúsculas: si en JavaScript se intercambian
mayúsculas y minúsculas, el script no funciona.
o No se define el tipo de las variables: al crear una variable, no es necesario indicar el
tipo de dato que almacenará. De este modo, una misma variable puede almacenar
diferentes tipos de datos durante la ejecución del script.
o No es necesario terminar cada sentencia con el carácter de punto y coma: en la
mayoría de lenguajes de programación, es obligatorio terminar cada sentencia con el
carácter (;). Aunque JavaScript no obliga a hacerlo, es conveniente seguir la tradición
de terminar cada sentencia con el carácter del punto y coma (;).
o Se pueden incluir comentarios: comentarios se utilizan para añadir información en el
código fuente del programa. Aunque el contenido de los comentarios no se visualiza
Operador Significat
== igual que
!= diferent que
< més petit que
<= més petit o igual que
> més gran que
>= més gran o igual que
&& i (operador i operador)
|| o (operador o operador)
! negació
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
26
por pantalla, si que se envía al navegador del usuario junto con el resto del script, por
lo que hay que extremar las precauciones sobre la información incluida en los
comentarios. JavaScript define dos tipos de comentarios: los de una sola línea y los
que ocupan varias líneas.
A continuación explicaré scripts sencillos aplicados al juego. Los
scripts enteros se pueden encontrar en el Anexo A.
El siguiente explica el cambio de nivel. Cuando el jugador llega a un
objeto, llamado Caja y hay choca, automáticamente pasa al
siguiente nivel. Para programarlo antes que nada tenemos que
llamar la función OnTriggerEnter, clase definida por Unity, el cual
detecta si un personaje entra dentro de un objeto. A continuación
añadimos una variable llamada choque que será una colisión
(Collider) y le incorporamos un condicional en su interior.
Lo que programa interpreta es: si el personaje choca contra el
objeto Caja, pasamos al nivel 2, sino, sigue jugando.
1. function OnTriggerEnter (choque : Collider) { if (choque.gameObject.name == "Caja") { Application.LoadLevel(2); } }
2. 3. 4. 5. 6. 7.
Siempre podemos incorporar comentarios de una línea o que ocupen varias líneas. El
siguiente ejemplo aparecen ambos.
1. //Esto es un comentario de una sola línea print("Esto es un mensaje"); /* Esto es un comentario que ocupa varias líneas, es muy útil si necesitamos incluir mucha información en los comentarios */
2. 3. 4. 5. 6.
Los comentarios son útiles para dejar anotaciones y nunca serán leídos ni ejecutados por el
intérprete, por tanto, no implica su presencia.
Nom Nº
Menu_cat 0
Nivel 1 1
Nivel 2 2
Nivel 3 3
Gameover 4
Instrucciones 5
Menu_eng 6
Instructions 7
Fin 8
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
27
El próximo script explica el comportamiento de la puerta del nivel 2. Después de llamar la
función OnControllerColliderHit, creamos una variable llamada hit. Cuando el
personaje tope contra el objeto llamado Clave, se eliminará el objeto (con la función
Destroy) que está etiquetado como destruccion, en este fin la puerta. Así el jugador
podrá salir del laberinto y pasar al siguiente nivel.
1. function OnControllerColliderHit (hit : ControllerColliderHit) { if (hit.gameObject.name == "Clave") { Destroy(GameObject.FindWithTag("destruccion")); } }
2. 3. 4. 5. 6. 7.
Ahora programaremos una porción del menú del propio juego. En este caso nos bastaría
con la función OnGUI ya que permite crear una gran variedad de interfaces gráficas de
usuario con funcionalidad completa muy rápida y fácilmente. En vez de crear un objeto de
interfaz gráfica de usuario, posicionándose manualmente y escribir un script que se
encargue de su funcionalidad, Unity nos ofrece todo esto en una pequeña cantidad de
código.
1. function OnGUI () { if (iPhoneSettings.generation == iPhoneGeneration.iPhone4) { GUI.Box (Rect (320,70,350,500), "MIKU"); //Botón del Nivel 1 if (GUI.Button (Rect (400,150,200,80), "Nivel 1")) { Application.LoadLevel (1); } } }
2. 3. 4. 5. 6. 7. 8. 9.
10. 11.
Desde la función GUI, creamos un Box (un fondo) y un Button (un botón). Los cuatro
números separados por comas indican las coordenadas de posicionamiento y su tamaño.
(400,150,200,80) = (coordenada X, coordenada Y, tamaño X, tamaño Y)
En el momento que pulsamos el botón llamado Nivel 1, pasaremos al nivel 1 del juego.
También le aplicamos un condicional para comprobar a qué dispositivo se trata. Por ejemplo,
si el juego se ejecuta en un iPhone 4 tendrá el doble de resolución que un iPhone 3G y, por
tanto, los botones no estarán en la misma posición. Se puede ver el script entero Anexo A,
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
28
el cual incluye sonido, los botones de todos los niveles, las instrucciones, los idiomas y los
cambios de resolución.
El último script nos muestra los movimientos utilizados por el personaje. Iniciamos la función
Start que parará cualquier animación que haya en el momento de iniciar el juego. Después
utilizamos la función Update, que permite controlar cada fotograma que pasa en el juego.
Cuando el script detecte que el joystick izquierdo se mueva, el personaje automáticamente
utilizará la animación walk, sino estará quieto (idle).
1. function Start () { animation.Stop(); animation.CrossFade ("idle"); } function Update () { if (Input.GetAxis("Vertical") > 0.2) animation.CrossFade ("walk"); else animation.CrossFade ("idle"); }
2. 3. 4. 5. 6. 7. 8. 9.
10. 11. 12. 13.
Acabaremos este apartado con un esquema básico del juego:
Menú (0)
Nivel 1 (1)
Completado
Sí
Nivel 2 (2)
No
Game Over (4)
Nivel 2 (2)
Completado
Sí
(3)
No
Game Over (4)
Nivel 3 (3)
Completado
Sí
Fin (8)
No
Game Over (4)
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
29
5. EXPORTACIÓN
Una vez hecho todos los procedimientos descritos,
sólo faltará exportar el juego al propio móvil. Para
esta tarea podemos cambiar las configuraciones
desde el menú Player Settings de Unity. Podemos
elegir diferentes opciones como la selección del
icono del juego, la versión del videojuego o la
versión de sistema operativo que se desea
emplear (fig. 39).
Establecidas las configuraciones, vamos a Build
Settings y ordenamos con números todas las
escenas de los juegos para que el programa las
pueda identificar y relacionar con el código
programado. Podemos elegir dos opciones: Build,
que sólo construirá y guardará el juego, o Build &
Run, este construirá, guardará y ejecutará
directamente el juego a nuestro móvil.
Vamos al destino que hemos puesto previamente y veremos un archivo compatible con
XCode. La abrimos y nos aparecerá una ventana con una gran lista de archivos (fig. 40). A
partir de aquí podemos decidir qué hacemos con el juego. Lo podemos ejecutar en el mismo
ordenador gracias a un simulador para iPhone o lo podemos ejecutar en nuestro iPhone,
aunque necesitamos tener un registro como desarrollador de iOS.
Fig. 39. Configuració de la plataforma
Fig. 40. Captura de XCode
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
30
Miku se puede encontrar App Store gratuitamente de la versión 4.0 o superior de iOS (tanto
para iPad como para iPhone). Para conseguirlo tenemos que entrar iTunes Store8 desde un
PC o un Mac, o bien, desde la aplicación App Store de un dispositivo iOS. Después vamos a
la sección Buscar y escribimos Miku. Finalmente pulsamos Buscar y seleccionamos su
nombre para poder bajar.
8 Tanto App Store como iTunes Store son marcas registradas por Apple Inc.. Todos los demás contenidos son propiedad y
marca comercial por sus respectivos propietarios. El coste para ser desarrollador de IOS y publicar aplicaciones oficialmente
por la App Store es de $ 99/any.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
31
También lo podemos encontrar gratuitamente para la plataforma Android 2.0.1 o superior.
Sólo hay que entrar en el Android Market9, pulsar el botón de buscar, insertar el nombre de
Miku y bajarlo pulsando el botón Instalar.
9 Android Market es una marca registrada por Google Inc.. Todos los demás contenidos son propiedad y marca
comercial por sus respectivos propietarios. El coste para ser desarrollador de Android y publicar aplicaciones
oficialmente el Android Market es de $25.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
32
6. CONCLUSIONES
En primer lugar, creo que he ido completando los objetivos marcados desde el principio. Sin
tener ninguna idea concreta de cómo llegaría a ser el juego, planeé hacer más del doble de
niveles que he hecho. Después, con los mínimos conocimientos que conseguí y al ver que
cada nivel llevaba mucho trabajo, decidí volver a plantearme el juego.
Me he encontrado con la gran dificultad de expresar los pasos a seguir para que sea
comprensible para todos ya que se utiliza un lenguaje muy técnico y enrevesado por quien
nunca ha oído hablar de estos temas. También he intentado reducir el número de
explicaciones, ya que sino hubiera sido un trabajo con una longitud demasiado larga.
No tenía ningún conocimiento previo con la creación de objetos en 3D y menos de un
personaje. No tenía ninguna experiencia con ningún programa trabajado con este juego y, a
base de errores, me he ido familiarizando. No ha sido una tarea fácil adaptarse a las
funcionalidades de cada programa, sobre todo ZBrush, el cual tiene una mecánica muy
diferente a los otros programas que he probado nunca.
Tenía una idea equivocada: pensaba que era fácil y rápido crear un personaje en 3D por el
juego. Crear un personaje es una de las tareas más duras que hay. Hay que mirar hasta el
más mínimo detalle desde su producción, sobre todo sus animaciones. A la hora de aplicarlo,
me di cuenta que fue el trabajo más pesada que realicé en todo el juego. Incluso, podía
haber hecho un trabajo aparte sólo dedicado al personaje. En cambio, el apartado de
programación ha sido una de las partes más divertidas y fáciles de aportar al juego gracias
al gran número de funcionalidades que ofrece Unity.
He podido comprobar que para realizar un juego se necesita un equipo bien especializado.
Como mínimo se requiere alguien que invente el argumento, otro que haga los gráficos y
alguien que se ocupe de la programación y la lógica del juego.
A pesar de las grandes dificultades que me he podido encontrar, he acabado haciendo un
videojuego básico y adaptado a la plataforma que me proponía. Como posibles mejoras que
se le podrían añadir, y seguramente se añadirán a partir de actualizaciones, son enemigos
con inteligencia artificial y un nuevo nivel más para alargar la duración del juego.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
33
7. AGRADECIMIENTOS
Antes que nada quiero agradecer al tutor, que siempre me ha apoyado y siempre se ha
mostrado a mi disposición para lo que hiciera falta. También agradezco a todos mis amigos
que han probado el juego y me han dado consejos para mejorarlo, especialmente en David
Palomino y Gerard Hugas.
Por último, agradezco a todas las personas que se han mostrado interesadas por mi trabajo
y me han apoyado ya que han permitido que llegara a hacer un trabajo con este alto grado
de dificultad.
8. BIBLIOGRAFÍA
Información de Unity 3D:
@ http://en.wikipedia.org/wiki/Unity_%28game_engine%29
@ http://unity3d.com/unity/engine
Historia de les videoconsolas:
@ http://en.wikipedia.org/wiki/Video_game_console
@ http://en.wikipedia.org/wiki/Handheld_game_console
@ http://www.thegameconsole.com
@ http://www.pixfans.com/historia-de-las-primeras-videoconsolas
@ http://indicelatino.com/juegos/historia/consolas
@ http://vimeo.com/1732767
Tutoriales de diseño 3D i Unity 3D:
@ http://vimeo.com/3281126
@ http://forum.unity3d.com
@ http://www.youtube.com/watch?v=wN9tbyJmH0U
@ http://www.youtube.com/tornadotwins
Programación:
@ http://unity3d.com/support/documentation/ScriptReference/MonoBehaviour.html
CAE, S.A., Programación cliente. Gràfiques BDM, C.B. – València.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
34
ANEXO A: CÓDIGO FUENTE DEL VIDEOJUEGO
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
35
Script del menú10:
1. var Skin1 : GUISkin; var Skin2 : GUISkin; var angles : Texture2D; var catala : Texture2D; var miku : Texture2D; var credits : GUIText; var click : AudioClip; Vides.VIDES = 4; Platans.NUMERO_PLATANS = 0; function OnGUI () { var volume : float; else //iPhone 4, iPod Touch 4 o posterior (Retina Display) { GUI.skin = Skin1; //Fons GUI.Box (Rect (330,70,320,500), "MIKU"); GUI.DrawTexture(Rect (5,8,326,624), miku); GUI.Label (Rect (280, 580, 500, 50), "© Albert Devesa - v1.2"); //Nivell 1 if (GUI.Button (Rect (365,155,250,120), "Nivell 1")) { audio.PlayOneShot (click); Application.LoadLevel (1); } //Nivell 2 if (GUI.Button (Rect (365,285,250,120), "Nivell 2")) { audio.PlayOneShot (click); Application.LoadLevel (2); } //Nivell 3 if (GUI.Button (Rect (365,415,250,120), "Nivell 3")) { audio.PlayOneShot (click); Application.LoadLevel (3); } //Idioma GUI.Box (Rect (665,70,280,190), "Idioma");
2. 3. 4. 5. 6. 7. 8. 9.
10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 10 Sólo se muestra el menú para la resolución del iPhone 4, iPod Touch 4 y para dispositivos posteriores con
Retina Display (640x960 píxeles) ya que sino el script ocuparía 375 líneas, sin embargo se puede ver todos los
scripts, así como imágenes y objetos creados en 3D a la siguiente dirección: http://github.com/aldevet/miku.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
36
42. if (GUI.Button (Rect (680,130,120,120),catala)) { Application.LoadLevel (0); } if (GUI.Button (Rect (810,130,120,120),angles)) { Application.LoadLevel (6); } //So if (GUI.Button (Rect (665,280,280,90), "So")) { if (audio.volume == 1.0) { audio.volume = 0.0; audio.PlayOneShot (click); } else { audio.PlayOneShot (click); audio.volume = 1.0; } } //Instruccions if (GUI.Button (Rect (665,380,280,90), "Instruccions")) { audio.PlayOneShot (click); Application.LoadLevel (5); } //Credits if (GUI.Button (Rect (665,480,280,90), "Credits")) { audio.PlayOneShot (click); Application.LoadLevel (9); } } }
43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74.
Script per abrir la puerta:
1. function OnControllerColliderHit (hit : ControllerColliderHit) { if (hit.gameObject.name == "Clau") { Destroy(GameObject.FindWithTag("destruccio")); } }
2. 3. 4. 5. 6. 7.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
37
Script para transformar el movimiento de la plataforma en el movimiento del personaje:
1. var plataforma : Transform; var jugador : Transform; function OnTriggerEnter () { var lloc = plataforma; var anar = jugador; anar.transform.parent = lloc.transform; } function OnTriggerExit () { var anar = jugador; var lloc = plataforma; anar.transform.parent = null; }
2. 3. 4. 5. 6. 7. 8. 9.
10. 11. 12. 13. 14. 15. 16.
Script del contador de plátanos:
1. static var NUMERO_PLATANS = 0; function OnControllerColliderHit (cop : ControllerColliderHit) { if (cop.gameObject.tag == "platan") { Destroy(cop.gameObject); NUMERO_PLATANS += 1; GameObject.Find("numeros_platans").guiText.text = ""+NUMERO_PLATANS; } }
2. 3. 4. 5. 6. 7. 8. 9.
10. 11. 12.
Script del funcionamiento de las vidas:
1. var vida1 : Texture2D; //queda 1 vida var vida2 : Texture2D; //queden 2 vides var vida3 : Texture2D; //queden 3 vides static var VIDES = 3; function Update() { switch(VIDES)
2. 3. 4. 5. 6. 7. 8. 9.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
38
Script del funcionamiento de la caída:
1. private var PosicioInicial : Vector3; function Awake() { PosicioInicial = transform.position; } function OnTriggerEnter(caiguda : Collider) { if(caiguda.gameObject.name == "caiguda") { Vides.VIDES -= 1; PosicioInicial.y = 4; transform.position = PosicioInicial; } }
2. 3. 4. 5. 6. 7. 8. 9.
10. 11. 12. 13. 14. 15. 16.
Script que se ocupa del texto del contador de plátanos.
7. function Awake () { guiText.text = "" + 0; }
8. 9.
10. { case 3: guiTexture.texture = vida3; break; case 2: guiTexture.texture = vida2; break; case 1: guiTexture.texture = vida1; break; case 0: //GAME OVER print("GAME OVER"); Application.LoadLevel(4); break; } }
11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
39
Script del final de cada nivel
1. function OnTriggerEnter(xoc : Collider) { if(xoc.gameObject.name == "final") { Application.LoadLevel(2); //depèn de cada nivell } }
2. 3. 4. 5. 6. 7.
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
40
ANEXO B: TODA LA INFORMACIÓN DE LOS NIVELES
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
41
En total, el juego está compuesto por tres niveles. El primero ha sido explicado paso a paso
en el trabajo. Los otros dos niveles se han creado de la misma manera que el nivel 1 pero
con diferentes modos de juegos. En este apartado dejaré algunas imágenes mostrando los
niveles hechos a Unity así como sus configuraciones.
I. Visualización completa del nivel 2
II. Imagen del segundo nivel (laberinto)
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
42
III. Configuración del efecto
especial del laberinto
Ilustración 1
IV. Propiedades del terreno del nivel 2
V. Configuración de la luz que siguen el personaje por
iluminar el laberinto
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
43
VI. Captura del tercer nivel
VII. Vista en planta del escenario del tercer nivel
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
44
ANEXO C:
BOCETOS DE LOS ESCENARIOS
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
45
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
46
Creación de un videojuego para móviles multitáctiles Albert Devesa Triscon
47