[Devlog] - Shape Escape

Venat

Nacimiento del proyecto

La historia no da para mucho pero, ya que existe, os la cuento jaja.
Mi pareja se estaba sacando el carnet de conducir hace unos años y le preocupaba mucho el examen psicotécnico porque dice que tiene muy mala percepción espacial y reflejos visuales así que me preguntó si no sabía cómo podía entrenar eso. En ese momento recordé este juego que encontré en mi adolescencia: http://espacioarcade.com/juego-imposible/ y decidí enseñárselo porque me pareció apropiado :joy:
El juego le encantó, pero había un problema: Es web y ella quería poder entrenar mucho en ratos muertos, es decir, usando el móvil en el metro (bastantes zonas sin cobertura) así que me animé y desarrollé una primera versión de este juego con una paleta de colores deleznable y unas decisiones de programación asquerosas :sweat_smile:
Me alegra poder decir que pasó el examen a la primera y, según ella, le sirvió de mucho el juego, lo que me animó a rehacer el proyecto y empezar a implementar todas las ideas que había tenido durante el desarrollo chustero. Finalmente hice una publicación en la Windows Store allá por 2016 y lo dejé morir sin estar realmente terminado.
Hoy retomo la aventura para finiquitarlo como se merece y publicarlo en Android (muchas gracias por leer) :grin:

Paso de ladrillos, ¿de qué va esta mierda?

Es un juego para móvil con estilo gráfico de neón sobre fondos oscuros (rollo Number Bump 3D :wink:) en el que controlamos un cuadrado que debe aguantar X segundos moviéndose sin tocar los límites de un área ni los obstáculos azules que lo rodean. A medida que avanzamos niveles aparecen más obstáculos, que aceleran más deprisa con cada rebote en los límites, y se introducen unos objetos que tienen doble efecto:

  • Suman X segundos al final de partida si los cogemos rápido o X/2 si tardamos demasiado
  • Pueden provocar un estado beneficioso o perjudicial de forma aleatoria (50%) como, por ejemplo, hacer nuestro cuadrado más grande (putada) o más pequeño (ayuda)

La idea es explotar al máximo las capacidades de los móviles (hay giros de pantalla que obligan a coger el dispositivo al revés, efectos de gravedad que responden a la inclinación del móvil, momentos en que se puede jugar con varios dedos o es necesario frotar con uno para despejar...) y que la gente juegue partidas rápidas en ratos muertos.

Plataformas

· Play Store

· Apple Store

(Si el juego da más de 100€ y alguien me los acepta para publicar en esa tienda :upside_down:)

Software utilizado

Unity 2018.1.5 para el desarrollo de todo el juego: https://unity.com/
SourceTree + BitBucket para control de versiones: https://bitbucket.org/
Photoshop para creación de sprites: https://www.adobe.com/es/products/photoshop/free-trial-download.html
Incredibox para generación de música: https://www.incredibox.com/
Admob para publicidad: https://developers.google.com/admob/unity/start?hl=es

Contenidos enseñables

Objetivos del Devlog :cowboy:

- Obligarme a terminar el juego con algo de presión social
- Aceptar ideas y consejos de diseño y/o arquitectura con humildad
- Conseguir generar algo de interés y que alguien lo juegue el día que lo publique
- Estrechar lazos con la comunidad

:space_invader::poop: ¡Muchas gracias por el interés! :poop::space_invader:

7
Leos

Atento a tus actualizaciones! Tiene buena pinta :smile:

Y muy buen primer #1

Dale caña!!!!

_Rpv

Tú pareja tiene un problema y la haces un juego sin que ella te lo pida, eso si que es amor

Pd: La próxima vez te guardas la página web en el movil para poder abrirla sin conexión.

Hukha

Mueve lo mueve lo!
Buen cameo xD
Veo que usas Bit Bucket, supongo que por los repo privados. Github tiene privados sin límites ahora, recuerdalo, bit bucket tiene 1GB de límite :)

1 respuesta
Venat

#4 Bueno saber lo de BitBucket. Lo usaba por hábito, gracias XD para próximos proyectos miraré otra plataforma

1 respuesta
Leos

#5 Yo uso gitlab en el curro y la verdad que muy contento, más que con bitbucket, además el ci/cd que implementa me parece bastante bueno si no quieres tener una herramienta especifica para ello

