Offline Games in Construct 2

1

Stats

3,071 visits, 3,525 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 31 Jan, 2015. Last updated 17 Dec, 2022

Construct 2 Games funktionieren offline. So lange das Game einmal online heruntergeladen wurde, kann der Spieler das Game nochmals spielen nachdem er offline gegangen ist. Das ist grossartig für beides iOS web apps und Chrome Web Store gehostete Apps, da du nicht online sein musst um zu spielen! Dieses Tutorial erklärt wie der offline Support funktioniert und wie du es erweitern kannst mit Features wie zum Beispiel automatisches updaten.

Die App Cache Datei

Nach dem Exportieren deines Projektes solltest du eine Datei im Export Ordner bemerken und zwar mit dem Namen offline.appcache. Diese Datei ermöglicht den offline Support. Kurz gefasst ist es eine Liste mit jeder einzelnen Datei die das Game verwendet, damit der Browser diese alle auf der Festplatte speichern kann.

Es ist wichtig zu Beachten, dass wenn du ein Projekt hoch lädst, einige Server nicht konfiguriert sind .appcache Dateien zu unterstützen. Dein Server muss so konfiguriert sein dass er .appcache Dateien mit dem MIME Typ text/cache-manifest unterstützt. Es ist ebenso wichtig dass der richtige MIME type eingestellt ist, ansonsten wird der offline Support womöglich nicht richtig funktionieren wobei du Bandbreite verschwendest! In der Anleitung von Construct 2 ist dies alles noch genauer beschrieben, inklusive anderen MIME Typen die du möglicherweise benötigst und zwar in server MIME types.

Falls alles richtig konfiguriert ist, wird der Browser dein komplettes Game auf der Festplatte speichern nachdem es das erste mal geladen wurde. Danach, falls du das Game nochmal lädst, wird es die benötigten Dateien von der Festplatte laden. Überhaupt nichts wird heruntergeladen! Normalerweise heisst das ebenso dass das Game sofort lädt. Dies bedeutet, selbst wenn du nicht mehr mit dem Internet verbunden bist kannst du das Game immer noch laden und spielen. Deine importierten project files sind auch für den offline Gebrauch gecached.

Bemerke: Falls du deine index.html Datei umbenennst - selbst wenn es sich nur um die Erweiterung handelt, z.B. index.php oder index.asp - stelle sicher dass du auch die Zeile mit index.html in der offline.appcache Datei anpasst. Browser sind sehr pingelig. Falls offline.appcache sagt index.html, und der Browser kann es nicht finden weil du es umbenennt hast, wird es die ganze offline.appcache Datei ignorieren! Dies verhindert dass dein Spiel weiterhin offline funktioniert, also beachte stets alle Einträge zu updaten falls du index.html umbenennst. Du kannst offline.appcache in Notepad oder einem anderen Text Editor öffnen.

Dein Game updaten

Du wunderst dich vielleicht: Wenn das Game ständig von der Festplatte geladen wird, wie update ich es dann?

Falls du online bist und du lädst das Spiel, wird der Browser es sofort von der Festplatte laden wie zuvor. Jedoch während das Game läuft, überprüft es im Hintergrund ob ein Update zur Verfügung steht. Hast du also eine neue Version hochgeladen, wird der Browser diese herunterladen und auf deiner Festplatte speichern. Falls du also das nächste mal das Spiel startest (Refresh der Website inbegriffen), wird der Browser die neue Version herunterladen. Bis dahin wird der Benutzer ständig noch die alte Version spielen.

Das Browser Objekt hat zwei Konditionen um dieses Geschehen zu erkennen: Is downloading update und On update ready. Is downloading update ist aktiv falls der Browser im Hintergrund eine neue Version am herunterladen ist. Der System Ausdruck loadingprogress ist auf den Update Fortschritt gesetzt, und zwar von 0 bis 1, z.B. 0.5 für halb Komplett. On update ready löst aus falls der Download beendet ist und die neue Version bereit ist geladen zu werden. Falls dies bereits auf dem Titel Bildschirm des Games ausgelöst wird, möchtest du vielleicht den Spieler auffordern die Seite neu zu laden (mit der Benutzung der Browser aktion 'reload') damit die Spieler die neueste und beste Version spielen. Jedoch willst du wahrscheinlich deine Spieler nicht mitten im Spiel unterbrechen!

Dies ermöglicht es dir einfach einen simplen Auto-Updater für dein Spiel zu erstellen. Du könntest ein Text Objekt anzeigen welches sagt "Neues Update wird heruntergeladen...", um den Spieler zu benachrichtigen dass ein Update heruntergeladen wird. Falls On update ready ausgelöst wird, möchtest du vielleicht eine Nachricht anzeigen lassen welche informiert dass ein Update bereit steht, und möglicherweise ein Knopf welcher die Seite neu lädt falls man diesen anklickt.

Merke die Datei offline.appcache neu hochzuladen

Falls du aktualisierst, selbst wenn es sich nur um eine Datei handelt, musst du auch die exportierte offline.appcache Datei neu hochladen - jedes mal! Ansonsten nimmt der Browser an dass nichts geändert wurde und kümmert sich nicht das Update herunter zu laden. (Die offline.appcache Datei muss sich verändert haben damit der Browser überprüft ob ein Update vorhanden ist. Construct 2 fügt einen Zeitstempel am Kopf der offline.appcache Datei an, um sicher zu stellen dass es immer ändert.)

Andere nützliche Features

Das Browser Objekt hat drei andere nützliche Konditionen: is online, on went online und on went offline. Mit diesen kannst du sagen ob die Benutzer momentan online sind, erkennen ob sie online kommen oder gerade offline gegangen sind während das Spiel läuft. Dies mag vielleicht nützlich sein um jegliche online Features wie z.B. AJAX Objekt ein- oder aus- zu schalten.

Schlussfolgerung

Stelle sicher deine offline.appcache Datei funktioniert auf deinem Server. Danach füge das Browser Objekt zu deinem Game hinzu und benutze die Update Check Events. Jetzt hast du ein Game welches Offline funktioniert und Automatisch Updatet wann auch immer ein Spieler online ist. Dies ist sehr simpel zu konfigurieren, jedoch sehr nützlich! Stelle sicher diese Features in dein Game einzubauen!

Falls du in Betracht ziehst noch weiter zu lesen - Lade Layouts benutzen um einen eigenen Lade Bildschirm zu erstellen.

  • 0 Comments

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