Les jeux Construct 2 fonctionnent hors-ligne. Dés lors que le jeu a été téléchargé une fois en ligne, l'utilisateur peut encore jouer au jeu une fois hors-ligne. C'est super pour à la fois les applications web iOS et hébergées sur le Chrome Web Store, depuis que vous n'avez plus besoin dêtre en ligne pour jouer ! Ce tutoriel décris comment le support hors-ligne marche et comment vous pouvez ajouter des fonctions comme la mise à jour auto.
Les fichiers cache de l'appli
Après avoir exporté le projet, vous devriez avoir une notice appelée offline.appcache dans le dossier exporté. Cela active le support hors-ligne. C'est en gros une liste des fichiers que le jeu utilise, donc le navigateur peux tous les sauvegarder sur le disque dur.
Il est important de noter que quand vous uploadez le jeu, certains serveurs ne sont pas configurer pour supporter les ".appcache" correctement. Votre serveur doit être configurer pour supporter les fichiers .appcache avec le type MIME text/cache-manifest. C'est important d'avoir les droits sur les types MIME sinon, le jeu ne fonctionnera pas hors-ligne et vous gaspillerez de la bande passante ! Ceci est décrit plus en détail avec les autres types MIME que vous devriez avoir à configurer dans l'entrée manuelle sur les types MIME des serveurs.
Si tout est bien configuré, le navigateur va sauvegarder le jeu entier après l'avoir chargé la première fois. Après ça, si vous chargez le jeu à nouveau, ça charge du disque. Rien n'est téléchargé ! En général, cela se voit car le jeu charge instantanément. Cela signifier que même si vous êtes hors-ligne, vous pouvez toujours charger le jeu et jouer. Vos fichiers de projet importés sont aussi mis en cache pour l'utilisation hors-ligne.
Note: si vous renommez le fichier index.html - même si vous avez juste changé l'extension, ex: index.php ou index.asp - soyez sûr de changer aussi la ligne avec index.html dans offline.appcache. Les navigateurs sont très méticuleux. Si offline.appcache dit index.html, le navigateur ne pourra pas le trouver car vous l'avez renommé, et ignorera le fichier offline.appcache en entier ! Cela empêchera votre jeu de fonctionner hors-ligne, donc rappelez-vous juste de le mettre à jour si vous renommez index.html. Vous pouvez ouvrir offline.appcache dans Bloc Note ou autre éditeur de texte.
Mettre à jour votre jeu
Vous devriez vous demander : si le jeu est toujours hors-ligne, comment faire pour le mettre à jour ?
Si vous êtes en ligne et que vous chargez le jeu, le navigateur charge directement le jeu sur le disque comme auparavant. Cependant, comme le jeu tourne, il vérifie les mises à jour en arrière-plan. Si vous avez uploadé une nouvelle version, le navigateur la télécharge et la sauvegarde sur le disque. Alors, la prochaine fois que vous chargerez le jeu (ceci inclue rafraîchir la page), le navigateur charge la nouvelle version. Jusque là, l'utilisateur continue de jouer à l'ancienne version.
L'objet navigateur a deux conditions pour détecter quand ça arrive : Is downloading update et On update ready. Is downloading update est vrai si le navigateur télécharge la nouvelle version en arrière-plan. L'expression système loadingprogress est aussi mis entre et , ex: 0.5 quand à moitié complété. On update ready se déclenche quand la mise à jour est terminée, et que la nouvelle version est prête à être téléchargée. Si cela se déclenche sur le menu titre du jeu, vous devriez vouloir demander à l'utilisateir de rafraîchir la page (en utilisant l'action "reload" du Browser) donc il jouera à la dernière et meilleur version. Cependant, vous ne voulez probablement pas le stopper en milieu de jeu !
Cela vous aide à créer facilement une simple mise à jour auto pour votre jeu. Vous pouriez montrer un objet disant "Téléchargement de la mise à jour..." pour notifier l'utilisateur qu'une mise à jour est disponible. Quand On update ready se déclenche, vous devirez vouloir afficher un message disant que la mise à jour est prête, et afficher un bouton qui rafraîchit la page quand cliqué.
Rappelez-vous de ré-uploader le fichier offline.appcache
Si vous mettez à jour seulement un fichier de votre jeu, vous devez aussi ré-uploader le fichier offline.appcache exporté - à chaque fois ! Sinon, le navigateur va admettre que rien n'a changé et ne téléchargera pas la mise à jour. (Le fichier offline.appcache doit avoir changé pour que le navigateur vérifie les mises à jour, et Construct 2 ajoute un timestamp en haut du fichier offline.appcache pour faire en sorte qu'il change toujours.)
Autres fonctions utiles
L'objet Browser à trois autres conditions utiles : is online, on went online et on went offline. Avec celles-ci, vous pouvez savoir si l'utilisateur est en ligne, et détecter si il va en ligne ou hors-ligne pendant que le jeu tourne. Cela peut être utile pour activer ou désactiver les fonctions en ligne comme l'objet AJAX.
Conclusion
Soyez sûr que le fichier offline.appcache fonctionne sur votre serveur. Ensuite, ajoutez l'objet Browser à votre jeu et utilisez les events de vérification des mises à jour. Maintenant, vous avez un jeu qui fonctionne hors-ligne et qui se met à jour automatiquement dés que l'utilisateur est en ligne. C'est très simple à configurer, mais très pratique ! Soyez sûr d'ajouter ce support à vos jeux !
Pour plus d'information, vous devriez lire utiliser un layout de chargement pour faire un écran de chargement personnalisé. (en anglais)
Traduit de l'anglais par paulolol.