B

#1 El juego imposible lo jugaron por el foro versión multiplayer xD

edit

1 1 respuesta
Venat

#7 En su día pensé un modo multijugador, un versus a lo tetris, pero demasiada complejidad para algo tan humilde XD Si le saco más de 2K crearé un Shape Escape Versus. Si no, al carrer con esto

2 2 respuestas
Venat

Ya hay nuevo efecto de neón más vibrante y orgánico XD se lo aplicaré a todas las superficies con diferentes intensidades y a ver qué tal:

Los círculos tienen el efecto viejo para contrastar un poco la sensación. Cuando termine de optimizar el shader lo compartiré por aquí

1 respuesta
Hukha

#9 Te estás haciendo el shader made in @Venat ?

1 respuesta
_Rpv

#8 lo piensas vender o donaciones?

1 respuesta
B

#8 el multi autoritativo de #7 se hizo en una tarde...

1 respuesta
Venat

#10 Lo de siempre, he buscado por internet y he encontrado a alguien que hace lo que quiero pero con un shader monstruoso, así que lo he copiado y lo estoy reescribiendo para que se limite a hacer lo que quiero XD en unos días estará por aquí "a mi gusto y vuestra disposición"

#11 La idea es poner un banner de publicidad en la franja inferior de la pantalla, que creo que no se va a utilizar nunca, y algún vídeo o intersticial cada X muertes. Algo ligero :grin:

#12 Pero hombre, aquí tenéis humanos telekinéticos, yo soy un chimpancé todavía jajaja. Lo que tenga que ser será después, necesito acotar y finiquitar.

Venat

Voy a darle un poco de caña al apartado musical. Ya tenía un par de temas pero me apetece explorar un poco para ver si enriquezco mi humilde obra. La página que estoy usando es esta: https://www.incredibox.com/
¡Os animo a probarla y compartir lo que os salga! Quizá me quede con alguna de vuestras piezas si os parece bien jaja

1 1 respuesta
Venat

Aunque es un poco prematuro y está en desarrollo... quería compartir algo ya XD Shape Escape

2 respuestas
Jastro

#15 putas apks tete

txandy

#15 los ricos que tenemos iphone no podemos probarlo?

1 respuesta
Venat

#17 De momento no, lo siento. Cuando haya resuelto algunos fallos haré una compilación para PC pero iOS queda muy lejos de mi alcance XD ya lo comenté en #1

Venat

Planteamiento de la UI en Unity

Buenas tardes gente. Lo que voy a mostrar ahora es la metodología que he seguido para generar y utilizar los recursos gráficos que van a conformar mi juego. No digo que sea la panacea pero, bajo mi criterio, es la manera más óptima que conozco de hacer algo... ¿"decente"?
Intentaré que sea una lectura interesante :sweat_smile:

Ligero vistazo al pasado

Mi planteamiento antes era 1 textura = 1 sprite, es decir, que si quería tener 3 botones rectangulares, me hacía mis 3 .PNGs correspondientes. Horrible, lo sé, casi todos tenemos algo oscuro en nuestro pasado :man_vampire:.

Cambio de tercio

Cierto tiempo después, cuano abro los proyectos a medias y veo que tenía la carpeta Sprites petada de imágenes de 40 - 200KB, es cuando comprendo lo fácil que era en su día cambiar en Photoshop, guardar con otro nombre, importar y seguir tirando. Ahora, algo más veterano, sigo las siguientes pautas:

  • Buscar la figura más primitiva y reutilizable posible (cuadrados y círculos sobre todo)
  • No generar ninguna textura de más de 128 x 128 si todo va a ser para la UI (peso innecesario)
  • A la hora de elegir el color pensar siempre que blanco = lo que desees y que, salvo que necesite un contraste concreto, utilizar grises de relleno ofrece suficiente calidad
  • Mantener un fondo transparente y procurar que el color nunca toque los bordes (suele notarse mucho el corte o los límites de una textura si le aplicamos cualquier efecto posterior)

Así es como genero algo similar a estas texturas:



Resultado en proyecto:

Si ahora le meto estas texturas a uno de mis botones pues tengo lo siguiente:

(Poco sexy y se nota que el color llega hasta el borde)

Modificación de sprites en el editor de Unity

