Antes de nada si quieres probar nuestra versión antigua del juego, entra en el siguiente enlace:

breakallthinks.cat/game

……………………………………………………………………………..

Creado con el motor grafico de UNITY 3D, uno de los programas más famosos de la lista.

Lo primero que emos echo es la organización de la estructura de nuestros archivos dentro de la carpeta Assets:

  • IMAGENES
  • PREFABS
  • SCRIPTS
  • OBJETOS
  • MUSICA
  • MATERIALES
  • TEXTURAS
  • PERSONATJES
  • ESCENAS
  • DIALOGOS

Primer hemos creado una escena que se llama “escenaPRINCIPAL”, otra que se llama “NIVEL1”, “INTRODUCCION”, “MENU_SKINS” guardada a la carpeta ESCENAS:

Una vez creado todas las escenas, hemos creado unos GameObjects que son los personajes y dentro de cada GameObject hay varias imágenes que los hemos puesto de forma organizada para que se vea como una sola imagen. El  nombre que le hemos puesto al personage principal es: MIERDA4, con una etiqueta (Tag) PERSONAJE, Este le hemos añadido un ANIMATOR para animar el personage:

Cuando hemos creado a los Personajes (gameobjects), hemos creado un script que se llama “SALTO.cs” con lenguaje <csharp> (C #), dentro de este script hemos hecho que cada vez que es presiona o se toca la pantalla del Dispositivo, añada 1 Fuerza al transform del Personaje con una variable de “rb” de Rigidbody, que después le hemos añadido el componente de Rigidbody de gravedad y masa del GameObject:

Una vez hecho esto le damos velocidad en el mismo script para que dé la sensación de que se mueve, pero antes le cambiamos el nombre al script para PERSONAJE.cs y se lo aplicamos al personaje:

Ahora lo que hemos hecho se probar que funciona correctamente y crear prefab guardado en la carpeta de Prefab como todos los demás:

Ahora lo que hacemos es entrar a la escena de NIVEL_1 y crear más componentes (GameObject), en el fondo de la escena, hemos creado un “SCROLL_PARALLAX”, que lo que hace es mover una imagen repitiendo el principio cada vez que llega al final de derecha a izquierda con una velocidad añadida de una variable publica para modificar a través del inspector aunque se pueda editar desde el script.

Para crear el SCROLL hemos tenido que crear 1 material:

Este material está formado por una imagen en formato .PNG, casi todas las imágenes en las que trabajamos son de este formato. Una vez hemos creado el material lo añadimos al SCROLL y en el SCROLL le hemos añadido un script para que podamos mover este material en la misma posición:

Esto del NotificationCenter es un script público que nos hemos descargado a parte, es bastante útil, su función es comunicar desde un script asta otro, es decir, envía un mensaje a otro script y si este mensaje lo ha recibido entonces que haga esto (RESUMIDO).

Hemos creado otro prefab que se llama retrete, hemos creado otra etiqueta retrete (Tag) para declarar desde el script del PERSONAJE que es un destructor de personajes, es decir, si el personaje colisiona con él el personaje muere al instante lo que faltaría crear el menú para cuando el personaje muera entonces se podría volver a repetir y no tendríamos que estar dándole todo el rato a play y pausa:

Por último lo que hemos hecho es crear el prefab y guardarla dentro del GameObject de retrete.

Hemos pensado crear unas monedas para que se pueda hacer una puntuación pero en vez de eso hemos creado un “murcielago”, luego lo hemos vuelto a borrar porque no nos acababa de gustar y lo hemos dejado apartado por el momento.

También hemos probado de añadir un GIF pero hemos visto que no se movía y también la hemos borrado.

Hemos creado el componente “Avena”, le hemos dicho que es un destructor con el mismo tag “retrete”, es decir, todo componente que tenga la etiqueta “retrete” matara al personaje. También hemos animado el componente avena dando vueltas de 360º grados:

Hemos creado otro componente (GameObject) de un tubo que lo que hace es girar hacia un sentido haciendo 360º grados con la animación que le hemos puesto, después lo hemos estado pensando y lo hemos arreglado pero quedaba mal y al final lo hemos borrado.

Nos hemos descargado otro script de AspectUtility.cs público que lo que hace es: mantener la relación de aspecto de la pantalla con el dispositivo que se ha iniciado la aplicación o juego:

Hemos hecho que el personaje se mate cada vez que colisiona con un GameObject que tenga la etiqueta (Tag) “retrete”, antes sólo lo habíamos declarado con colisión y no funcionaba, ahora con eso si que muere cada vez que colisiona.

A la cámara le hemos añadido colisiones rectangulares invisibles para las partes de arriba y abajo que también tenga la etiqueta (Tag) “retrete” para que no se salga de la pantalla y no haya ninguna trampa. También otro colisiona con el script “SUELO” para mantener el personaje quieto hasta que la persona que esta jugando toque la pantalla del dispositivo y empiece a saltar y correr el personaje también eliminando el GameObject que lo mantenía:

Hemos actualizado el programa del motor gráfico a versiones diferentes y sin querer nos hemos dado cuenta que no nos podíamos compartir los archivos que modificábamos cada 2 por 3 y hemos tenido que actualizar a una versión más actualizada de hora. (No funcionaba el Collab).

Hemos hecho que el personaje esté todo el rato animado, gracias a un compañero nuestro que se llama Pau.C de nuestra clase nos lo ha enseñado para que no lo encontrábamos y él ya lo había encontrado: El “Loop Time” tiene que estar activado si no, sólo se anima una vez:

Hemos creado un script que se llama “SEGUIR_PERSONAJE” guardado en la carpeta SCRIPTS que lo que hace es que la cámara siga al personaje y que mantenga un margen de vaiable público flotante que se puede modificar desde el inspector:

Ahora la camara sigue al personaje.

Hemos ordenado la escena de “NIVEL_1”:

Hemos organizado bien las carpetas con los Prefabs y todo bien clasificado por tipo de componente y de escenas, ejemplo de imagen:

Ahora una vez casi terminado la escena de “NIVEL_1” (Solamente falta hacer el final de la escena y puntuación), lo que hacemos es entrar a la escena de “INTRODUCCIÓN” y empezar a hacer la introducción de nuestro juego.

Dentro de la escena “INTRODUCCIÓN”, hemos copiado el SCROLL con su script incluido y la hemos puesto en esta escena y el material lo hemos cambiado por este:

El scroll le cambiamos la velocidad de movimiento y le añadimos otro material, que el fondo negro de la imagen sea invisible, como habíamos dicho es un formato .PNG

Al final el resultado del SCROLL queda así: Lo que cada material va más rápido que el otro:

El personaje de la escena “NIVEL_1” también la hemos copiado en este para ir probando, si no tuviera ningún personaje ahora mismo no podríamos hacer ninguna prueba.

Con el programa Adobe Photoshop CC hemos creado unos diálogos para que cada vez que el personaje avance unos metros por decirlo así, se active un solo:
Cada diálogo es un prefab que se ve, es decir, son GameObjects:

También hemos creado el diálogo “BASE” por si más adelante tenemos que hacer los cambios de idiomas, es bastante importante y daría más puntuación al juego.

Hemos tenido otro problema con el programa, cada vez que le dábamos al Play del inspector se colgaba por que había un colapso total y hemos tenido que volver a una actualización anterior que habíamos hecho antes.

Hemos creado GameObjects que son restos de alimento que representan que están dentro del intestino y el personaje colisiona con ellos pero por el momento no hacen nada, sólo tienen de componente Rigidbody con masa de 0,0001 y de gravedad 0 más colisión para que se pueda chocar con ellos:

Un poco mas adelante hemos creado más GameObjects como los restos de alimento pero la diferencia que tienen es que este no tienen Rigidbody, son objetos estáticos que no se mueven, estos componentes tienen la etiqueta (Tag) “retrete”, es decir que si el personaje colisiona con uno de este GameObjects, muere:

Hemos actualizado las imágenes de los aseos de la escena “NIVEL_1” por que teníamos un problema, no salían en la pantalla pero desde el inspector si que lo veíamos, era una tontería y nos tiremos al menos 10 minutos para encontrar el problema. El caso era que las imágenes de los aseos estaban mucho más cerca del eje “z”, es decir, estaban atrás de la cámara, era por eso.
Hemos creado la puntuación de la escena “NIVEL_1”, en el script “PERSONAJE” hemos creado 2 variables, un Texto que le indicamos el objeto que contiene el texto y el int es el numero entero que es suma públicamente al inspector y en la pantalla de la escena donde esta situado. Principalmente el valor de int es 0 porque siempre empieza por 0 lógicamente:

Hemos creado un GameObject nuevo que al final nos hemos decidido, nos ha hecho gracia, es lo que serían las monedas, pues en vez de meter monedas hemos puesto una mosca que cada vez que el personaje colisiona con él, se sume +1 al contador , aunque se ha de programar: