DevLog Los Alquimistas Nº2

Este DevLog lo dedico al Dinamismo y la Eficiencia.

Una de las razones por la que muchos juegos son atractivos, es por simplemente tener un dinamismo visual que llena de vida la pantalla. Por más que estos movimientos fueran irreales o rompan esquemas y la jugabilidad no exista (no voy a dar nombres porque me canso), la vida en un “video” es primordial ya que es lo que separa una foto o un juego de mesa del VIDEOjuego.

Quizá la razón es que buscamos inconscientemente vida en todo lo que vemos, por eso encontramos rostros donde no los hay (¿nunca viste una mancha en el techo del baño y dijiste “Me está mirando”?). Este instinto o efecto visual, puede ser aprovechado para que nuestro jugador inyecte sentimientos en algo que no lo tiene (“¡no te mueras frasco!”.

Antes. Sin TweenMotion
Antes. Sin TweenMotion
Después. Con TweenMotion
Después. Con TweenMotion

Como dije en el anterior DevLog, una de las cosas que más tiempo me sacó fue intentar lograr dar ese dinamismo a los frascos. Pero caí en uno de los errores más comunes al comenzar proyectos sin intención de programar: usar paquetes predefinidos.

En este caso mi cerebro no tenía ganas de pensarlo mucho, decía “bueno, los frascos caen, entonces hace falta leyes de gravedad. Leyes de gravedad existe en el paquete de física y el de plataformas…” El primero, el de físicas, resulto ser uno de los peores fracasos, por más que los frascos se veían extremadamente realistas al caer, chocar entre ellos, caían fácilmente los fps en un cpu normal, generando saltos de cuadros y trabándose en celulares y ni les cuento de como salían volando de la pantalla o se escapaban de su cajón para visitar frascos vecinos…

El segundo intento, con plataformas, fue el que llevé más lejos, aprovechando funciones como “hacer saltar al frasco” (u re loco), pero se quedaba allí y tenía muchas ganas de que fueran mucho más vivos que eso, así que le ofrecí mi alma al diablo a cambio de almas para mis frascos… pero no la quiso, dijo que ya tenía muchas más baratas… tuve que poner a pensar a mi cerebro.

Tras ver el video de “La ilusión de vida” recordé viejas materias donde explicaban el movimiento mediante ondas, estas ondas se obtenían por ecuaciones matemáticas tan simples como complejas para quien no las entiende (mi caso). Así que investigando y buscando pude encontrar un nuevo paquete de cosas predefinidas, pero esta vez eran solo cálculos matemáticos que generaban Motion Tweens (el paquete para Construct2 por si les interesa es https://www.scirra.com/forum/viewtopic.php?t=70700 ).

bounce

El chiste al momento de generar estas animaciones es evitar tener que dibujar dichos movimientos (porque si nos ponemos a pensar sería más sencillo y rápido tener la animación cuadro por cuadro del frasco rebotando) pero esto es un gran problema cuando se trabaja con muchas figuras simples, porque terminas ocupando mucha memoria en puros cuadros. Entonces podemos optar por realizar efectos de movimiento mediante código. Lo primero que hay que entender es que estas animaciones se hacen cambiando valores de la imagen por los resultado de la ecuación con la que vamos a trabajar.final

full2

En mi caso, buscaba que el frasco caiga y rebote en un punto sin caerse, para ello el easeOutBounce era perfecto (out=salir al final, in=entrar al principio). Luego para que este frasco no rebote simplemente como un cascote, le agregué un easeOutSmooth que realizaba un cambio muy suave en el ángulo del frasco y en su ubicación horizontal. El resultado final que conseguí en apenas unas horas fue muy satisfactorio, dejándome poder pulirlo más adelante, con muchísima más libertad que un paquete de juegos de plataforma o un motor completo de física innecesario.

Por otro lado la eficiencia es notablemente mejor en la PC, pero no tanto así en un celular donde al parecer estos cálculos de punto flotante tan grandes le exigen más allá de sus capacidades. Igual, mientras que la pc pude lograr unos fijos 60fps en el celular ronda entre 7 a 16 fps contra los 8 a 13 fps que tenía con el sistema de plataformas.

Por otro lado este rendimiento también es por el HTML5, más la extraña ley de Google de no utilizar GPU de marcas que no estén aliadas a google, hay trucos para activarlo mejorando en mi caso los fps entre 11 a 25, Les recomiendo este post https://www.scirra.com/blog/144/the-great-html5-gaming-performance-test-2014-edition donde se vé claramente estos casos y de paso explican el interesante futuro de HTML5 y WebGL.

Bueno esto es todo por hoy. No se dejen tentar por el camino fácil, piensen muy bien antes de lanzarse en cuestiones de animación y podrían ahorrarse dolores de cabeza sin sentido. Recuerden que las imágenes en una computadora son una serie de números, si aprendes a modificar esos números se logran efectos muy curiosos para nuestros ojos y eso es llamativo y eso es positivo (tampoco se pasen!)

Adelante Héroes. Yo sigo 🙂


Vistas: 409

DevLog Los Alquimistas N1º

mixIntroducción

“Fenix y Bennu: Los Alquimistas”, es un proyecto que inicié hace ya varios meses atrás. Sepan disculpar que no estoy acostumbrado para nada a hacer un “rastreo” de lo que trabajo sino más de los resultados… En parte es por culpa de que nunca les presté atención a otros DevLogs, pero me doy cuenta que es algo muy importante si uno quiere que la gente entienda lo que hace y por qué lo hace. Es como ir al baño y no prender la luz, en algún momento alguien va a entrar de golpe y te vas a mandar una cagada y sera tu culpa y no podrás arreglarlo, así que mejor hacer las cosas claras y permitir que la gente te ayude de la forma que puedan, cosa que si alguien lo lee y te dice “no hay papel” no te sorprenda más tarde…

mmEste juego lo tuve en mente desde hace muchos años, siempre quise hacer un juego de alquimia, inspirado principalmente por el sistema del viejo Might And Magic. En aquel sistema, el jugador podía mezclar frascos y hierbas para crear pociones nuevas cada vez más fuertes, pero necesitabas subir el nivel de “alquimia” para poder lograr frascos mejores sin que te explotaran en la cara.

Pero claro, no quería tampoco hacer una cruda copia del M&M, solo quería mantener la esencia de tan simple y eficaz sistema de combinaciones.

Cuando conocí un Engine amigable para mi parecer, llamado Construct2. Sumado al aporte de Fernando Lucas para hacer las gráficas, me sentí más que entusiasmado en empezar.

Los primeros intentos fueron bastante fracaso, más que nada porque no lograba crear una grilla viva, no me gustaba para nada el estilo “Candy Crush” donde son baldosas fijas, duras y frías. Perdí muchísimo tiempo probando combinaciones de motores de física y tratando que no se desarmara todo en el intento.

Por suerte tras varias pruebas logré que la mecánica de mezcla y activación funcionaran a la perfección y no le presté más atención a ese aspecto estético supeficial, al menos hasta más adelante.

first

Tras tener el sistema de mezcla, necesitaba un entorno más entretenido que solo mezclar, ba, quizá solo mezclar hubiera sido suficiente, pero no me conformaba. Así que en este momento me encuentro en el desarrollo de lo que podría ser un Puzzle Adventure Game, como lo fue en algún momento el querido Legends of Fae, Puzzle Quest, etc… donde el trabajar con el puzzle te ayuda a avanzar en una historia.

final

Que tenemos hasta el momento:

– Sistema de Batalla

– Sistema de venta de pociones

– Tutorial introductorio

– Mezclas hasta Nivel 3 (lvl1+lvl1=2 ; lvl1+lvl2=2,5 ; lvl2+lvl2=3; )

En qué estoy trabajando

– Mezclas de Nivel 4,

– Animaciones más vivas (gracias al video http://vimeo.com/93206523#at=2 ) se me ocurrieron varias cositas que podría integrar

Qué sigue

– Mapa y Aventura 😀

Pues sigo adelante héroes! 🙂 Estén atentos que iré creando DevLogs para todos los juegos en los que estoy trabajando 😉


Vistas: 265