¡Hola!, les escribo para comentarles las mejoras que se implementaron recientemente en Pilas Engine 2
Los links para usar la versión online o descargar la versión nueva están aquí. Recuerden que aún estamos en una fase muy temprana del desarrollo:
Implementando habilidades
Una de las cosas que aún no habíamos recreado en pilas desde la versión 1 eran las habilidades. Las habilidades son comportamientos que podemos “enseñarle” a los actores para mejorarlos con mucha facilidad.
Un ejemplo de habilidad es la posibilidad de “arrastrar con el mouse” un actor por la pantalla. Imagina lo simple que resulta tomar un actor cualquiera, enseñarle esa habilidad con una linea de código y listo:
mi_actor.aprender("arrastrable")
Ahora bien, en esta versión de pilas lo hicimos un poco más interesante. Ahora incluso hicimos que estas habilidades se puedan enseñar a los actores directamente desde la interfaz así:
Ese nuevo selector de habilidades es bastante útil, porque lista todas las habilidades implementadas y hace más sencillo conocerlas y experimentar sin necesidad de leer el manual previamente para saber qué habilidades existen.
También se agregó un ejemplo para mostrar la forma tradicional de vincular habilidades usando código:
Añadimos un modo “oscuro” al editor y otros arreglos
Se modificó la apariencia general de la aplicación, investigué sobre cómo hacer interfaces de usuario basadas en temas usando css y tomé algunas ideas y consejos de http://topcoat.io/ para mejorar el aspecto visual de la aplicación por completo.
Aún hay cosas para corregir, como la de mejorar el aspecto de los iconos dependiendo del tema de colores y algunas cosas más. Pero en general creemos que el cambio es para mejor.
Ah, y por recomendación de @kone9 ver dejamos el modo “oscuro” seleccionado como principal al momento de abrir el editor:
Incluso mejoramos un poquito algunos aspectos generales de la interfaz, como los consejos que aparecen sobre estos elementos de la interfaz:
Creando entorno de pruebas
Cuando comencé a implementar Pilas 2 tenía claro que quería tener una forma de automatizar el lanzamiento de versiones nuevas y simplificar la publicación de pruebas. Este es un avance muy grande respecto de Pilas 1, donde cada versión requería hacer un montón de pasos manuales para generar binarios y ver que todo funcione bien (o darse cuenta de que no funcionaba bien).
En Pilas 2 tenemos una batería de tests super completa, cada vez que hago un tag sobre github se ejecuta un proceso en circle.ci que corre todos los tests y publica versiones automáticamente para todas las plataformas.
Más información acá:
- http://manual-pilas-engine.surge.sh/entorno.html#automatización-e-integración-contínua
- https://www.youtube.com/watch?v=ASKYT7OoLos
Ahora bien, en este sprint se le dió “una vuelta de tuerca” más a esa automatización:
A partir de este momento, cada vez que hacemos un commit, por más sencillo que sea, se realiza una compilación de todo el código automáticamente en este dominio de pruebas:
Ese dominio va a tener lo “último” siempre, para quienes quieran probar la versión más actualizada tal y como se ve en las computadoras de los desarrolladores. Incluso esta versión tiene un enlace para ver los commits del repositorio y comparar qué cambios están en pleno curso de implementación:
Obviamente, esto no cambia el modelo de lanzamientos que teníamos hasta ahora. Quienes deseen esperar la publicación de nuevas versiones no van a tener necesidad de ingresar a ese dominio de pruebas.
Simplificando el acceso a los actores
Dediqué un poco de tiempo a mejorar el intérprete, en donde hacemos pruebas y exploramos lo que pueden hacer los actores en tiempo de ejecución.
Y cómo este intérprete es bastante útil cuando estamos dando un taller o charla, me pareció buena idea crear una variable llamada “actores” para poder acceder a las referencias de los actores en la escena con mayor facilidad.
Por ejemplo, con el código inicial de una escena que tiene 3 actores, si escribimos en el intérprete “actores.” van a aparecer los actores listados para comenzar a enviarles “ordenes”:
Haciendo que pilas se pueda usar como biblioteca
Se modificó el motor para que pilas se pueda usar de forma externa, desde un archivo .html tradicional sin necesidad de utilizar el editor.
Este cambio en sí no parece muy importante, pero nos dará algunas ventajas a futuro. Por ejemplo, con este campo podríamos imaginar en alguna forma de exportar el juego para jugarlo directamente sin necesitar el editor. Incluso, permitiría que pilas-engine 2 se pueda usar como biblioteca de soporte para otras aplicaciones (como los desafíos de pilas-bloques sin necesitar otras herramientas adicionales)
Les dejo un ejemplo de cómo se puede utilizar en: https://app.pilas-engine.com.ar/manual/pilas_como_biblioteca.html
O bien este ejemplo: https://app.pilas-engine.com.ar/ejemplo-minimo.html
Permitiendo cambiar la gravedad de la escena
Se agregaron controles para modificar la aceleración gravitatoria de la escena. Tanto desde el inspector de propiedades de la escena como desde el código:
También se añadieron dos ejemplos para mostrar cómo interactúa la gravedad de la escena si se cambian estos valores:
Planificadas para el próximo sprint
Para el siguiente sprint tengo algunas ideas en mente, pero me gustaría dar espacio a implementar ideas que me proponga la comunidad también!!
Entre las ideas que tengo previstas implementar están estas:
- Crear un tipo de actor que permita crear botones.
- Mejorar la funcionalidad “decir” del actor usando 9-slices.
- Hacer configurable el tamaño del area de juego y la calidad, actualmente está en baja calidad que es más rápido.
- Añadir funciones para cambiar de escena, reiniciar y algunos ejemplos para mostrarlo.
- Añadir más habilidades.
- Crear ejemplos de audio.
- Agregar más accesos a propiedades físicas, como fricción y escala de gravedad.
Y si puedo ponerme a investigar, me gustaría sumar alguna tarea como hacer pruebas sobre mobile para visualizar los juegos creados en celulares o tablets.
Por cierto, si quieren seguir el día a día del proyecto pueden mirar las tareas en curso en estos links:
- https://trello.com/c/poRIxFH6/71-agregar-una-forma-de-pasar-de-una-escena-a-otra-usando-el-nombre
- https://github.com/pilas-engine/pilas-engine
¡Saludos!