Resumen del sprint #16

¡Saludos!, espero sigan resguardados en sus casas y estén con ganas de ver las novedades que implementé en Pilas Engine 2.

Recuerden que pueden descargar pilas desde la web, usar la versión online o acceder al código en github:

Estas son las novedades:

Creando el actor barra de energía

Hacer unos días @Jorge armó una actor llamado barra de energía y le propuse agregarlo al motor. Hice un par de modificaciones a su código (no muchas) y finalmente lo agregué dentro del motor como uno de los actores incluidos para utilizar:

PilasEngine___2020-05-10_14-17-37

Y también aproveché para hacer un mini ejemplo que muestra cómo se puede utilizar:

v-65

El ejemplo es muy simple, cuando el usuario hacer click en el botón se produce un disparo, y si el disparo le pega al alienígena la barra de energía se reduce.

Soporte para usar pantalla completa

Incorporé la posibilidad de ejecutar juegos en pantalla completa, tanto en los navegadores como en electron.

Incluso armé un actor para que sea más sencillo incorporar esto en los juegos:

PilasEngine___2020-05-09_22-01-53

Esta posibilidad de ejecutar juegos en pantalla completa también se puede utilizar directamente desde el código, ya que incorporé estas 3 funciones:

  • this.pilas.solicitar_modo_pantalla_completa();
  • this.pilas.solicitar_modo_ventana();
  • this.pilas.alternar_modo_pantalla_completa();

Ah, y agregué un ejemplo también sobre esta funcionalidad.

Incorporando código de proyecto

Hasta ahora pilas daba la posibilidad de escribir código en escenas y actores. Pero a partir de esta versión incorporé la posibilidad de agregar código al mismo proyecto:

Agregar código en el proyecto abre muchas posibilidades, porque puede servir como un “nexo” entre escenas, el proyecto puede almacenar variables que sobrevivan al cambio de escenas o cualquier cosa que hagan los actores.

El código del proyecto es de alguna manera global, se construye cuando el juego inicia y se descarta cuando se cierra la ventana o se pulsa “detener” en el editor.

Les dejo la documentación que armé sobre esta nueva característica, donde explico la motivación de tener código a nivel proyecto y doy un ejemplo paso a paso. Manual de Pilas: Código de proyecto

Agregando opción para maximizar paneles

Añadí una mejora para que se pueda maximizar por completo el editor de código o el area de juego, creo que @hokuto lo había sugerido.

image

Además, hice que los paneles además de maximizarse nos permitan trabajar un poco más rápido:

Si pulsamos el botón para maximizar el código, además de expandirse todo el editor vamos a ver un botón que dice “guardar y ejecutar”:

Si pulsamos ese botón, o el atajo de teclado “CTRL+S”, el editor va a actualizar el código y enviarnos directamente a la vista del juego:

y ahí mismo, si queremos, podemos pulsar la tecla “ESC” y regresar rápidamente al editor de código nuevamente.

Es difícil explicarlo en palabras, pero si hacen la prueba van a notar que se vuelve bastante práctico.

Migrando el manual a pandoc

El manual de pilas se escribe en archivos de texto simple llamados “markdown”, lo facilita hacer cambios y colaborar. La documentación pasa a estar dentro del repositorio y todas las herramientas que nos gustan están disponibles:

Además, usar archivos markdown también permite usar un montón de herramientas diferentes para convertir la documentación a PDF, HTML, ebooks etc…

El problema que teníamos era que una de estas herramientas de conversión, llamada gitbook, era muy compleja para incluir dentro del editor, ya que incluye automáticamente varios archivos javascript y una navegación personalizada que no necesitábamos.

Así que opté por cambiar el sistema de conversión de documentación a pandoc; una herramienta que existe hace mucho tiempo y que pude re-descubrir hace unas semanas. Y lo mejor de pandoc para pilas es que nos permite una personalización total, lo que la hace ideal para incluir el manual completo y los tutoriales que hagamos dentro del editor.

Curiosamente lo que más costó de pasar de gitbook a pandoc fue configurar el servidor de integración continua para que genere automáticamente las versiones para descargar en ebook y pdf del manual. Pero luego de unas horas de pruebas ¡funcionó! :

Correcciones en el exportador de proyectos

@Pan nos comentó en la semana que había encontrado varios problemas con el exportador de proyectos, las imágenes se veían en baja calidad y algunos cambios de escenas tenían problemas.

Así que me puse a revisar qué podía ocasionar el problema y noté que teníamos un bug en la forma en la que pilas tomaba los parámetros personalizados desde el exportador. Pilas corre en un modo particular cuando se usa afuera del editor, como menciona el manual, y solo bajo este modo se daban problemas lo que me hizo bastante difícil encontrar la solución.

Creo que ahora funciona bien, me vino bien dedicarme a resolver este problema porque también pude limpiar y mejorar varias partes del código que veníamos usando poco.

Además actualicé http-server que daba un problema raro de redirección http en windows 10 y también documenté de qué manera se puede hacer que el juego inicie en pantalla completa.

Otros arreglos

Hice muchos cambios en varias partes de la interfaz, comencé simplificando un poco la sección de imágenes:

Quité los recuadros y armé componentes para que más adelante podemos agregar acciones extra, como copiar el acceso a imágenes para llevarlas directamente al código.

