Home | Forum | Downloads | Videos | UTV-Live | Artikel | Server-Stats | Impressum

Zurück   UTzone.de > UT > UT2004

Antwort
 
Teilen Themen-Optionen Thema durchsuchen
Alt 23.03.2019, 23:03   #1
Crusha K. Rool
Mapping Crocodile
 
Benutzerbild von Crusha K. Rool
 
Registriert seit: 03.04.2011
Ort: Südniedersachsen
Beiträge: 184
Beigetretene Cups: 0
Cup Siege: 0
Downloads: 3
Uploads: 0
Standard Best Practices für Mod-Entwicklung mit CVS

Gibt es irgendwelche Best Practices, um die Entwicklung mehrerer Mods in unterschiedlichen CVS-Repositories zu ermöglichen?

Zum einen gibt es ja die Standardordnerstruktur im Root-Verzeichnis der UT-Installation:
  • Animations
  • Maps
  • Music
  • Sounds
  • System

Jeder dieser Ordner kann potenziell einzelne Dateien enthalten, die zu einer Mod gehören. Das heißt ein Checkout einer Mod aus einem CVS müsste eigentlich ins Wurzelverzeichnis erfolgen. Dann hat man allerdings unzählige unversionierte Dateien, dazwischen die eben nichts mit der aktuellen Mod zu tun haben. Eine Ignore-Liste kann man dafür aber wahrscheinlich eher nicht pflegen.

Des Weiteren hat man als Coder noch die ganzen Packages mit dem Quellcode, die man zum Kompilieren braucht. Zum einen den Code für die ganzen offiziellen Packages, zum anderen noch den Code der eigenen Scripte. (Hier sollte es immerhin keine Probleme beim Einteilen einer Ignore-Liste geben)

Allerdings hat man prinzipiell auch das Problem, dass man beim Auschecken im Root-Ordner wahrscheinlich nicht mehr als eine Mod gleichzeitig ausgecheckt haben kann, oder irre ich mich da? Ich habe zwar gelesen, dass es prinzipiell auch einen Mod-Switch gibt, dieser scheint aber eher nur für Total Conversions gemacht zu sein und nicht für x-beliebige Mods mit Klassen, die in Maps des Basisspiels zum Einsatz kommen sollen. Die Variante, alle Assets dann in diesen Unterordner der Mod zu packen, fällt also vermutlich flach?
__________________
Zitat:
Schleife unser, die Du bist im Quellcode, geheiligt werde dein Schlüsselwort.
Deine Bedingung komme. Deine Anweisung geschehe, wie im RAM, so im Cache.
Unseren täglichen Zähler inkrementiere uns heute.
Und vergib uns unsere Tippfehler, wie auch wir vergeben unseren Compilern.
Und führe uns nicht zum Nullpointer, sondern erlöse uns von den Bugs.
Denn dein ist die API, GUI und CLI while(true).
Semikolon;
Crusha K. Rool ist offline   Mit Zitat antworten
Alt 24.03.2019, 09:36   #2
Ragnos.UTzone
ResidentDJ der UTzone!
 
Benutzerbild von Ragnos
 
Registriert seit: 13.11.2009
Ort: Köln
Beiträge: 2.350
Beigetretene Cups: 7
Cup Siege: 2
Downloads: 298
Uploads: 110
Standard

Theoretisch sollte es möglich sein, jeden einzelnen Mod in einen eigenen Unterordner zu verfrachten und dort wiederum die bekannte Standard-Ordnerstruktur zu pflegen. In der UT2004.ini müssen dann entsprechend die Paths eingetragen werden, zb.:

