Juegos Offline en Construct 2

2

Tagged

Stats

5,362 visits, 5,928 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 25 Oct, 2013. Last updated 25 Feb, 2019

Los juegos de Construct 2 funcionan sin red (offline). Siempre y cuando el juego haya sido descargado mientras estábamos conectados, el usuario puede jugar una y otra vez antes de volver a conectarse. ¡Eso es magnífico para aplicaciones "hospedadas" tanto de las iOS WebApps como de la Chrome Web Store, pues no necesitas conectarte para jugar! Este tutorial describe cómo funciona el soporte offline y cómo puedes mejorarlo con funciones como auto-actualización.

El archivo App Cache

Tras exportar tu proyecto, deberías observar un archivo llamado offline.appcache en la carpeta de exportación. Esto permite el soporte sin conexión. Es más o menos una lista de todo lo que usa el programa, para que el navegador pueda guardarlo en disco.

Es importante tener en cuenta que cuando subes tu proyecto, algunos servidores no están configurados para servir correctamente los archivos .appcache. Tu servidor debe estar configurado para servir los archivos .appcache con los tipos MIME (MIME type) text/cache-manifest. ¡Es importante tener el tipo MIME correcto, o no funcionará el soporte offline y estarás desperdiciando ancho de banda! Algunos servidores asumen que es un archivo de texto y usan el tipo MIME text/plain, pero eso tampoco funcionará! El tipo MIME debe ser text/cache-manifest. Si no estás seguro de cómo configurar esto, pregúntale a tu proveedor de hosting o a quien sea que administre tu servidor.

Si todo está configurado correctamente, el navegador grabará el juego entero a disco tras cargarlo la primera vez. Tras eso, si cargas el juego de nuevo, cargará desde el disco. No se descarga nada en absoluto. Normalmente, eso significa que además el juego carga instantáneamente. Eso significa que, incluso si estás sin conexión, puedes cargar el juego y jugar. Los archivos de proyecto importados también se guardan en la caché para usarlos sin conexión.

Nota: si cambias el nombre del archivo index.html (incluso para cambiarle la extensión a, por ejemplo, index.php o index.asp), asegúrate de cambiar también la línea con el index.html en offline.appcache. Los navegadores son muy estrictos. Si en offline.appcache dice "index.html" y el navegador no puede encontrarlo porque lo renombraste, ¡ignorará todo el archivo offline.appcache! Eso hará que tu juego deje de funcionar offline, así que recuerda actualizarlo si cambias el nombre de index.html. Puedes abrir offline.appcache en el Bloc de Notas o en cualquier otro editor de texto.

Actualizando tu juego

Podrías preguntarte: Si el juego siempre carga de disco, ¿cómo actualizo el juego?

Si estás conectado y cargas el juego, el navegador carga instantáneamente desde disco como antes. Sin embargo, mientras se ejecuta el juego, busca actualizaciones en segundo plano. Si has actualizado una nueva versión, el navegador la descarga y la graba al disco. La siguiente vez que cargues el juego (incluyendo si refrescas la página), el navegador cargará la versión nueva. Hasta entonces, el usuario sigue jugando a la versión antigua.

El objeto Browser (Navegador) tiene dos condiciones para detectar si esto está sucediendo: Is downloading update ("Está descargando actualizaciones") y On update ready ("Actualización lista"). Is downloading update es verdadero si el navegador está descargando una nueva versión en segundo plano. La expresión de sistema loadingprogress ("progreso de descarga") contiene el valor del proceso de actualización de 0 a 1 (ejemplo: 0,5 si está a la mitad). On update ready se dispara cuando la descarga ha terminado, y la nueva versión está lista para cargarse. Si esto salta en la pantalla de título, puede que desees pedir al usuario que vuelva a cargar la página (usando la acción 'reload', 'refrescsar', del navegador) de modo que jueguen a la última y mejor versión. Sin embargo, es probable que no quieras interrumpirle mientras está en mitad de la partida.

Eso te permite hacer fácilmente un auto-actualizador simple para tu juego. Podrías mostrar un objeto de texto diciendo "Descargando una actualización..." para notificar al usuario de que se está descargando una actualización. Cuando se dispare On update ready, puede que desees mostrar un mensaje diciendo que hay una actualización lista y mostrar un botón que recargue la página al ser pulsado.

Recuerda volver a subir el archivo offline.appcache

Si estás actualizando aunque solo sea un archivo de tu juego, debes volver a subir el archivo offline.appcache exportad -- cada vez! En caso contrario, el navegador asumirá que no ha cambiado nada y no se molestará en descargar una actualización (Hay que cambiar el archivo offline.appcache para que el navegador busque una actualización, y Construct2 añade una marca de tiempo al principio del archivo offline.appcache para asegurarse de que siempre cambie.)

Otras funciones útiles

El objeto Browser tiene otras tres condiciones útiles. is online, on went online y on went offline ("Está conectado", "Al conectarse" y "Al desconectarse"). Con estas, puedes comprobar si el usuario está actualmente conectado y detectar si se conecta y desconecta durante el desarrollo del juego. Eso podría ser útil para activar o desactivar funciones online como el objeto AJAX.

Conclusión

Asegúrate de que tu archivo offline.appcache funciona en tu servidor. Después, coloca el objeto Browser en el juego y usa los eventos de comprobación de actualizaciones. Ahora tienes un juego que funciona sin conexión y se auto-actualiza cada vez que el usuario se conecta. ¡Esto es muy simple de preparar, pero muy útil! Asegúrate de añadir soporte a tus juegos.

Para saber más: Puede que desees usar layouts de carga para hacer una pantalla de carga personalizada.

  • 0 Comments

Want to leave a comment? Login or Register an account!