Eine PK3-Datei erstellen und veröffentlichen

In diesem Tutorial möchte ich dir zeigen, wie du deine für World of Padman selbst erstellten Inhalte in einer PK3-Datei zusammenstellen und für die [PAD]Community veröffentlichen kannst. Eine PK3-Datei ist dabei im Grunde nichts anderes als eine ZIP-Archivdatei, deren Dateisuffix in PK3 umbenannt wurde. Diese Nomenklatur wurde von id Software für das Spiel Quake III Arena eingeführt auf dessen Engine World of Padman basiert. Du kannst also zum erstellen einer PK3-Datei jedes Packprogramm verwenden, dass das ZIP-Dateiformat unterstützt, z.B. 7-Zip als eine freie Alternative. Es geht aber auch mit Windows-Bordmitteln.

Namenskonvention

Ich empfehle dir, deine Inhalte grundsätzlich in separaten PK3-Dateien zu veröffentlichen. Damit meine ich, dass du zum Beispiel einen von dir erstellten Skin zu einem Spielermodelle nicht zusammen mit einer von dir erstellen Map in eine PK3-Datei packen solltest. Es sollte auch schon anhand des Dateinamens alleine für den Nutzer sofort erkennbar sein, um welche Inhalte es sich dabei handelt. Daher empfehle ich dir die folgende PK3-Namenskonvention, die sich an der Empfehlung von Paul Jaquays von id Software orientiert:

  • wopmdl-xxx.pk3 – Von dir erstelltes Spielermodell mit den zugehörigen Modell-, Skin-, Textur-, Shader- und Sound-Dateien
  • wopbot-xxx.pk3 – Von dir erstellter Bot-Dateien für ein Spielermodell, kann zusätzliche Modell- oder Skin-, Textur- und Shader-Dateien enthalten
  • wopskn-xxx.pk3 – Von dir erstellter Skin für ein Spielermodell mit zugehörigen Skin-, Textur- und Shader-Dateien
  • wopmap-xxx.pk3 – Von dir erstellte Map(s) mit zugehörigen Arena-, Shader-, Textur- und Sound-Dateien
  • woptex-xxx.pk3 – Von dir erstellte Texturen und zugehörige Shader-Dateien
  • wopsnd-xxx.pk3 – Von dir erstellte Sound-Dateien
  • wopmus-xxx.pk3 – Von dir erstellte Musikpakete
  • woppfb-xxx.pk3 – Von dir erstellte Prefabs für Maps, kann also auch Mapobjekte im ASE- und MD3-Format enthalten

Grundsätzlich sollte der Dateiname immer mit „wop“ beginnen, damit klar wird, das die Datei für World of Padman gedacht ist. Auch sollte immer ein Bindestrich statt einem Unterstrich verwendet werden, da Hyperlinks im Internet häufig unterstrichen hervorgehoben werden und somit sofort ersichtlich wird, ob der Dateiname ein Leerzeichen beinhaltet oder nicht.

Inhalte

Deine PK3-Datei sollte ausschließlich von dir selbst erstellte oder mit einer entsprechenden Lizenz erworbene Inhalte beinhalten. Entsprechende Details dazu sollten in einer Readme-Datei festgehalten werden, die üblicherweise im Hauptverzeichnis innerhalb der PK3-Datei abgelegt wird. Grundsätzlich sollte deine PK3-Datei keine Inhalte, also Texturen, Modelle, Shader etc. aus anderen PK3-Dateien enthalten, besonders wenn du sie für deine Zwecke verändert haben solltest.

Das Problem besteht darin, dass diese Inhalte unter Umständen die originalen Inhalte von World of Padman oder der anderer Autoren „überschreiben“ können, auch wenn die PK3-Dateien unterschiedlich benannt sind. Das hängt damit zusammen, dass die Engine zuerst die Inhalte aus der ordnungstechnisch letzten PK3-Datei lädt und sich somit systematisch von hinten nach vorne durcharbeitet. Dadurch wird sichergestellt, dass eine mit einem Patch ausgelieferte Datei in „wop_006.pk3“ die zuvor mit „wop_001.pk3“ ausgelieferte Datei im gleichen Pfad mit Sicherheit überschreibt.

Das bedeutet für dich, dass deine eigenen oder modifizierten Dateien grundsätzlich in von dir individuell benannten Unterverzeichnissen abgelegt sein müssen (z.B. ./textures/meinetexturen/). Gleiches gilt für die Benennung deiner Shader-Dateien und der darin enthaltenen Shader-Pfade. Namen, die mit „wop_“ oder „pad_“ starten sollten für dich generell tabu sein. Möchtest du zum Beispiel eine vorhandene, originale Textur aus WoP mit einem eigenen Shader mit anderen individuellen Eigenschaften versehen, so kann mit dem Schlüsselwort „map“ im Shader auf die originale Textur verwiesen werden, der Shader selbst muss jedoch einen von dir gewählten individuellen Shader-Pfad beinhalten. Du musst also Texturen zu diesem Zweck nicht entpacken und in dein Texturverzeichnis kopieren, du brauchst sie nur über einen Shader referenzieren.