Modifiqué el actor pizarra para que permitiera transparencias:

image

Coloqué una opción adicional en el proyecto para indicarle al exportador qué escena tiene que iniciar el juego:

image

Estas últimas 2 mejoras las hice siguiendo las solicitudes de @pan.

También mejoré la configuración para que estén divididas las opciones del editor de código y el area de juego:

y como la apariencia de estos iconos me gustó le dediqué unas horas a mejorar la apariencia del panel inferior:

Ah, y casi me olvidaba… hasta los ejemplos tienen algún que otro bug de vez en cuando. Esta vez le tocó al ejemplo “sokoban”: me di cuenta que si empujabas una caja sobre otra se “apilaban”, cosa que no se debería permitir desde la mecánica del juego. Así que corregí ese problema y ahora el personaje lo reconoce correctamente:

PilasEngine___2020-05-09_00-38-25

Tareas para el próximo sprint

Al final no pude implementar mucho de lo que tenía en los planes del sprint anterior, así que en el próximo sprint voy a retomar ese plan inicial: voy a intentar implementar el cargador de sonidos, construir el ejemplo de juego tipo lucha y estar atento a ideas y correcciones que surjan en el foro.

¡Abrazo grande!

1 me gusta

Algunas sugerencias.

-Añadir un modo de pausar la aplicacion
-Añadir una funcion para unir objetos,te pongo un video para que quede mas claro


-Añadir la posibilidad de crear mapas con tiled,te pongo video.

Mas minijuegos,te paso algunos videos para incorporar ideas.


Estuve probando la version oflline y el manual no funciona.

Hola, queria notificar algunas cosas y dar unas sugerencias.

Para abrir un proyecto lo que hago es abrir pilas engine y luego abrir el editor, y este ya te viene con algunos objetos de muestra, entonces para abrir mi proyecto le doy al boton de abrir y me pregunta si quiero guardar el proyecto que viene por defecto, y es algo tedioso siempre que entro a trabajar en el juego tener que hacer ese proceso de no guardar el proyecto por defecto.

Otro problema es que cuando abro un proyecto, no me deja editar nada, con nada me refiero a realmente nada, ni el codigo o parametros de objetos, la primera vez que me paso estuve muy largo rato intentando solucionarlo, y pude lograrlo, fue guardando el trabajo, y lo veo sin sentido ya que para editar un proyecto que recien abro tengo que guardarlo primero ¿?, aparte para guardar un proyecto tengo que reemplazar el ya existente, no se podria hacer que se guarde autimaticamente como es comunmente? tambien se podria añadir Ctrl + S, para guardar, y F5 para ejecutar.

Nose si es dificil o si es posible acaso, pero me gustaria que al abrir el archivo “.pilas” se abra directamente en el editor, seria mas dinamico.

Y si se podria una funcion que haga que un objeto no se destruya al cambiar de escena, esta funcion la tienen muchos motores y me parece algo muy util.

Ohhh, es cierto, hace unas horas subí la versión 2.1.4 arreglando el manual, avisame si con esta versión se soluciona el problema.

1 me gusta

Gracias por las ideas @Pan, voy a tratar de ir implementando algunas de esas mejoras en las próximas versiones, tomo nota. Gracias!

1 me gusta

Ya funciona el manual,gracias. :+1:

Por cierto,se te ha olvidado poner la version compilada de pilas 2.1.4

Fijate por las dudas pulsar CTRL+F5 en el navegador, noté que a veces queda en el cache del navegador la página vieja. Probé varias cosas para invalidar el cache pero ninguna funcionó.

A mi no me pasa eso,siempre me sale la pagina nueva.
Aunque no se si te refieres que al pulsar ctrl + f5 sale la pagina vieja,porque a mi no me sale,si es otra cosa no se muy bien a que te refieres.

Hola @hokuto, si por ahí estamos hablando de cosas distintas…

yo me refería a la sección de descargas de la página, la última versión debería ser la 2.1.4:

pero noté que visitando la página desde otra computadora me muestra la 2.1.3, y solo después de pulsar ctrl+f5 se actualiza y me muestra la 2.1.4. Es raro, como que nginx, dokku o el navegador cada tanto se queda con una versión vieja de la página en cache y no encontré como resolverlo.

Por eso cuando me mencionaste lo de actualizar la versión me vino esa idea a la mente y te comenté. ¿vos a qué te referías exactamente con “poner la version compilada de pilas 2.1.4”?

Yo me descargo pilas desde este enlace.

Hay estan todas las versiones,si te fijas en la version 2.1.3 tenemos el book.epub,book.pdf,pilas-engine-compilado,linux ,windows etc…

Lo que yo hago es descargarme las versiones de windows de 32 y 64 bit y la version compilada que que la uso junto con el servidor local xampp.

Yo suelo hacer las primeras pruebas con las versiones portables de windows,pero para crear un proyecto completo suelo usar la version compilada junto con xampp porque me va mas rapido y es mas estable.

Espero haber aclarado las dudas,por cierto he visto que has subido una nueva version pero sigue sin tener la version compilada.

Por si no ha quedado claro.

ahhh, lo descargas desde github releases… ok.

Fijate que ahora hice una versión nueva, por las dudas probá que la versión compilada en .zip te funcione bien, cualquier cosa avisame.

Abrazo!