German FreeSpace Galaxy - Forum German FreeSpace Galaxy - Forum
Registrieren | FAQ | Suche | Wer ist online? | Mitgliederliste | Heutige Beiträge | Kalender | Einloggen



Autor Thema: Volition Package Tool - Mit MultiArc Addon für Total Commander
Luke
Leutnant
*
ID # 284


  Erstellt am 11. Februar 2017 12:35 (#1)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Verwendete Abkürzungen in diesem Thema
FS = FreeSpace
VP = Volition Package
VPT = Volition Package Tool
TC = Total Commander (professioneller Datei-Manager)
MA = MultiArc (Plugin für TC um Konsolen-Packer einzubinden)
RegEx = Regular Expression (Regulärer Ausdruck)
GUI = Graphical User Interface (Grafische Benutzeroberfläche)
UTC = Universal Time Coordinated (Koordinierte Weltzeit)
AI3 = AutoIt3 (Programmiersprache in der VPT geschrieben wurde)


1. Einleitung - Was ist Volition Package Tool?

VPT ist ein Skript-fähiges Tool zur Erstellung und Bearbeitung von Volition Package Archiven (.VP). Es wurde entwickelt, um in automatisierte Produktionsumgebungen integriert werden zu können, wie wir sie im WCSD Projekt einsetzen. Es hat keine eigene GUI, ist jedoch kompatibel zum Total Commander Plugin "MultiArc". Durch die Kombination VPT+MA+TC erhält man zusätzlich zu den Skript-Funktionen eine komfortable Oberfläche zur Erstellung und Bearbeitung von VP Archiven. So lässt sich VPT kombiniert als Skript-Tool und als GUI-Tool einsetzen.

2. Einsatzgebiet/Zielgruppe

Die Domäne von VPT ist die Skript-Verarbeitung von Dateien und VP Archiven. Vor allem bei häufig wiederkehrenden Routineaufgaben, wären Tools mit Oberfläche umständlich, zeitraubend und fehlerträchtig. Es eignet sich daher primär für Mod- und Spielentwickler die eine Möglichkeit suchen, automatisiert VP Archive erstellen zu können.

Für Spieler die nur ein paar Details eines bestehenden Mods verändern möchten, ist VPT weniger geeignet bzw. nicht konzipiert. In diesem Fall sollte eher eine reine GUI-Lösung in Betracht gezogen werden.

3. Funktionen und Eigenschaften

  • Beherrscht die Funktionen Create/Add/Move, List, Extract und Delete.
  • Kann im einfachsten Fall einen Ordner samt Unterordner und allen Dateien zu einem VP Archiv packen, wie VPMAKE.
  • Es ist deutlich schneller als VPMAKE. Je mehr Dateien gepackt werden müssen, desto grösser der Zeit-Vorteil. Um z.B. den WCS Ordner "CBANIMS" mit 11.034 Dateien und 1.442.151.948 Bytes (1,34 GB) zu einem VP zu packen, benötigt VPMAKE auf meinem PC 28 Sekunden. VPT erledigt die gleiche Aufgabe in 7 Sekunden.
  • Unterstützt Regular Expression (Regulärer_Ausdruck) von AI3 per Parameter als Filter, wodurch es flexibel an jede Entwicklungsumgebung und Situation angepasst werden kann.
  • Akzeptiert mehrere Dateien per Parameter als Filter für alle Funktionen.
  • Akzeptiert einfache Dateimuster (* und ?) per Parameter als Filter für alle Funktionen.
  • Akzeptiert eine List-Datei als Filter für alle Funktionen, die sämtliche Dateien, Dateimuster oder RegEx enthalten kann.
  • Kann Dateien mit oder ohne Pfade entpacken.
  • Kann die Kernfunktionen Create/Add/Move, Delete und Extract simulieren. Nützlich um vorab Dateimuster und vor allem RegEx zu testen. Dabei werden auch bereits die wichtigsten Prüfungen und Berechnungen durchgeführt und so eignet sich die Simulation um Fehler in den Strukturen aufzudecken und um die endgültige Archiv-Grösse sowie andere Werte zu ermitteln, bevor tatsächlich gepackt wird.
  • Hat etliche Prüfungen um sicherzustellen, dass das erzeugte oder veränderte VP Archiv stets vollständig und intakt ist. Es wird z.B. geprüft ob auf dem Ziellaufwerk genügend freier Platz vorhanden ist, ob das Archiv die Maximal-Grösse einhält, ob die Dateinamen die Maximal-Länge einhalten und andere Dinge.
  • Alle Vorgänge die eine Änderung oder eine Erzeugung eines neuen VP Archivs bedeuten, werden in einem temporären VP Archiv durchgeführt. Erst wenn der Vorgang vollständig und fehlerfrei abgeschlossen wurde, wird die temporäre Datei in das endgültige VP Archiv umbenannt und/oder das bestehende VP Archiv durch das endgültige Archiv überschrieben.
  • Wenn während einem Vorgang ein schwerwiegendes Problem auftritt, durch das ein defektes VP Archiv entstehen würde, wird der Vorgang sofort abgebrochen und das bereits begonnene, temporäre VP Archiv gelöscht. Es gibt hier also eine einfache Regel: wenn man nach dem Vorgang das gewünschte VP Archiv sieht, ist es auch in Ordnung.
  • Kann den Inhalt des VP Archivs mit verschiedenen Listen darstellen: kurz, lang oder technisch.
  • Zeigt bei allen Vorgängen immer eine Zusammenfassung, z.b. wieviele Dateien und Verzeichnisse hinzugefügt wurden, wieviele Bytes und andere Dinge.
  • Die UTC Zeit der Dateien im Archiv wird beim Entpacken automatisch in die lokale Zeit konvertiert. Dabei wird sowohl die Zeitzone als auch Sommer/Winter-Zeit berücksichtigt. Soweit ich weiss, ist VPT das einzige Windows Tool das Datum und Zeit beim entpacken wiederherstellen kann.
  • Auch wenn in VP Archiven normalerweise keine leere Dateien vorkommen, bzw. vorkommen sollten, werden diese sowohl beim Packen als auch Entpacken korrekt verarbeitet. Standardmässig werden leere Dateien jedoch ignoriert.
  • Bei der Funktion Extract wird eine Liste erzeugt die auch Fehlercodes für jede einzelne Datei enthält.
  • VPT setzt beim Beenden ebenso einen Fehlercode, der dann vom aufrufenden Skript ausgewertet werden kann.
  • Bietet viele Schalter um alle Vorgänge flexibel an verschiedene Situationen anpassen zu können.
  • Hat eine RAR-ähnliche Syntax.
  • Kann durch die Funktionen Add (Hinzufügen/Überschreiben) und Delete (Löschen) auch als Teil eines Update-Pakets für die Aktualisierung von VP Archiven direkt beim Spieler eingesetzt werden. Dadurch würden sogenannte Patch-VP's komplett entfallen.
  • Benötigt mindestens Windows XP SP3. Hat sonst keinerlei Abhängigkeiten und ist auf jedem Windows ohne zusätzliche Runtime Installationen lauffähig.


Kompatibel mit dem Total Commander Plugin "MultiArc". Eine Addon-Datei zum importieren liegt bei. Im TC sind dann folgende Standard-Funktionen möglich: Erstellen (Create), Hinzufügen/Überschreiben (Add), ins Archiv verschieben (Move), Auflisten (List), Entpacken (Extract) und Löschen (Delete). Darüber hinaus ergeben sich durch die Kombination von VPT und TC einige besondere Funktionen und Eigenschaften:

  • Ein VP Archiv kann mittels Sync mit einem normalen Verzeichnis (in beide Richtungen) synchronisiert werden. Die Sync Funktion ermöglicht eine sehr einfache Aktualisierung eines bereits bestehenden VP Archives, ideal für Updates.
  • Es können mehrere VP Archive auf einmal entpackt werden. Dabei kann man auch angeben, ob jedes VP Archiv in ein eigenes Unterverzeichnis entpackt werden soll. Ideal wenn man den kompletten Inhalt eines Freespace Mods entpacken und dabei die ursprünglichen Strukturen erhalten möchte.
  • Eine beliebige Datei kann direkt in der VP geändert werden, ohne das Archiv erst manuell entpacken und nach der Änderung wieder packen zu müssen. So kann z.B. eine Textdatei direkt mit einem Editor geändert werden. Nach der Änderung wird man gefragt, ob die geänderte Datei wieder ins Archiv gepackt werden soll.
  • Dateien und/oder Ordner können in einen Pfad eines bestehenden Archivs kopiert werden, der noch nicht existiert. Dieser kann direkt beim Packvorgang angegeben werden. Dabei kann der Pfad auch mehrere Unterordner enthalten, also z.B. "Ordner1\Ordner2\...".
  • Innerhalb einer einzelnen VP kann mit der Dateisuche gearbeitet werden. Die Dateien in der Ergebnis-Liste können dann direkt aufgerufen werden, wodurch das Verzeichnis im VP gewechselt und der Fokus auf die betreffende Datei gesetzt wird.
  • In einem Ordner mit mehreren VP's oder in einem ganzen Laufwerk, kann mit der Dateisuche auch global in allen VP Archiven gesucht werden. Die Dateien in der Ergebnis-Liste können dann direkt aufgerufen werden, wodurch das betreffende VP geöffnet, das Verzeichnis im VP gewechselt und der Fokus auf die betreffende Datei gesetzt wird.


Da mir hier einige Gestaltungsmöglichkeiten unseres eigenes Forums fehlen und sich in nächster Zeit sicher noch vieles ändern wird, habe ich hier nur die ersten 3 Punkte aufgeführt. Der vollständige Beitrag mit allen Texten, Bildern und Download ist bei uns im Forum zu finden:

Volition Package Tool - Mit MultiArc Addon für Total Commander

Updates zum Startbeitrag sowie später zum Tool selbst, werde ich natürlich in beiden Foren bekanntgeben. Diskutieren kann man natürlich ebenfalls in beiden Foren.

-----------------------

Beiträge: 17 | Mitglied seit: Januar 2017 | IP-Adresse: gespeichert
Luke
Leutnant
*
ID # 284


  Erstellt am 11. Februar 2017 12:35 (#2)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Aktuell werden die Kernfunktionen nochmal intensiv getestet, bevor das Tool für den öffentlichen Betatest freigegeben wird.

-----------------------

Beiträge: 17 | Mitglied seit: Januar 2017 | IP-Adresse: gespeichert
Alexander
Oberbefehlshaber
***
ID # 70


  Erstellt am 12. Februar 2017 15:41 (#3)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Nicht schlecht. Tolle Sache. Ich werde das Tool wohl eher nicht benötigen, da meine selbstgemachten VPs eher klein sind. Aber schön das es so was gibt. Und wer weiß? Vielleicht brauche ich es ja doch mal.

Übrigens ist der WC Mod eine super Sache. Ich spiele den immer wieder gern. :respekt:

-----------------------
Alexanders Center - Fankampagnen für FreeSpace 2

Beiträge: 1392 | Mitglied seit: Juli 2007 | IP-Adresse: gespeichert
Luke
Leutnant
*
ID # 284


  Erstellt am 13. Februar 2017 11:52 (#4)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Moin Alexander

Wir haben im WCS Umfeld natürlich sehr viele Dateien, über 24.000 mit rund 7 GB. Mit solch grossen Projekten kann VPT umgehen, in dieser Umgebung wurde es auch entwickelt. Wobei es bei VPT weniger um den Umfang geht, sondern eher darum, ständig wiederkehrende Routineaufgaben zu automatisieren. Im WCSD Team hatte während der Entwicklung und Betatest (lief gleichzeitig) niemand mit der manuellen Erstellung von VP's zu tun, das lief quasi auf Knopfdruck. Auch nach dem Release für Updates.

Zitat von Alexander:
Übrigens ist der WC Mod eine super Sache. Ich spiele den immer wieder gern. :respekt:



Danke. :) In WCS und WCSD steckt sehr viel Arbeit und Herzblut. Wieviel Arbeit so ein Spiel/Mod macht, muss ich ja gerade hier nicht erklären. :zwinker2:


Edit: da Listen hier offenbar nur eine Ebene haben können, habe ich eben im Startbeitrag den Punkt Total Commander sowie zusätzliche Funktionen als eigenen Abschnitt von der Liste abgesetzt.

-----------------------

Beiträge: 17 | Mitglied seit: Januar 2017 | IP-Adresse: gespeichert
The_E
Commander
**
ID # 249


  Erstellt am 15. Februar 2017 12:50 (#5)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Das klingt ja mal sehr interessant. Es würde mich sehr interessieren, wie dieses Tool im Vergleich zu CFileArchiver aussieht (das von Volition erstellte und im FSO-Quellcode enthaltene kommandozeilentool).

Zum Vergleich: Um Blue Planet zu verpacken (ca 9000 Dateien, 12.7 GB) benötigt CFileArchiver zwischen 220 und 240 Sekunden (gemessen mit einer Western Digital 7200 rpm Festplatte).

-----------------------
Projektleiter, FreeSpace Open
Autor, Designer für Blue Planet: War in Heaven, Blue Planet: Tenebra
Visit the HLP Discord!

Beiträge: 32 | Mitglied seit: November 2012 | IP-Adresse: gespeichert
Luke
Leutnant
*
ID # 284


  Erstellt am 15. Februar 2017 14:26 (#6)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Zitat von The_E:
Das klingt ja mal sehr interessant. Es würde mich sehr interessieren, wie dieses Tool im Vergleich zu CFileArchiver aussieht (das von Volition erstellte und im FSO-Quellcode enthaltene kommandozeilentool).



Das wiederum ist für mich sehr interessant. Gibt es das Tool irgendwo als Windows Executable zum herunterladen? Das Tool war mir bis jetzt unbekannt und ich habe hier als Referenz schon alle VP Tools (für Windows) die ich finden konnte.

Zitat:
Zum Vergleich: Um Blue Planet zu verpacken (ca 9000 Dateien, 12.7 GB) benötigt CFileArchiver zwischen 220 und 240 Sekunden (gemessen mit einer Western Digital 7200 rpm Festplatte).



Ich habe mir gerade eben zum testen von hier Blue Planet geholt. Sobald alles entpackt ist, komme ich auf 8823 Dateien innerhalb der VPs, aber nur auf 6.047 MB, also knapp die Hälfte von dem was du angegeben hast. Was übersehe ich?

-----------------------

Beiträge: 17 | Mitglied seit: Januar 2017 | IP-Adresse: gespeichert
The_E
Commander
**
ID # 249


  Erstellt am 15. Februar 2017 17:05 (#7)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Zitat von Luke:

Das wiederum ist für mich sehr interessant. Gibt es das Tool irgendwo als Windows Executable zum herunterladen? Das Tool war mir bis jetzt unbekannt und ich habe hier als Referenz schon alle VP Tools (für Windows) die ich finden konnte.



Wir liefern diese Tools (noch) nicht im Rahmen von FSO aus, aber ich hab mal x64-exes kompiliert: https://www.dropbox.com/s/mavz7chpcibryh0/CFileTools.7z?dl=0

Wenn du die Programme selber kompilieren möchtest, musst du den Anleitungen hier folgen und den CMake-Parameter "FSO_BUILD_TOOLS" auf true setzen.

Zitat:
Ich habe mir gerade eben zum testen von hier Blue Planet geholt. Sobald alles entpackt ist, komme ich auf 8823 Dateien innerhalb der VPs, aber nur auf 6.047 MB, also knapp die Hälfte von dem was du angegeben hast. Was übersehe ich?



Nichts, das war mein Fehler :P Ich hatte vergessen, das unser build-skript die VPs im gleichen Ordner ablegt, in dem sich auch der rest der daten befindet, 6 GB ist die tatsächliche grösse.

-----------------------
Projektleiter, FreeSpace Open
Autor, Designer für Blue Planet: War in Heaven, Blue Planet: Tenebra
Visit the HLP Discord!

Beiträge: 32 | Mitglied seit: November 2012 | IP-Adresse: gespeichert
Luke
Leutnant
*
ID # 284


  Erstellt am 15. Februar 2017 18:18 (#8)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Zitat von The_E:
Wir liefern diese Tools (noch) nicht im Rahmen von FSO aus, aber ich hab mal x64-exes kompiliert:



Danke :)

Zitat:
6 GB ist die tatsächliche grösse.



OK, dann passt es jetzt. Ich habe mir ein Skript erstellt, mit dem ich mit beiden Tools Blue Planet packen lassen kann. Um jegliche Caching Abweichungen zu eliminieren, wurde nach einem Durchgang der Ziel-Ordner wieder gelöscht und Windows neu gestartet. Ich habe hier im Entwickler Rechner zwar auch SSD's, ich habe den Test jedoch bewusst mit normalen Platten gemacht. Zum Einsatz kamen 2 meiner Raptors (10000 rpm), eine als Quelle (die Ordner) und eine als Ziel (für die VPs). Also ideale Voraussetzungen.

VPT

Start: 16:56:15,27
Stop : 16:57:23,40

cfilearchiver

Start: 17:03:29,84
Stop : 17:04:35,17

VPT also knapp 1:08 und CFA knapp 1:05. Wobei CFA immens vom Cache profitiert wie ich festgestellt habe, darum auch der Reboot. Sobald der gleiche Vorgang ein zweites Mal gestartet wird, ist CFA deutlich schneller als VPT. Aufgefallen ist mir auch, das CFA nicht mit leeren Dateien umgehen kann.

Unterm Strich kann man sagen, das CFA schneller ist als VPT.

-----------------------

Beiträge: 17 | Mitglied seit: Januar 2017 | IP-Adresse: gespeichert
The_E
Commander
**
ID # 249


  Erstellt am 15. Februar 2017 18:22 (#9)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Zitat von Luke:
Aufgefallen ist mir auch, das CFA nicht mit leeren Dateien umgehen kann.



CFA überspringt leere Dateien, der dazugehörige Kommentar sagt, das diese die Verzeichnisstruktur durcheinander bringen können; Ich bin mir nicht sicher ob das tatsächlich der Fall ist oder nur ein bisschen defensives coding von V's seite.

(Andererseits würde mir auch keine Situation einfallen, in der leere Dateien was in nem VP zu suchen haben)

-----------------------
Projektleiter, FreeSpace Open
Autor, Designer für Blue Planet: War in Heaven, Blue Planet: Tenebra
Visit the HLP Discord!

Beiträge: 32 | Mitglied seit: November 2012 | IP-Adresse: gespeichert
Luke
Leutnant
*
ID # 284


  Erstellt am 15. Februar 2017 18:46 (#10)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Bei der Entwicklung von VPT war mir natürlich vor allem Funktionalität und Flexibilität wichtig. Geschwindigkeit war da eher sekundär. Trotzdem habe ich die Funktionen mehrfach optimiert. Es war dann ein angenehmer "Bonus", als ich merkte das VPT schneller ist als VPMAKE.

Ja, normalerweise hat man keine leere Dateien in VP's. Auf der anderen Seite ist eine leere Datei eine normale Datei mit 0 Byte Grösse. Aber alle VP Tools haben Probleme mit leeren Dateien, die Auswirkungen sind nur jeweils anders. VPT akzeptiert leere Dateien, sowohl beim packen als auch entpacken und berücksichtigt diese korrekt. Leere Dateien wären denkbar als Flag/Schalter-Dateien. Da ich nicht wusste ob so etwas im FSO Umfeld vorkommt, habe zur Sicherheit lieber mal leere Dateien berücksichtigt. Lieber etwas wird nicht gebraucht, funktioniert aber, als etwas das gar nicht möglich ist. ;)

Die Kernfunktionen habe ich soweit nochmal intensiv getestet, jetzt gibt's noch etwas Feinschliff. Wenn du Interesse hast, kann ich dir VPT schon mal vorab schicken, damit du umgekehrt auch testen kannst. Ich schätze in den nächsten Tagen wird es dann offiziell online gehen.

-----------------------

Beiträge: 17 | Mitglied seit: Januar 2017 | IP-Adresse: gespeichert
Luke
Leutnant
*
ID # 284


  Erstellt am 16. Februar 2017 14:10 (#11)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Bei uns im Forum unter Punkt 4 Beispiel-Ausgaben hinzugefügt für Add, List und Extract.

-----------------------

Beiträge: 17 | Mitglied seit: Januar 2017 | IP-Adresse: gespeichert
Luke
Leutnant
*
ID # 284


  Erstellt am 18. Februar 2017 14:25 (#12)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Donwload (0.8.1.1317) online. Startbeitrag aktualisiert. Unter Punkt 4 zusätzliche Bilder bez. Total Commander Beispiele hinzugefügt.

-----------------------

Beiträge: 17 | Mitglied seit: Januar 2017 | IP-Adresse: gespeichert
Luke
Leutnant
*
ID # 284


  Erstellt am 04. März 2017 12:44 (#13)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Neue Version 0.9.0.1413, siehe Changelog im Archiv.

-----------------------

Beiträge: 17 | Mitglied seit: Januar 2017 | IP-Adresse: gespeichert
Luke
Leutnant
*
ID # 284


  Erstellt am 17. März 2017 22:04 (#14)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Kritische Fehler behoben, Download wieder online. Neue Version 0.9.1.1466.

-----------------------

Beiträge: 17 | Mitglied seit: Januar 2017 | IP-Adresse: gespeichert
Luke
Leutnant
*
ID # 284


  Erstellt am 31. März 2017 10:55 (#15)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Neue Version 0.9.2.1497

-----------------------

Beiträge: 17 | Mitglied seit: Januar 2017 | IP-Adresse: gespeichert
Luke
Leutnant
*
ID # 284


  Erstellt am 25. Mai 2017 18:19 (#16)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Neue Version 0.9.3.1513 (RC1)

-----------------------

Beiträge: 17 | Mitglied seit: Januar 2017 | IP-Adresse: gespeichert
Luke
Leutnant
*
ID # 284


  Erstellt am 09. Juni 2017 15:44 (#17)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Neue Version 1.0.0.1521 (Release)

-----------------------

Beiträge: 17 | Mitglied seit: Januar 2017 | IP-Adresse: gespeichert



| German FreeSpace Galaxy | Boardregeln | Datenschutzerklärung


Tritanium Bulletin Board 1.10
© 2010–2024 Tritanium Scripts