Versionsmanagement

Der Begriff Versionsmanagement umfasst eigentlich viel mehr, aber mit dem Wissen aus dem vorhergehenden Abschnitt im Hinterkopf, empfehle ich dir unbedingt eine Versionierung deiner finalen PK3-Datei, denn so final wie du denkst, ist sie manchmal eben nicht. Dazu kannst du eine von dir selbst gewählte Versionsnummer einfach an den Dateinamen dran hängen, z.B. wopmap-meinemap01.pk3. Zwei Ziffern sollten meiner Ansicht nach ausreichen, denn zu mehr als 99 Versionen deiner Map sollte es mit Sicherheit nicht kommen. Eine Versionierung hat den Vorteil, dass du bei nachträglichen Fehlerkorrekturen eine wopmap-meinemap02.pk3 veröffentlichen kannst, die nur die geänderten und neuen Dateien enthält und somit die Inhalte aus wopmap-meinemap01.pk3 ergänzt bzw. korrigiert. In diesem Fall benötigt der Nutzer dann beide PK3-Dateien.

Selbst wenn du dich dazu entschließt, alle Dateien der Map vollständig mit der neuen PK3-Datei auszuliefern, so darf die neue PK3-Datei nicht den gleichen Namen wie die alte PK3-Datei haben. Verfügen Server und Client über gleichnamige PK3-Dateien mit unterschiedlichen Inhalten, kommt es beim Nutzer zum Abbruch des Ladevorgangs mit einer recht kryptischen Fehlermeldung. Für den Nutzer ist die Ursache des Problems nicht sofort ersichtlich, was viel Frust verursachen kann. Bleib hierbei also so sauber wie möglich und deine Readme-Datei sollte die Änderungen der neuen Version in einer Art Changelog dokumentieren.

Packen

Bevor du deine PK3-Datei erstellst, empfehle ich dir unbedingt irgendwo einen separaten Ordner zu erstellen, der den gleichen Namen wie die PK3-Datei haben kann, z.B. /wopmdl-meinspielermodell01. Darin sollten ausschließlich die für deine Veröffentlichung notwendigen Dateien in der korrekten Ordnerstruktur abgelegt sein. Wer, wie ich, an mehreren Projekten gleichzeitig arbeitet, kann dadurch leichter sicherstellen, dass nicht aus versehen unnötige Dateien und Verzeichnisse mit in der PK3-Datei landen. Wichtig ist, das nun nicht der von dir erstellte Ordner gepackt wird, sondern nur die darin enthaltenen Unterordner. Gehe dazu in deinen Ordner und markiere den kompletten Inhalt, also alle Unterordner sowie die parallel dazu liegende Readme-Datei. Unter Windows kannst du mit einem Rechtsklick über das Kontextmenü 7-Zip > Zu einem Archiv hinzufügen… auswählen, sofern du 7-Zip zuvor installiert hast.

Es erscheint ein Programmdialog, in dem du weitere Einstellungen vornehmen kannst. Bei Archiv kannst du die Dateiendung des Dateinamens direkt von wopmdl-meinspielermodell01.zip in wopmdl-meinspielermodell01.pk3 ändern. Wichtig ist, dass bei Archivformat weiterhin zip ausgewählt ist und dass bei Verzeichnisstruktur unbedingt Relative Pfadangaben ausgewählt ist. Dadurch wird sichergestellt, dass die Unterordnerstruktur korrekt abgebildet wird, jedoch vorgelagerte Pfadangaben ignoriert werden. Abschließend kannst du bei Kompressionsstärke noch Ultra auswählen, um die PK3-Datei so klein wie möglich zu halten. Alle anderen Einstellungen kannst du unverändert so belassen.

7-Zip Programmdialog "Zu Archiv hinzufügen"

7-Zip Programmdialog „Zu Archiv hinzufügen“

Falls du 7-Zip nicht verwenden möchtest, so unterstützt auch Windows bereits seit vielen Jahren das ZIP-Dateiformat nativ im Datei-Explorer. Du kannst also PK3-Dateien auch ohne ein Zusatzprogramm per Rechtsklick über das Kontextmenü durch die Auswahl von senden an > ZIP-komprimierter Ordner erstellen, musst dann aber nachträglich die Dateiendung ZIP in PK3 umbenennen. Auch die Pfadangaben müssten standardmäßig korrekt, also relativ in der PK3-Datei abgelegt sein. Die Kompressionsrate kannst du jedoch nicht beeinflussen, daher wird die Datei vermutlich etwas größer als mit 7-Zip, was heutzutage jedoch keinen großen Nachteil mehr darstellt.

Veröffentlichen

