Texture Page optimieren

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Texture Page optimieren

      Hallo Leute,

      der Aku_Ryou hat mich letztens auf eine Funktion gebracht, die ich im Gamemaker vorher noch nicht entdeckt hatte oder generell die Möglichkeit dessen nicht bedacht hatte. Und zwar die der Texture_Page. Nun möchte ich mit dieser Aufteilung meiner Grafiken direkt beginnen, bevor ich zuweit im Projekt fortgeschritten bin und möchte von euch nochmal hören ob die Aufteilung so Sinn macht oder ob man da noch mehr zu bedenken hat.

      Mein Game ist ein Pixelgrafik Run 'n' Gun und verbraucht generell nicht so wahnsinnig viel Platz für Texturen.

      Bisher habe ich eine Aufteilung in 3 Texturepage Gruppen geplant und auch schon mit begonnen:

      1. Intro/Menu/Highscore/Endscene
      2. Level: Background (für jedes Level eine extra Page)
      3. Level: Alles andere (für jedes Level eine extra Page)

      -Mein erster Level ist grob schon fertig was die Texturen angeht, es kommen noch 3 Bosse und hier und da ein wenig hinzu, was auch noch einiges an Platz verbrauchen wird.

      -Ich habe in GMS die Option der Texture Page auf die Größe von 8192x8192 eingestellt. Wobei bisher alle Texturen nichtmal diesen Platz verbrauchen. Diese Page war so um die 3MB groß. Nun habe ich aber schon eine Vorauswahl in die oberen 3 Kategorien gemacht und habe somit 3 Pages.

      1. Intro/Menu/Highscore/Endscene: 1024x512 0.05MB
      2. Level 1: Background 2048x4096 0.6MB
      3. Level 1: Alles andere 2048x2048 1.3MB

      Nun ist der Verbrauch mit insgesamt 2-3MB bisher ja nun wirklich ein Witz und es kommt ja nur darauf an das im Spiel diese T-Pages nicht oft oder möglichst garnicht gewechselt werden für eine gute Performance. Für mich kaum vorstellbar das aktuelle Rechner für sowas überhaupt noch eine Aufteilung nötig machen, aber vielleicht wisst ihr ja mehr.

      Was vielleicht oder ganz bestimmt noch Sinn machen würde, wäre sämtliche Grafiken vom Spieler auf eine extra Page zu machen, ansonsten müsste die Lev1 Page ja in allen anderen Levels geladen werden. Werde ich noch anpassen.

      Aber davon abgesehen, fällt euch noch was ein was zu beachten wäre, bevor ich damit loslege und später noch wieder Änderungen machen muss?


      lg Zhe
    • zhe73 schrieb:

      Bisher habe ich eine Aufteilung in 3 Texturepage Gruppen geplant und auch schon mit begonnen:

      1. Intro/Menu/Highscore/Endscene
      2. Level: Background (für jedes Level eine extra Page)
      3. Level: Alles andere (für jedes Level eine extra Page)

      Du machst für jedes Level eine eigene Texture Page? Oder meinst du, dass das automatisch geschieht? (Was eigentlich nicht sein kann esseidenn du verwendest genau so viele Sprites
      wie sie in deine Texture-Page-Abmessungen hineinpassen.)

      Übrigens: Wenn eine TP voll ist wird automatisch eine neue begonnen, quasi in der gleichen Texture Group.
      Also ist es wirklich nicht notwendig unzählige Texture-Pages zu erstellen und zu benennen.

      Am besten ist es, du achtest einfach darauf, dass durch dein Spiel hindurch möglichst wenige Texture Swaps vorkommen,
      beispielsweise indem du pro Spielumgebung eine eigene Texture Group einrichtest.
      Nachdem in einer Umgebung sowohl Sprites, Background, Tiles, etc. vorkommen können solltest du vorsichtig sein das auf deine erwähnte Art zu trennen.

      zhe73 schrieb:

      Was vielleicht oder ganz bestimmt noch Sinn machen würde, wäre sämtliche Grafiken vom Spieler auf eine extra Page zu machen, ansonsten müsste die Lev1 Page ja in allen anderen Levels geladen werden. Werde ich noch anpassen.

      Jup, genau. Die Level 1 Page würde sich ansonsten mitladen. In dem Fall musst du abwägen ob du genug Objekte zusammenbekommst damit sich eine extra TP für Spielerbezogenes rentiert.

      Du könntest beispielsweise also wie folgt kategorisieren:

      TP1: Wüstenumgebung, TP2: Schneeumgebung, TP3: Hauptmenü, TP4: Objekte die in allen Levels vorkommen, ...

      zhe73 schrieb:

      -Ich habe in GMS die Option der Texture Page auf die Größe von 8192x8192 eingestellt.

      - was dazu führt, dass ältere Rechner, mit Grafikkarten die diese Größe an Texture Pages nicht verarbeiten können außen vor gelassen werden. Nur, dass du das weißt.
      Ich kann dir allerdings nicht genau sagen wie alt "alt" in dem Fall ist. ^^

      Wirklich merklich wirken sich Texture Swaps auf einem halbwegs modernen Desktop Rechner aber ohnehin nicht aus.
      Da sollte man eher für ältere Geräte und mobile Betriebssysteme optimieren. Allein von daher würde ich das mit den 8192x8192 Pixeldimensionen lassen, und zumindest die 4096x4096 nehmen.
      Damit können wohl die allermeisten Geräte umgehen.

      Hoffe das beantwortet so im Grunde deine Fragen.
    • Das mit der Texturpagegröße von 8192x8192 und dem damit verbundenen Restriktionen hatte ich nicht bedacht, dass werde ich gleich mal wieder runterregeln auf 4096. Danke dir dafür.

      Bei meinen 5-6 Levels die es geben wird, hat jedes Level seine eigenen Gegner/Backgrounds/Tiles usw., bis auf der Spieler, der bleibt soweit immer gleich. Also wollte ich diese Level strikt voneinander trennen, damit jedes Level seine eigenen Texturepages hat. Ob nun alle Sprites für ein Level auf eine Texturepage passen kann ich so noch nicht sagen, aber das ist ja so wie du es auch beschrieben hast. Nur das ich eine weitere Trennung innerhalbt eines Levels machen wollte, also Background, Gegner usw... aber das macht ja keinen Sinn wenn die Texturepages so nicht gefüllt werden, da hast schon recht.

      Danke dir für den Rat RLP :)

      lg Zhe