als ich mit der Adventure-Programmierung anfing, habe ich überhaupt keine Versionskontrolle verwendet.
Statt dessem gab es im Stammordner meines Spiels einen Ordner "_Assets", und darin lagen alle Assets (Sprites, Hintergründe usw.) und ihre jeweiligen Quelldateien. Für Backups und Zwischenstände kopierte ich einfach den gesamten Stammordner mit allen Dateien auf einen USB-Stick in einen Ordner mit passendem Namen ("MeinSpiel/1999-12-04a/" und so weiter). Also die ganze Latte mit allen Programmen, Baukastendateien und allen Assets. Heutzutage haben die Sticks ja so viel Speicherplatz, dass ein einziger Stick Platz für viele Speicherstände bietet, selbst wenn man alle Dateien blind kopiert. Ich lief nie in Gefahr, mehr als ein paar Stunden Arbeit zu verlieren (zumal der Rechner selbst automatische Backups fährt). Für den typischen Gamejam war das jedenfalls ausreichend.
Problem ist nur, inzwischen habe ich eine ganze Reihe Adventures geschrieben, und dieses einfache System ist rapide an seine Grenzen gelangt.
Mittlerweile sieht es so aus:
- Die verschiedenen Abenteuer haben (natürlich) jeweils ihre eigenen Assets
- aber sie teilen sich auch Assets, insbesondere Hintergrundmusik, Sounds, Schriftarten, Cursor-Sprites und Character-Sprites.
- Die Adventures sind in unterschiedlichen Baukastenversionen geschrieben worden.
- Gemeinsam verwendete Assets entwickeln sich in anderer Geschwindigkeit als die Spiele, die sie jeweils verwenden. Diese Assets haben sich zu eigenständigen Einheiten mit separatem Versionsfortschritt entwickelt.
- Spiele und Assets sind in unterschiedlichen Baukastenversionen erstellt. Unterschiedliche Entwicklungsstände lassen sich aber nicht frei mischen. (Das mag ein Spezifikum des Baukastens, AGS, sein). Wenn ich GUIs mit einer bestimmten Baukastenversion abspeichere, dann können ältere Baukastenversionen diese nicht mehr laden. Wenn ich also nicht ein ganzes Spiel hochversionieren will, nur um eine kleine Änderung vorzunehmen, muss ich verschiedene Speicherversionen nachhalten.
- Wegen Platzproblemen sind die gemeinsam verwendeten Assets inzwischen an ganz anderer Stelle als die eigentlichen Spiele gelandet, sogar auf einem anderen Volume.
Nur die jeweiligen Spiele unter Quellcodeverwaltung (dann wohl git) zu stellen, das reicht auch nicht: Wie halte ich dann die gemeinsam genutzten Assets dazu synchron -- die auch noch an ganz anderer Stelle liegen?
Die gemeinsam genutzten Assets in die jeweiligen Spiele zu kopieren, das ist auch nicht das Wahre. Dann werden die Kopien früher oder später geändert, und die Änderungen gehen bei den Originalen verloren.
Etwas muss her, ich bin mir nur unschlüssig, was konkret.
Mit was für einem System behaltet Ihr denn den den Überblick über Eure Spiele und Assets?