Bevor du jetzt an eine Veröffentlichung denkst, solltest du zunächst deine PK3-Datei mit einer sauberen Installation von World of Padman testen. Dabei sollten also nur die PK3-Dateien vorhanden sein, die du auch für deine Veröffentlichung benötigst. Solltest du also z.B. Texturen aus ENTEs PadPack für deine neue Map nutzen oder dein neuer Skin für ein Spielermodell sein, was nicht zur Standard-WoP-Installation gehört, so müssen diese PK3-Dateien natürlich auch vorhanden sein. Diese Abhängigkeiten sollten übrigens auch in der Readme-Datei entsprechend dokumentiert sein. Falsch wäre es, die von dir benötigten Texturen aus dem PadPack oder das Spielermodell einfach mit in deine PK3-Datei zu packen. Bitte denke auch an das WoP-Nutzerverzeichnis (Windows: %appdata%\Padman\wop\ | Linux: ~./padman/wop/), in dem sich noch weitere PK3-Dateien befinden können, die dann auch eine saubere WoP-Installation „verunreinigen“ können.

Wenn du alles getestet hast und alles passt, kannst du deine PK3-Datei eigentlich direkt irgendwo im Internet hochladen und die [PAD]Community über deine neue Veröffentlichung informieren. Da jedoch nicht jeder etwas mit einer PK3-Datei anfangen kann und auch die Readme-Datei, die die Informationen zur Installation beinhaltet, dann darin versteckt ist, hat es sich in der Praxis bewährt, die PK3-Datei zusammen mit der Readme-Datei nochmals in eine gleichnamige ZIP-Datei zu packen und erst dann hochzuladen. Falls du keinen eigenen Webspace hast, kann ich dir zwei kostenlose Möglichkeiten empfehlen.

ModDB

Auf ModDB, der Modification Database, kannst du deinen Inhalt direkt als Addon dem Spielprofil von World of Padman zuordnen. Der Vorteil ist, dass er direkt als Addon für WoP erkennbar ist und die [PAD]Community auf ModDB automatisch darüber informiert wird. Des weiteren gibt es vorgegebene Kategorien, denen du deine Inhalte zuordnen kannst, z.B. Multiplayer Map, Weapon Skin, Music etc. Alles was du benötigst, um deine Inhalte bei ModDB hochladen zu können, ist ein Account.

Addons-Liste der WoP-Profilseite auf ModDB

Addons-Liste der WoP-Profilseite auf ModDB

Mod.io

Eine mittlerweile viel bessere Möglichkeit zur Veröffentlichung bietet mod.io, einer relativ neuen Cross-Plattform für den Mod-Support von Spielen von den Machern von ModDB. Auch World of Padman ist dort mit einem eigene Profil vertreten. Wir planen diese Plattform zunächst stärker in unsere Webseite zu integrieren, um dir einen besseren Überblick über die Addons für World of Padman zu ermöglichen. Weitere Schritte bis hin zu einer Integration in World of Padman selbst sind nicht ausgeschlossen, daher könnte es sinnvoll sein deine Inhalte zukünftig auch dort hochzuladen.

Addons-Liste der WoP-Profilseite auf mod.io

Addons-Liste der WoP-Profilseite auf mod.io

Ein wesentlicher Vorteil besteht in dem Tag-System, welches wir selbst vorgeben können und nach dem alle Inhalte gefiltert werden können. Wir unterscheiden hier grundsätzlich in Mods und Addons. Mods sind Modifikationen von World of Padman selbst, die in ein eigenes Unterverzeichnis, parallel zum wop-Unterverzeichnis installiert werden müssen. Addons hingegen sind Inhalte wie Maps, Modelle, Musicpacks, Sounds etc. die direkt für WoP oder eine WoP-Modifikation erstellt wurden. Diese müssen dann in das wop-Unterverzeichnis oder das entsprechende Unterverzeichnis der Modifikation installiert werden. Deine Inhalte werden auf mod.io von uns moderiert und freigegeben. Die Zuordnung zu Mods oder Addons wird von uns vorgenommen. Du hast jedoch die Möglichkeit aus allen anderen Tag-Gruppen diejenigen auszuwählen, die für deinen Inhalt passend sind. Aus den Dropdown-Listen kannst du jeweils nur einen passenden Eintrag zuordnen, während du aus den Checkbox-Listen mehrere Einträge gleichzeitig zuordnen kannst. Das von uns vorgegebene Tag-System ist nicht final und wird mit weiteren Inhalten für World of Padman sicherlich noch weiteren Anpassungen unterliegen.

Neben dem direkten Download von Inhalten, kann die [PAD]Community auf mod.io deine Inhalte auch abonnieren und somit entscheiden, welche Inhalte automatisiert über eine möglicherweise zukünftige Integrationslösung in World of Padman auf der Festplatte installiert und aktuell gehalten werden sollen. Alles was du benötigst, um deine Inhalte bei mod.io hochladen zu können, ist ein Account.