Den ersten spielbaren Abschnitt laden
Gruppieren Sie Ressourcen nach dem frühesten Zeitpunkt, zu dem sie benötigt werden: Titel und erste Szene, nächstes Level und danach optionale Effekte oder kosmetische Inhalte. Laden und prüfen Sie die erste Gruppe, bevor Sie die Startaktion freigeben. Bei Bildern für einen plötzlichen Szenenwechsel kann HTMLImageElement.decode() nach dem Dekodieren aufgelöst werden. So kann der Bildwechsel stattfinden, ohne dass das nächste Zeichnen auf die Dekodierung warten muss.
Testen Sie mit eingeschränkter Verbindung: Verzögern Sie ein erforderliches Bild und lassen Sie ein anderes fehlschlagen. Die Fortschrittsanzeige darf erst weiterlaufen, wenn die benannte Arbeit abgeschlossen ist. Für das fehlgeschlagene Asset braucht es eine wiederherstellbare Meldung oder einen Ersatz. Die Startaktion darf keine spielbare Szene versprechen, solange eine erforderliche Abhängigkeit fehlt.
Halten Sie den Fortschritt ehrlich
Wenn die Aufgabenmenge bekannt ist, zeigen Sie abgeschlossene Aufgaben aus der Gesamtmenge an oder melden Sie eine Phase, z. B. die Vorbereitung des ersten Levels. Bytebasierte Prozentsätze sind nur dann aussagekräftig, wenn die relevanten Größen bekannt sind; Nach Abschluss der Übertragung können die Dekodierung, die Audioeinrichtung und die prozedurale Initialisierung einige Zeit in Anspruch nehmen.
Blockieren Sie nicht die gesamte Schnittstelle für Assets, die später eintreffen können. Verwenden Sie einen kostengünstigen Platzhalter für optionale Grafiken und ersetzen Sie ihn, wenn das dekodierte Bild fertig ist. Stellen Sie sicher, dass der Platzhalter bei der vorgesehenen Leinwandgröße lesbar bleibt und dass ein fehlgeschlagener optionaler Download den Player nicht im Ladezustand festhält.
Fragen zu Laden von Browsergame-Assets
Ist es eine gute Idee, jedes Asset vorab zu laden?
Normalerweise nicht standardmäßig. Laden Sie, was für den ersten spielbaren Moment benötigt wird, und planen Sie dann weitere Arbeiten, je nachdem, wann sie verwendet werden und wie viel Speicher sie benötigen.
Bedeutet ein Bildladeereignis, dass das Bild zum reibungslosen Zeichnen bereit ist?
Die Bilddaten können bereits übertragen sein, während die Dekodierung die Darstellung noch beeinträchtigt. MDN beschreibt decode() als Promise, das aufgelöst wird, sobald das Bild dekodiert und sicher hinzufügbar ist. Messen Sie, ob dieser Unterschied in Ihrer Szene eine Rolle spielt.
Weiterlesen
Etwas nicht mehr aktuell? Korrektur melden