Resumen del Sprint #02

¡Saludos!, pasaron solo 11 días desde el último resumen, pero hicimos tantas tareas que vale la pena resumirlas y dar paso firme hacia el próximo sprint.

Al igual que en el sprint anterior, usamos trello para cargar y realizar cada una de las tareas. Podes ver este tablero cuando quieras ingresando acá:

Aunque, como mencioné en el sprint pasado, mi intención es hacer resúmenes cada una o dos semanas para mantenerlos informados:

Creación del actor Nave

Incorporamos uno de los actores clásicos de Pilas 1.

Aún nos queda pendiente armar el sistema de proyectiles, por lo que esta primer versión es una nave bastante inofensiva… ¡pero vamos avanzando!. La nave tiene varias animaciones para que se puedan encender sus turbinas de forma independientes:

Mejoras en el editor y las preferencias de usuario

Agregamos la posibilidad de configurar el tema de colores del editor desde la sección preferencias, una idea que propuso Hokuto en el resumen de sprint pasado.

Para colocar el editor con colores oscuros hay que pulsar el botón preferencias y seleccionar la opción “usar el editor en modo oscuro”:

También agregamos un botón para permitir que el area de juego se expanda para usar todo el area disponible, y reparamos el tamaño de los actores en el dialogo de creación:

Mejorando las instrucciones para colaboradores

Escribí algo de documentación para facilitar la configuración del entorno de desarrollo para colaboradores. Comencé describiendo las tecnologías que utiliza pilas, y luego armé una guia detallada de las operaciones básicas que un colaborador del proyecto va a querer ejecutar, como: correr tests, compilar pilas desde cero etc…

Aquí está la guia completa:

http://manual-pilas-engine.surge.sh/entorno.html

De paso, aprovecho a mencionar que en ese dominio web van a encontrar la versión más reciente la documentación con cada nueva versión. La documentación se genera automáticamente cada vez que subimos código nuevo a github.

También grabé un video mostrando estos pasos de configuración y lo subí a youtube:

Corrección de bugs y mejoras menores

Volvímos a activar los atajos de teclado, ahora se puede ejecutar desde el editor pulsando “cmd+s” o “ctrl+s” y regresa al editor pulsando la tecla “Escape”.

Actualizamos el código a phaser 3.3.0 el mismo día que se publicó, y también actualizamos las definiciones de typescript para poder usar su autocompletado dentro del editor.

Mejorando el sistema de colisiones

Encontré un problema al detectar colisiones desde matter-js (el motor de física de phaser) e informarlos al motor de pilas. Noté que las colisiones en simultáneo no se reportaban correctamente, o al menos, no como yo suponía al principio. Así que escribí un issue para avisar a los desarrolladores de phaser y por suerte nos pudieron ayudar: Collisions events are called one time on multiple collisions in matter-js · Issue #3450 · photonstorm/phaser · GitHub

Ahora las colisiones en pilas se reportan correctamente, pude mejorar al actor Conejo para que detecte colisiones usando sensores y ahora va mucho mejor que antes:

Les recomiendo probarlo, con poner un par de plataformas y al actor en la escena alcanza. Incluso funciona bastante bien si hay cajas o pelotas en la escena.

También agregamos un sistema de etiquetas muy simple para facilitar la detección de colisiones y reproducir acciones. Por ejemplo, si colocás actores moneda en el escenario vas a ver cómo el actor conejo puede colisionar con ellas:

Esta nueva forma de declarar etiquetas y colisiones también lo documentamos en el manual:

http://manual-pilas-engine.surge.sh/etiquetas.html

Pensando en el próximo sprint

Aún no tenemos completamente enumeradas las tareas para el próximo sprint, pero tenemos varias ideas: queremos empezar a crear mini ejemplos, con lo que tenemos hasta ahora podríamos hacer un mini-mario bros o un juego de naves básico. Crear un sistema de interpolaciones para animaciones simples y posiblemente retomar las pruebas sobre arduino para integrar robótica.

También estuvimos charlando con varios chicos del equipo de desarrollo, es una etapa super interesante para encarar esta nueva versión de pilas juntos, así que posiblemente hagamos un hangout grupal y empecemos a trabajar en la web renovada y más tareas de los sprints.

¡Saludos!

2 Likes

Hola Hugo,voy a descargarme la nueva version para ir probando.