Code:
[Core.System]
Paths=../System/*.u
Paths=../Maps/*.ut2
Paths=../Textures/*.utx
Paths=../Sounds/*.uax
Paths=../Music/*.umx
Paths=../StaticMeshes/*.usx
Paths=../Animations/*.ukx
Paths=../Saves/*.uvx
Paths=../System/*.u
Paths=../MyMod1/Maps/*.ut2
Paths=../MyMod1/Textures/*.utx
Paths=../MyMod1/Sounds/*.uax
Paths=../MyMod1/Music/*.umx
Paths=../MyMod1/StaticMeshes/*.usx
Paths=../MyMod1/Animations/*.ukx
Vollkommen ungetestet ist meine Theorie, dass auch im Pfad Wildcards funktionieren müssten. Dann würde

Code:
Paths=../*/Maps/*.ut2
Paths=../*/Textures/*.utx
Paths=../*/Sounds/*.uax
Paths=../*/Music/*.umx
Paths=../*/StaticMeshes/*.usx
Paths=../*/Animations/*.ukx
reichen damit die ini nicht bei jeder neuen Mod angepasst werden muss.
Dann sollte es auch mit dem Versionskontrollsystem deiner Wahl kein Problem mehr sein dass zu managen. Aber wie gesagt, ungetestet.

Was den Mod-Switch angeht, theoretisch sollte der wohl auch mit "kleinen" Mods funktionieren, nur hast du dann einen riesigen Wasserkopf weil lauter ini's etc. dafür angelegt werden müssen.

Ich glaube am besten wäre es noch, den gesamten UT2004 Ordner für jede Entwicklungsumgebung zu kopieren und einmalig eine Ignore-Liste dafür anzulegen. Ohnehin denke ich, es macht mehr Sinn mit einer "Vanilla" Installation zu arbeiten damit dir nicht aus versehen andere Mods reinpfuschen.

Eine echte "Best Practice" kenne ich zu dem ganzen Thema jedoch nicht. Ich weiß das Epic Submission/CVS und später (ab UE3) Perforce eingesetzt hat, jedoch mussten diese ohnehin auch den Standard-Content mit versionieren.
__________________
Ragnos ist offline   Mit Zitat antworten
Alt 24.03.2019, 10:03   #3
Crusha K. Rool
Mapping Crocodile
 
Benutzerbild von Crusha K. Rool
 
Registriert seit: 03.04.2011
Ort: Südniedersachsen
Beiträge: 184
Beigetretene Cups: 0
Cup Siege: 0
Downloads: 3
Uploads: 0
Standard

Als sonstige Alternative käme mir sonst noch in den Sinn, die zu einer Mod gehörigen Dateien jeweils in einem separaten Ordner ausßerhalb der UT2004-Installation zu pflegen und dort die Checkouts/Commits vorzunehmen.
Innerhalb des Ordners gibt es dann ein Batch-Skript, das die zu einer Mod gehörenden Dateien (beispielsweise aufgelistet in einer CSV-Datei) in den UT2004-Ordner kopieren und ein weiteres Batch-Skript, das sie wieder zurück kopiert. Solange nur eine Person an der gleichen Mod arbeitet, sollte das machbar sein ohne dass man Gefahr läuft, sich verschiedene Assets in der falschen Reihenfolge zu pushen und zu pullen und somit zu überschreiben.

GreatEmerald scheint es bei einer seiner Mods zumindest so ähnlich gemacht zu haben: https://github.com/GreatEmerald/UT3Vehicles
Das Repo ist quasi nur im Ordner für das Quellcode-Package, dort liegt aber auch ein Batch-Skript, welches die restlichen Assets von externen Hostern fetcht. Dabei wären die Assets dann allerdings nicht versioniert.
__________________
Zitat:
Schleife unser, die Du bist im Quellcode, geheiligt werde dein Schlüsselwort.
Deine Bedingung komme. Deine Anweisung geschehe, wie im RAM, so im Cache.
Unseren täglichen Zähler inkrementiere uns heute.
Und vergib uns unsere Tippfehler, wie auch wir vergeben unseren Compilern.
Und führe uns nicht zum Nullpointer, sondern erlöse uns von den Bugs.
Denn dein ist die API, GUI und CLI while(true).
Semikolon;

Geändert von Crusha K. Rool (24.03.2019 um 10:05 Uhr)
Crusha K. Rool ist offline   Mit Zitat antworten
Alt 24.03.2019, 11:26   #4
Ragnos.UTzone
ResidentDJ der UTzone!
 
Benutzerbild von Ragnos
 
Registriert seit: 13.11.2009
Ort: Köln
Beiträge: 2.350
Beigetretene Cups: 7
Cup Siege: 2
Downloads: 298
Uploads: 110
Standard

Bei Git könntest du mit Branches arbeiten. UT2004 Stanardihnalte auf die Ignore und dann einfach den Branch wechseln. Das sollte dann sogar ganz gut Multiuser-fähig sein und UT merkt davon auch nichts.

Allerdings will ich keine Aussage zur Performance mit großen Binärdaten machen, wobei sich das nach heutigen Maßstäben bei UT2004 alles noch im Rahmen befinden sollte.
__________________
Ragnos ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Geht es mit der UT Entwicklung weiter ? Economic "New" Unreal Tournament 4 25.07.2018 16:17
Update zur Unreal Tournament Entwicklung Ragnos News 74 06.07.2014 17:42
Die Entwicklung der Unreal Tournament Spiele Sly. Off - TopiC 13 13.06.2010 17:07


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:20 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
CopyRight-Licence © 2000 - 2018 by UTzone.de