Ordnung in gmd-Dateien...

    • Ordnung in gmd-Dateien...

      ...herzustellen ist gar nicht so einfach.
      Wenn man nicht grad ein Minigame macht und eventuell noch per "merge game" andere seiner gmd-Files importiert, kann schon passieren... nein, WIRD BESTIMMT passieren, dass man viel Dreck in der Datei hat. Mit Dreck meine ich Daten (egal ob Sprites, Objects oder was auch immer), die zwar da sind, aber für den fehlerfreien Ablauf des Spiels kein bisschen benötigt werden.

      Na klar sollte man gerade DESWEGEN auf Übersicht achten. Ordner, Unterordner anlegen usw...

      Aber bei mir bleiben DENNOCH tote Sprites und vorallem Objects zurück. Diese alle durchzukämmen dauert lange - schliesslich darf man mit dem Löschen nicht voreilig sein...

      Nun habe ich eine Frage.
      Gibt es hierfür vielleicht ein Tool?
      Ein Aufräum-Tool?
      Ein Tool, dass alle Verknüpfungen ermittelt und zB. jedes einzelne Object in allen Rooms sucht (ist es in keinem Room vorhanden, wird es zum eigenhändigen Löschen angezeigt).

      Zwar rechne ich nicht damit, dass es so etwas gibt - aber es gibt schliesslich so vieles und fragen tut ja bekanntlich nicht weh.

      Schöne Grüsse.
    • Kenne ich persönlich jetzt nicht, überhaupt sind mir keine Programme bekannt die Game Maker Dateien öffnen können, da das Dateiformat nicht offen ist.
      "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
      - Joseph Weizenbaum
    • Stimmt! So was könnte ich auch gut gebrauchen!!!
      Aber zu gucken, ob alle Objekte in den Räumen sind, bringt nicht unbedingt was, da ja einige Objekte erst später kreirt werden!

      Aber an sowas hab ich auch schon gedacht, dass es etwas geben müsste, wo man auch einen Button klickt und der einem alle mögliche nutzlose Objekte, Sprites, Sounds anzeigt und dann ein Button, der alles löscht!!

      Ein Traum...
    • Original von kht
      Darum sollte man das Tool (das, das es nicht gibt) erst am Ende verwenden. Dann, wenn man fertig ist natürlich...

      Narürlich soll man das Tool erst verwenden, wenn es fertig ist!
      Was ich damit nur sagen wollte ist:
      Es gibt Objekte, die sind nicht in den Raum gestellt und werden das auch niemals, da vielleicht in einem anderen Objekt steht:

      GML-Quellcode

      1. instance_create(x,y,obj);


      Aber lass uns nicht über ein Tool unterhalten, was es vielleicht (leider) gar nicht gibt!
    • Kennt jemand das Programm "RessourceHacker", oder so ähnlich. damit kann man .exe Dateien (z.B. Game Maker.exe :D) laden, und sich Teile vom Quellcode angucken. Mit dem "vielleicht" entstandenen Wissen könnte ein pfiffiger Programmierer bestimmt ein solches Programm erstellen.

      Vorausgesetzt, das sowas LEGAL ist natürlich.

      Gruß
      eXus
    • *knacks*
      Dann verrate ich mal meien Ordnung:

      Alle Resourcen bis auf Scipts und Rooms haben bei mir besondere Kürzel, die angeben, um welchen Resourcentyp es sich handelt. Warum? Ganz einfach: Wenn ein Srpite den gleichen Namen hat wie ein Object hat, gibt es Probleme im GML Code, da der GM die Resourcen nicht klar zuordnen kann, denn die Namen repräsentieren nur eine Zuweisungsnummer.
      Da bieten sich zwei Möglichkeiten:
      Entweder die Underline Methode (z.B. object_ball") oder die Kamelhöcker-Methode (objBall), bei der statt Underlines immer Großbuchstaben verwendet werden. Ich persönlich bevorzuge letztere, und habe mir diese Ordnung zusammengelegt:

      Sprite:
      sprSpaceShip
      sprPlayerFWalk // Das wäre der weibliche (Feminin) Spieler, Animation Laufend

      Object:
      objBall

      Background:
      bgrForestTiles // Wenn es Tile sind, schreibe ich noch Tiles dahinter. Ursprünglich habe ich tilForest geschrieben, aber es sah einfach unchic aus.

      Sounds:
      sndSpaceColony
      sndLaserHitA

      Timelines:
      timDuck

      Fonts:
      fntArial


      Früher gab natürlich noch dat für Datafiles. Bei Scripten allerdings halte ich mich an das Game Maker Konzept. Entweder, ich denke mir eigene Komplexe aus (wie z.b. ambient_lava_calculate, ambient_lava_draw), oder ich Ergänze die vorhanden Funktionen (draw_donut).
      Bei Räumen benutze ich keien Kürzel, sondenr nur die Höckerschreibweise. Das ist an sich nicht konsequent, aber da ja sonst nichts übrig bleibt, ist das vertretbar. Abgesehen davon ist mir kein gescheites Kürzel eingefallen. Weder rom, win noch set (für setting) sind anständig.

      Jetzt aber zur sonstigen Ordnung:
      Merge Game, wie von kht angesprochen, ist nichts, was man sich zur Gewohnheit machen sollte. Es tr ten schnell Resourcenkonflikte auf, getilte Rooms lassen sich nicht anständig mergen, da die Resourceaddressen sich nicht ändern lassen, etcetera. Deshalb ist mein Tipp, viele Unterordner zu erstellen und alle sschön säuberlich zu ordnen.
      Sollte es darübe rhinaus gehen, sollte man zumindest sounds und musik extern abspeichern un aktiv reinladen. Das macht die Größe kleiner, wenn man die Datei oft tauschen muss, und tut dem Spiel auch erstmal nicht weiter weh, denn am Ende kann man sie doch noch reinpacken.
      Das gleiche gilt für Grafiken, wobei hier viel mehr Einstellungen zu beachten sind.
      Unterm Strich sollte man seine Objekte einfach anständig bennen, so dass man doppelte schnell erkennt. Dabei helfen auch die internen Funktionen (wie "Check Resource Names" im Menü).

      Tote Sprites lassen sich z.B, so finden:

      Man hat ein Objekt namens, nehmen wir mal LIz aus SR, objLiz.
      objLiz wird vllt. dem Parent objNPC untergeordnet, solange sie Standard-NPC Eigenschaften hat. Dennoch hat sie verschiedene Sprites:
      sprLizIdle // Der normale Steh Sprite mit z.B. einer Blinzelanimation
      sprLizCombat // Der Sprite mit gezogener Waffe, wenn sie sich als NPC selbst verteidigt.

      Wegen der klaren Namensgebung (beide fangen mit sprLiz an), sind sie eindeutig dem Objekt objLiz zuzordnen. Nun muss man, wenn man vorher anständig gecoded hat, nur dieses Objekt durchgehen, um zu gucken, welche Sprites alle benutzt werden. Ist Das Objekt tot, kann man auch alle Srpites mit diesem Kürzel löschen, denn sonst hätten wir die Sprites z.B. sprPCLiz gennant (player character) getauft.
      Da muss sich jeder etwas ausdenken.

      Es ist abe rkeine Lösung, einfach Namen wie "Explosion" und "Spieler" zu verteilen. Das rächt sich.
    • das gab es aber mal in einer Zeitschrift.
      Ürsprünglich ist das Programm dazu da, das man z.B. Grafiken aus einer .exe Datei ziehen kann. Aber wie gesagt, zeigt es auch den Quellcode an. Vorrausgesetzt es ist in C++ (glaub ich :D) geschrieben. Außerdem will ja keiner das Programm an sich verändern.
      Übrigens werden meines Wissens nach mithilfe solcher Programme die Tools erstellt, mit denen Hobbyentwickler ihre "Mods" für bekannte Spiele erstellen.
    • Soweit ich weiß verschlüsselt der GM bei jedem abspeichern der Exe den Code.
      So das man nicht so einfach an die Daten kommt.
      Das ist ein Grund warum das alleinige Patchen der Exe nicht groß an der Größe spart.
      Face in the wind, we're riding the storm
      We'll stay our course whatever will come
      ~~ Stay (Running) Wild ~~
    • Ich hab bei Mark jetzt mal angefragt ob er Dateispezifikationen herausgeben würde, mal schauen was er so sagt.

      Edit:

      There are no specs of gm6 file format and I do not give them out because I want to be able to change that whenever I want. Also, I do not really like people to make certain public tools for gm6 (like G-java) because in the end people will start complaining with me when things don't work correct. I hope you understand.

      Mark
      "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
      - Joseph Weizenbaum
    • Es gab einige Alphaversionen, die mehr dazu dienten zu zeigen ob überhaupt was vor sich geht als das man damit nur annähernd was anfangen kann. Die Diskussion über g-java wurde aber in der GMC verboten, sodass ich da auch keinen aktuellen Stand mehr habe.
      "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
      - Joseph Weizenbaum