-
mod-Datei verkleinern
Hey,
umfi und ich suchen derzeit nach Wegen unsere überdimensionierte mod-Datei von unbenutzten Dateien zu befreien ohne jede Datei einzeln per Hand zu überprüfen. Kennt ihr einen Weg bzw. ein Tool, das Datenmüll wie unbenutzte Texturen und so weiter entdeckt?
-
was modelle animationen und texturen angeht könntest du die rohdateien der ganzen sachen in eine gothic installation packen und die mod ohne mod datei starten.. so sollten nur noch benötige daten umgewandelt werden.
musst dazu aber auch alle waffen/rüstungen/ monster und co spawnen und alle items mal gedropt oder platziert haben.
Ist also nur semi sinnvoll
-
Danke für den Tipp. Wir werden es mal probieren, soviele Alternativen scheint es ja nicht zu geben.
-
Kleine Info: Tyra und ich haben uns das gestern angeschaut ich hab da ein kleines Tool gebastelt. Das wird bis zur Version 1.15 dann in Spine integriert.
Was es letztlich tut ist alle Dateien in der Mod (.mod entpackt in einen Ordner oder eben vor dem Einpacken) mit den Original-Dateien abgleichen und nur die übernehmen, die neu sind/geändert wurden. Kann gut was einsparen und man spart sich tatsächlich das manuelle Rumsuchen. Paar Sekunden warten und schon kann die Mod ein paar (100) MB kleiner sein
-
Zitat von Bonne6
Kleine Info: Tyra und ich haben uns das gestern angeschaut ich hab da ein kleines Tool gebastelt. Das wird bis zur Version 1.15 dann in Spine integriert.
Was es letztlich tut ist alle Dateien in der Mod (.mod entpackt in einen Ordner oder eben vor dem Einpacken) mit den Original-Dateien abgleichen und nur die übernehmen, die neu sind/geändert wurden. Kann gut was einsparen und man spart sich tatsächlich das manuelle Rumsuchen. Paar Sekunden warten und schon kann die Mod ein paar (100) MB kleiner sein
Das ist doch eine super Sache!
Theoretisch könnte man ja sogar noch alle Skripte, .zen, und Meshes durchsuchen, um herauszufinden, welche Meshes und Texturen überhaupt verwendet werden. Lohnt sich aber vielleicht nicht.
-
Zitat von Milky-Way
Das ist doch eine super Sache!
Theoretisch könnte man ja sogar noch alle Skripte, .zen, und Meshes durchsuchen, um herauszufinden, welche Meshes und Texturen überhaupt verwendet werden. Lohnt sich aber vielleicht nicht.
Das hatte ich auch mal vor, aber das ist dann vermutlich etwas komplexer (Modelle und Texturen könnten ja dynamisch zur Laufzeit eingefügt werden, dh man müsste den Code parsen nach den Strings, wenn jetzt aber der String auch noch dynamisch zusammen gebaut wird statt eine Konstante zu nutzen, hat man schon verloren). Werde es aber zumindest noch um ungültige Dateiformate (Rohdaten!) und falsche Ordner ergänzen.
-
Zitat von Bonne6
Kleine Info: Tyra und ich haben uns das gestern angeschaut ich hab da ein kleines Tool gebastelt. Das wird bis zur Version 1.15 dann in Spine integriert.
Was es letztlich tut ist alle Dateien in der Mod (.mod entpackt in einen Ordner oder eben vor dem Einpacken) mit den Original-Dateien abgleichen und nur die übernehmen, die neu sind/geändert wurden. Kann gut was einsparen und man spart sich tatsächlich das manuelle Rumsuchen. Paar Sekunden warten und schon kann die Mod ein paar (100) MB kleiner sein
Das klingt klasse. Nach welchen Kriterien werden die geänderten Dateien von den Original-Daten unterschieden?
-
Na ich nehme an es wird geprüft, ob sich die Dateien unterscheiden (anhand des Dateinamens/-pfads)? Wenn das nicht ist was du meinst, musst du deine Frage vielleicht nochmal konkretisieren.
-
Zitat von Lehona
Na ich nehme an es wird geprüft, ob sich die Dateien unterscheiden (anhand des Dateinamens/-pfads)? Wenn das nicht ist was du meinst, musst du deine Frage vielleicht nochmal konkretisieren.
Datum, Dateigröße, Hash,... ?
-
Zitat von Milky-Way
Datum, Dateigröße, Hash,... ?
Ich will doch sehr hoffen, dass ein Hashwert berechnet wird. Alles andere wäre nur eine schlechte Heuristik, ob sich die Dateien unterscheiden. Aber ja, das kann wohl nur Bonne endgültig beantworten.
-
Zitat von Lehona
Ich will doch sehr hoffen, dass ein Hashwert berechnet wird. Alles andere wäre nur eine schlechte Heuristik, ob sich die Dateien unterscheiden. Aber ja, das kann wohl nur Bonne endgültig beantworten.
Exakt, Hash auf Mod-Datei und Modkit-Datei und dann wird der verglichen. Alles andere ist, wie schon erwähnt, nicht aussagekräftig genug.
-
Zitat von Bonne6
Exakt, Hash auf Mod-Datei und Modkit-Datei und dann wird der verglichen. Alles andere ist, wie schon erwähnt, nicht aussagekräftig genug.
Erkennt der Algorithmus auch Kollisionen (unterschiedliche Dateien, gleicher Hashwert)? Wie wird damit umgegangen?
-
Zitat von Neconspictor
Erkennt der Algorithmus auch Kollisionen (unterschiedliche Dateien, gleicher Hashwert)? Wie wird damit umgegangen?
Nein, dann müsste ja alles mit allem abgeglichen werden und dann ist die große Frage: Wie soll mit zwei gleichen Dateien umgegangen werden? Da müsste der User ja manuell nochmal was anfassen, weil er scheinbar die gleiche Datei 2x im Projekt hat. Kann das höchstens als Warning einbauen.
-
Zitat von Milky-Way
Datum, Dateigröße, Hash,... ?
Zitat von Bonne6
Exakt, Hash auf Mod-Datei und Modkit-Datei und dann wird der verglichen. Alles andere ist, wie schon erwähnt, nicht aussagekräftig genug.
Ja, das war was ich wissen wollte. Vielen Dank.
-
Zitat von Bonne6
Nein, dann müsste ja alles mit allem abgeglichen werden und dann ist die große Frage: Wie soll mit zwei gleichen Dateien umgegangen werden? Da müsste der User ja manuell nochmal was anfassen, weil er scheinbar die gleiche Datei 2x im Projekt hat. Kann das höchstens als Warning einbauen.
Eine Warnung wäre vielleicht nicht schlecht. So unwahrscheinlich Kollisionen bei einer guten Hashfunktion auch sind, ist es trotzdem noch möglich.
-
Zitat von Neconspictor
Eine Warnung wäre vielleicht nicht schlecht. So unwahrscheinlich Kollisionen bei einer guten Hashfunktion auch sind, ist es trotzdem noch möglich.
Jaein. Das mag man schnell denken, aber realistisch ist das nicht.
Angenommen Bonne verwendet SHA-1 (160bit) und es sind 5000 Dateien in der .mod enthalten (ich glaube Gothic hat wesentlich weniger), dann ist die Chance auf mindestens eine Kollsion bei ca 8.5×10-42. Im Vergleich dazu: 6 richtige im Lotto haben eine Wahrscheinlichkeit von ca. 7.14×10-9, d.h. es ist ca. 8×1032 mal so wahrscheinlich, im Lotto zu gewinnen wie dass es bei 5000 Dateien eine oder mehr Kollisionen gibt.
Realistisch ist jede Sekunde, die man sich mit (zufälligen) Kollisionen beschäftigt verschwendet.
-
Zitat von Lehona
Jaein. Das mag man schnell denken, aber realistisch ist das nicht.
Angenommen Bonne verwendet SHA-1 (160bit) und es sind 5000 Dateien in der .mod enthalten (ich glaube Gothic hat wesentlich weniger), dann ist die Chance auf mindestens eine Kollsion bei ca 8.5×10-42. Im Vergleich dazu: 6 richtige im Lotto haben eine Wahrscheinlichkeit von ca. 7.14×10-9, d.h. es ist ca. 8×1032 mal so wahrscheinlich, im Lotto zu gewinnen wie dass es bei 5000 Dateien eine oder mehr Kollisionen gibt.
Realistisch ist jede Sekunde, die man sich mit (zufälligen) Kollisionen beschäftigt verschwendet.
Ich weiß das und auch, dass es vermutlich nie ein Problem sein wird. Trotzdem finde ich, sollte man Grenzfälle und deren Auswirkungen in der Softwareentwicklung berücksichtigen. Als verschwendete Zeit würde ich das nicht bezeichnen
-
Das Berücksichtigen besteht in diesem Fall daraus, dass man nach einer kurzen Überschlagsrechnung feststellt, dass es niemals ein Problem werden wird
Aber ernsthaft, es ist (wesentlich) wahrscheinlicher, dass man 4 mal in Folge 6 Richtige tippt, aber hast du schonmal gehört, dass das jemandem gelungen ist? Geschweige denn einer bestimmten Person?
Wenn du wirklich einen unwahrscheinlichen Randfall berücksichtigen möchtest, würde ich vorschlagen, alle Berechnungen auf einer redundanten CPU noch einmal auszuführen, denn ich denke dass ein Rechenfehler auf Grund von Strahlung wesentlich wahrscheinlicher ist.
-
Es geht nicht um Wahrscheinlichkeit, sondern um Korrektheit. Du musst deshalb nicht sarkastisch werden.
Eine einfache Warnung einzubauen, wie Bonne6 vorgeschlagen hat, ist doch recht schnell gemacht. ich sehe da kein Problem.
-
Das sollte auch nicht sarkastisch sein, nur ein weiterer Vergleich, für wie sinnvoll ich das halte. Es schadet natürlich nicht, so eine Warnung einzubauen, ich habe nur das Gefühl, dass viele sich der tatsächlichen Wahrscheinlichkeiten nicht bewusst sind
Edit: Aber dann muss natürlich auch jede Datei, die gelöscht / für überflüssig befunden wurde, als Warning ausgegeben werden. Sonst lässt man ja 95% der potentiellen Kollisionen aus.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|