Finde ich nicht, es handelt sich schließlich nicht um eine micro Optimierung sondern um grundlegende Dinge. Es geht mir nicht speziell um das zippen, sondern um das richtige planen von XML Formaten.
Ein Programm das so datenabhängig wie ein Game Maker ist, viele Baumstrukturen & Objekte, lebt von gut definierten Formaten.
Ich kann mir z.B. überhaupt nicht vorstellen warum man die gesamten Tiles einzeln speichern will. Sowas wie "Textures/high-grass/" bottom, top, left, right.
Es ist nicht nur umständlich zu importieren, sondern auch schwer zu bearbeiten. Was wenn ich das Gras umfärben möchte? Muss ich dann alle Dateien einzeln bearbeiten? Sowas löst man normalerweise mit Tilesets/Spritesheets.. was auch meist der Render Performance zugute kommt, da man auf kostbare Texturewechsel in Spritebatches oder ähnliches verzichten kann. Auch das indizieren und cachen fällt leichter.
Mir sind beim durchschauen noch einige Sachen ins Auge gefallen.Für sowas sind XML-Attribute nicht geeignet. Es handelt sich um ein Int-Array. Wieso also nicht:Zitat
Zitat
Der Prototype Tag ist plötlich auch ein Rectangle? Wieso nicht einen extra Tag einführen?Zitat
Ich wette man wird an anderer Stelle ebenfalls ein Rectangle als Bounding Box benötigen, jedoch ohne animationSpeed oder scriptName Attribut.Zitat
Unnötig lange Bezeichner..
Man sieht doch im Tag dass es sich um eine AnimationInfo handelt, das "animation" innerhalb der attribute ist also unnötig.Zitat
Solche doppelt und dreifach Bezeichner fallen beim lesen von code eher negativ auf. sprite.spritePosition.spriteX.. ihh.Zitat
x0y0 usw. Kann man auch als Matrix speichern.Zitat
Den Bezeichner prototype finde ich etwas fragwürdig. Es handelt sich um ein Tile, wieso also nicht <tile>. Hier könnte man auch einige Dinge anders machen um zukünftige Probleme zu vermeiden.Zitat
Als Beispiel. Etwas mehr OOP im Design. Der <collision type="solid"> Tag ist dann für alle möglichen Kollisionsdaten definiert und kann für andere Objekte wiederverwendet werden. So könnte ein Sprite ebenfalls den Tag verwenden. Es ist auch übersichtlicher wenn man die Daten weiter runterbricht.Zitat
Aber nun gut, muss man ja alles nicht so genau nehmen. Mach wie du lustig bist, sollte nur eine kleine Anregung sein![]()