Resumen del sprint #12

¡Tenemos editor de animaciones!

Sin dudas una de las tareas más importantes de este sprint fue la creación del editor de animaciones.

Ahora tenemos la posibilidad de crear animaciones directamente desde el editor de manera muy sencilla:

Añadí un botón para ver, crear y editar animaciones justo en la parte superior de la pantalla:

Y una vez que se comienza a realizar la animación, la interfaz muestra el nombre, la velocidad y cada uno de los cuadros de animación:

También grabé un video mostrando cómo usar el editor con un ejemplo más complejo:

Mejorando los paneles colapsables

Ahora los paneles se pueden plegar de manera más intuitiva, añadí un texto para indicar el nombre del panel, un ícono de plegado e hice que los paneles no se oculten por completo, sino que queden plegados al borde de la pantalla:

Agregando modo de dibujo en baja calidad

Añadí una opción para dibujar la escena del juego en baja calidad, esto hace que el área de juego de pilas se muestre evitando suavizado de píxeles y haciendo que la simulación funcione mucho más rápido en equipos antiguos:

PilasEngine___2019-12-02_00-43-00

Ten en cuenta que las diferencias de estos dos modos solo se perciben cuando se maximiza el área de juego o se reduce mucho su tamaño. En la mayoría de los casos, el área de juego se muestra en una escala 1:1, así que no se ve la diferencia.

Por el momento dejé activado el modo baja calidad por omisión para quienes no lo configuren, aunque no tengo claro si es la mejor opción. Noté que en equipos sin aceleración de video el modo baja calidad es mucho mejor, ya que alcanza los 60FPS en lugar de 40/45 FPS. Sin embargo, en equipos con aceleración de video no se ve diferencia de rendimiento, y hasta pareciera que el modo de baja calidad pierde algunos FPS.

Así que voy a hacer algunas pruebas más para elegir el modo más útil para la mayoría de los usuarios en la próxima versión.
Acá dejo una comparativa de los dos modos cuando se usa pantalla completa:

Mejorando captura de errores

Modifiqué la forma en la que se capturan errores dentro del editor, noté que había algunas partes del editor que podían ejecutar código de los juegos sin evaluar si podían fallar o no, y eso hacía que el editor quede “colgado” e impidiendo poder volver a ejecutar el juego.

Mejorar la función “obtener_actor_por_nombre”

Cambié la implementación de la función “obtener_actor_por_nombre” para que falle en caso de que se le indique el nombre de un actor inexistente en el proyecto.

Este cambio nos va a ser de mucha utilidad para mostrar un mensaje de error claro al respecto, cosa que no podíamos hacer antes cuando la función simplemente retornaba null en caso de no encontrar el actor.

Creando ejemplos nuevos

Incorporé un ejemplo que muestra cómo crear dos tipos de proyectiles con diferentes recorridos:

PilasEngine_2019-12-01_18-58-37

y además añadí un ejemplo sobre temporizadores.

Mejorando scripts para exportar juegos

Hice que el exportador de pilas incluya bibliotecas y varios archivos .bat para simplificar la creación de versiones Portables (en formato .exe) para windows.

B54FFB93-C748-4858-A07B-62ED6D8CD7A2

Evitando que los diálogos de textos salgan de la pantalla

Corregí un detalle que detectamos hace poco, cuando le indicábamos a un actor que pronunciara un texto a veces se salía de la pantalla.

Con este arreglo, ahora el globo que incluye el texto se acomoda para quedar siempre visible en caso de que el actor esté muy al borde de la pantalla:

PilasEngine_2019-11-26_19-49-48

Otras mejoras

Hubo varias mejoras pequeñas que no detallé, pero que sin dudas ayudan a que la herramienta funcione mejor, como la creación de los métodos “olvidar” para quitarle habilidades a un actor, reparar las animaciones del actor Ceferino, crear el actor “botón activable” y varias cosas más.

Podes ver la lista completa de cambios directamente en github

Para el próximo Sprint

Estuve haciendo un listado de mini-juegos que me gustaría hacer con pilas, como mínimo quiero crear algunos juegos clásicos y sencillos para mostrar lo que ya puede hacer la herramienta.

Tenía previsto sumar más ejemplos en este sprint, pero el editor de animaciones me demandó más tiempo del que esperaba… así que para este próximo sprint no hay excusas, ¡Se vienen más juegos!

1 Like

Woooow @hugoruscitti estás a full con Pilas te recontra re felicito amigo, está quedando increíble el Engine, sin duda que vale la pena cada minuto invertido en el proyecto, a seguir así que se vienen muchas cosas más EXITOS!!!

1 Like

¡Guau!,cuantas novedades,estas que te sales,jejejeje.

Me pongo ya mismo, a probar todas y a crear otro pequeño juego.:star_struck:

1 Like

Hola Hugo excelente trabajo,no cualquiera tiene la capacidad para crear algo así…Creo que el editor de animaciones tendría que llamarse EDITOR DE ANIMACIONES DE SPRITE o algo por el estilo…Tanto Godot Engine como Unity tienen algo parecido a esto…osea una cosa es el editor de animaciones y otra es el editor de “animaciones de los sprite”…Esta herramienta para animar sprite es excelente…Godot Engine o Unity tienen herramientas de animaciones que permiten insertar keyframes a cualquier objeto de la escena por lo tanto podes crear cinematicas animadas…También existen herramientas de animaciones donde creas arboles animados y luego los combinas…