Me preguntastes como se usan lo comportamientos en contruct 2,lo primero te voy a pasar el enlace a un canal de youtube de una persona que conozco y que tiene los mejores tutoriales de contruct 2 en español,lo hago para que veas como se trabaja con contruct 2.

En cuanto a lo de como se usan los comportamientos en contruct 2 te lo explico,primero se crea un actor(en contruct2 se llaman sprites),una vez creado te salen las opciones en el menu de la izquierda del actor como viene ahora en pilas2,en esas opciones viene una que se llama behaviour,pinchas en esa opcion y se abre una ventana con todos los comportamientos (de plataformas,bala,solido,movimiento de 8 direcciones,inteligencia artificial,fisica),luego eliges el comportamiento que quieras y aparecen las opciones nuevas en el menu de la izquierda .

En este menu puedes cambiar todos los parametros y lo mejor es que cuando te vas al editor de eventos,se ha añadido un monton de funciones relacionadas con ese comportamiento para que lo puedas personalizar,de todas formas es mejor que lo veas por ti mismo probando contruct 2 o 3 y ojeando lo tutoriales del canal que te he puesto.
Tambien hay otro programa parecido a contruct que es opensource y tal vez puedas ver el codigo interno,se llama gdevelop y ahora estan preparando el 5 que esta en fase beta y se puede descargar,te pongo el enlace de la pagina

Ahora voy a hacer algunas sugerencias,le vendria bien algunas funciones de las que te voy a poner un ejemplo:
funciones de movimiento:

-mover_hacia_un_punto(posicionX,posicionY,velocidad)
-mover_hacia_un_angulo(angulo,velocidad)
-mover_hacia_un_actor(actor,velocidad,distancia)=esta mueve hacia un actor cuando la distancias es por ejemplo igual o menor que 100,es como si tuvieras un actor que te persigue

funciones varias:

-crear_un_actor(posicionX,posicionY,actor)=esta te crea un actor en la posicion que quieras,se podria usar para crear balas
-contar_numero_de_actores(actor)=esta se puede usar para contar cuantos objetos hay en pantalla,por ejemplo si quieres saber cuando ya no hay mas naves enemigas y si es 0 pasas de nivel
-rebotar(actor,objetos_solidos=true)=esta seria para hacer que un actor rebote con objetos solidos y si le pones false en el parametro 2,rebotaria con todo

De momento creo que esta bien,tambien hay otra cosa que he visto que estais mejorando,que es la manera de usar las animaciones o estados de una animacion,yo personalmente recomiendo que se haga de forma visual,porque manejar animaciones por codigo es muy complicado y desanima bastante.

Se puede utilizar el metodo que trae contruct 2,en este programa se cargan los srites visualmente y se le ponen un nombre por ejemplo,cargar los esprites de movimiento de la derecha de un sprite y le pones pepito_movimiento_derecha,luego cargas los sprites de la izquierda y le pones pepito_movimiento_izquierda,ahora ya solo desde el codigo cuando muevas a pepito para la derecha le dices que use el nombre que le pusistes a la animacion y ya esta,esto en contruct se hace utilizando una funcion para cambiar los sprites,pero es mejor que lo pruebes por ti mismo con contruct o lo veas en los tutoriales del canal que te pase y lo entenderas mejor.

Te pondria mas cosas pero creo que ya es suficiente por hoy,ahora voy a probar la nueva version que has subido y te comentare.Por cierto lo de el detector de colisiones me parece genial la idea,en contruct 2 hubiera creado un sprite con la forma del detector y le hubiera dicho que estuviera siempre en esa posicion.:wink:

Se me ha ocurrido que cuando quieras saber algo de contruct 2,te podria poner una imagen de como se hace en contruct 2 con el programa recortes de window,que te captura una imagen,dime como se coloca aqui en el foro una imagen y ya para la proxima te pongo imagenes junto con la explicacion y de esa manera se entendera mejor lo que te digo.:slight_smile:

Una sugerencia para mejora como dice @hokuto que se pueda adquirir habilidades de otros personajes, creo es buena idea también eliminar habilidades, ejemplo:

Que el actor pingüino solo pueda correr de derecha a izquierda, pero se elimine la habilidad de saltar

De esa forma cualquier actor que se pueda crear puede tomar ciertas habilidades (A través de la herencia), eliminar las que no necesite su personaje y/o agregar otras nuevas