Estos son mis pasos desglosados al importar una imagen en Unity y meterla en la carpeta Assets/Resources/Sprites para que quede como quiero:

1 - Convertir el Sprite a tipo 2D UI

2 - Editar el Sprite para hacerlo extensible

3 - Otros cambios

*(No olvidar poner el Mesh Type como Full Rect para objetos que no sean de la UI, en otro caso se puede dejar como Tight)

Uso de los sprites en UI y en escena

Antes de conseguir el efecto deseado hay que hacer un último cambio en el componente de destino (SpriteRenderer, Image, loquesea):

Y ahora sí, tenemos un resultado como este:

*(Nótese que solamente uso el color del editor, pero el botón muestra dos tonalidades por el borde y el relleno)

Conclusiones

  • Este sistema me permite utilizar imágenes de menor resolución (32 x 32 en el ejemplo) pero buen resultado en pantallas que ocupan menos de 10KB
  • Las imágenes son mucho más reutilizables al aprovechar el color de Unity como multiplicador
  • Puedo aprovechar materiales para hacer cambios y transformaciones puntuales, que es más respetuoso con la memoria y no produce una sobrecarga de GPU sensible:

El gif se ve como la mierda pero no logro hacerlo mejor así que dejo una captura también:

Muchísimas gracias por leerme, aquí os dejo el shader utilizado para el efecto de neón (aún en progreso para optimizar):

spoiler
5
Venat

¡Pasamos a la primera versión Alfa! Espero que no pete demasiado pero estoy abierto a todo: fallos, sugerencias, pactos de sangre, felaciones e ideas normales :innocent:

1 1 respuesta
Kalgator

#20 no tengo android ptavida tt

Shaktal3

#14 No estoy muy puesto en temas de copyright, pero por lo que veo en la página esa, lo que saques de ahí solo puede ser usado de manera personal y NO comercial, ándate con ojo.

1 respuesta
Venat

#22 Correré el riesgo jaja, tampoco es que el juego vaya a tener 10M descargas y, si las tuviese, pago multa y gracias por todo.

He pensado que voy a intentar hacer un par de cosas, a ver qué os parece:

1 - Hacer un .exe para PC que, aunque no ofrezca la experiencia jugable al 100%, facilite un poco el testing a quien tenga curiosidad

2 - En lugar de hacer artículos de lo que se me ocurra (que me tiro una hora y no sé para qué), escribiré artículos explicando lo que queráis saber de cómo está hecho el juego. código incluido

:sunglasses:

1
DiGuti

A mí me interesa el tema de la publi, que no he hecho na hasta ahora.

Good job!!

PD: Soy un mancazo en este tipo de juegos, aún no he pasao el primer nivel, se me hace largo, xD

1 respuesta
Hukha

Lo del .exe me parece dpm.
Ya sabes que soy partidario de que tiene potencial rollo OSU!

1 respuesta
Venat

#24 ¡Anotado! La documentación de AdMob ya es muy buena: https://developers.google.com/admob/unity/start?hl=es pero intentaré hacer algo más concentrado y entretenido de leer

#25 Esta semana habrá .exe, eso sí, aviso que no todo va funcionar XD ¿Qué es el rollo OSU?

1 respuesta
Hukha

#26 Osu!

Venat

Bueno, lo prometido es deuda, aquí tenéis el .exe para catar el juego en PC: https://www.dropbox.com/s/8ogiaxj0p7aos26/ShapeEscape.zip?dl=0

Y aquí os dejo el .apk en su versión alfa 2.0: https://www.dropbox.com/s/7f4312m9ktgprhj/ShapeEscape.apk?dl=0

¡A ver qué os parece! :space_invader:

13 días después
Venat

Estoy teniendo un problema bastante tonto y también bastante serio. Necesito mover, a la vez, dos objetos en la escena utilizando un dedo para cada uno. ¿Alguien ha hecho algo similar y me puede echar un cable?

1 respuesta
starfucker

#29 Estas comprobando los diferentes puntos de touch?

Le has echado un ojo a esto? Unity Multitouch
Tendrás que comprobar si estas tocando con mas de un punto, y diferenciar los distintos puntos de toque
Si es algo mas complejo, el #TeamUnity deberia saberlo ;)

2 respuestas

Usuarios habituales

Tags