Qué se puede hacer con el editor de animaciones de Godot Engine,para mi es el mejor editor que existe.

Podes animar casi cualquier propiedad de los nodos,cuando la herramienta esta activa aparece una llave al costado.

Podes llamar a metodos de clases,musica entre otros:

Tambien podes mesclar el nodo animationSprite(animacion de texturas) con el nodo de animaciones principales estos son algunos de los métodos.

Con unity es practicamente lo mismo,creo que lo entenderias.

A parte de eso Godot tiene la particularidad de tener un nodo llamado ANIMATIONTREE donde podes unir las animaciones del animation player y crear mini arboles de animaciones o cambiar estados complejos desde pocas lineas de código.

Yo creo que Godot Engine posee una gran herramienta de animación,sin plugins externos es posibles crear estados de animaciones sin escribir tanto codigo,sin embargo encontre un defecto en esta herramienta,ya que no permite coleccionar muchos animationPlayer,sino 1 solo…Osea 1 animation player posee varias animaciones que desde Blender3D son importadas


Imaginate importas una grua con animaciones,un personaje con animaciones,un enemigo con animaciones y vos queres crear cinematicas entre estos 3 objetos importados,no podes ya que no podes unir todos los animationPlayer de cada objeto en 1 solo arbol de animaciones…Se puede,desde Codigo,pero no es lo mismo ya que no permite previsualizarlo…
En mi caso me dijeron que lo ideal seria crear un plugin…Las herramientas de animación son fundamentales para crear cinematicas y asi poder contar historias dentro de los videojuegos…Tener una herramienta que permita mezclar aniamciones globalmente permite esta clase de cosas…Esto que estoy diciendo aqui tambien voy a reportarlo a Godot Engine como una mejora…Bueno Nose si te guste leer la Biblia pero fue bastante extenso…XD…Hasta la próxima…Saludos.

Hola.

Tengo un par de sugerencias para la proxima version si es posible.

La primera es añadir dos barras en el editor de objetos para poder moverme por el escenario,ahora mismo hay que hacerlo manualmente y es bastante incomodo el intentar colocar objetos en un nivel grande.

La segunda es introducir otro boton para colapsar el editor de objetos y que quede oculto mientras estoy programando,ahora mismo es muy incomo el programar ya que el editor de objetos no me deja espacio suficiente.

Por cierto,la opcion de baja calidad no se nota nada la mejoria de rendimiento,es mas,en alta calidad gana algunos fps.

He encontrado un bug en esta version,hay veces que en el editor de codigo no funciona el teclado,por mas que intento escribir no aparece nada.Tengo que cerrar la aplicacion y volverla a abrir unas cuantas veces para que vuelva a funcionar correctamente.

Hola @hokuto, nunca me pasó lo del editor. Si te llega a suceder de nuevo, ¿podrías abrir la consola del navegador (ctrl+alt+i) y ver si no te aparece un error de javascript?

Tal vez no capturé algún error de ese lado.

Avisame cualquier cosa.

Hola @hugoruscitti.

Me sigue pasando,he hecho lo que me has comentado de abrir la consola pero no sale ningun error,lo curioso es que al cerrar la consola me vuelve a funcionar las teclas pero me sale un trozo de pantalla en blanco a la derecha.

Te paso mi ejemplo donde me pasa esto de las teclas para ver si te pasa a ti tambien.

Hola @hokuto, estoy ejecutando el juego que me enviaste pero no logro hacerlo fallar, ¿que navegador estas usando?. ¿de casualidad no tenes activado el modo vim?

image

¿te ocurre luego de hacer algo particular? ¿o pasa al azar?

Vale…he probado la version de pilas compilado junto con xampp y hay me funciona bien,pero si utilizo la version de pilas offline de 32 o 64 bit,cuando cargo el ejemplo que te he pasado y me voy al editor de codigo para escribir algo,no funciona el teclado.

Mmmmm… volví a probar con la versión offline y me funciona, no se cómo reproducirlo… ¿en windows te sucede no?

Windows 7 ultimate de 64 bit.

Lo que hago es ejecutar pilas,abro el editor y cuando estoy dentro de la aplicacion cargo mi ejemplo,me voy al editor de codigo y hay no funciona el teclado para escribir cualquier cosa,da igual si es en el codigo de la escena o de cualquier actor.

No sé si esto aporta algo, pero Windows 7 ya no va a tener más soporte y eso hace que ya Windows 7 sea inestable, porque no te cambias a Windows 10 o alguna distribución de Linux??

Hola @hokuto, volví a hacer pruebas y no pude reproducir el problema… probé con dos virtuales de windows 7 y me pasa lo mismo… no logro que falle como pasa en tu equipo:

¿Se te ocurre alguna otra cosa que se pueda probar?

Hola @hugoruscitti.No se me ocurre nada mas,seguire usando la version compilada con xampp y cuando saques la nueva version volvere a usar la offline.