Ist es üblich, nicht nur den Quellcode, sondern alle Assets, Texturen, Grafiken, Dokumentationsdateien usw. im Git-Repository zur Versionskontrolle zu verwalten? Zum Beispiel möchte ich die alte Version der Textur zurückbekommen. Wenn es sehr schlecht ist, welche Tools verwenden Sie für die Versionskontrolle von Assets und anderen Dingen?
assets
version-control
git
Edward83
quelle
quelle
Antworten:
Ich würde sagen, das ist eine sehr gute Praxis. Die Quellcodeverwaltung sollte für Quelle und Vermögenswerte verwendet werden. Sie können sich das wie ein Backup vorstellen. Sie möchten in der Lage sein, alles, was zum Erstellen Ihres Spiels erforderlich ist, aus der Quellcodeverwaltung wiederherzustellen.
Ich habe eine Frage zum Speichern von Assets in einem Repository verknüpft . Es gibt einige Repositories, die besser als andere zum Speichern von Kunst funktionieren. Sie ermöglichen es Ihnen, die Kunst zu "differenzieren" und zu sehen, was sich geändert hat. Andere behandeln die Assets nur als Binärdaten, daher müssen Sie sie überprüfen, um festzustellen, was anders ist. Dies bedeutet auch, dass Sie das gesamte Asset hochladen müssen, wenn es sich ändert, da das Repository nicht "wissen" (analysieren) kann, was sich zwischen den Versionen geändert hat.
Ich speichere alles im Repository. Als ich meinen neuen Laptop bekam, konnte ich mein Repository überprüfen und mein Spiel erstellen, ohne irgendwelche Assets von irgendwo anders kopieren zu müssen. Das heißt, ich speichere auch die Bibliotheken, Assets und die Quellcodeverwaltung von Drittanbietern in meinem Repository.
quelle
Git eignet sich nicht für Nicht-Textdateien. Das Klonen eines Git-Repos erfordert das Herunterladen aller historischen Versionen einer Datei, es sei denn, Sie verwenden eine große Dateierweiterung (nicht standardmäßig, oft nicht von GUIs unterstützt) oder spezielle Befehle (dies muss ein Git-Guru sein). Gleiches gilt für die meisten DVCS-Systeme. Für eine Textur, ein Modell oder einen Audioclip bedeutet dies, dass viele Kopien einer sehr großen Datei abgerufen werden. 1 GB Assets können leicht 200 GB historische Revisionsdaten sein, und mit git können Sie alles herunterladen, wenn Sie ein neues Repo klonen, und alle Zwischenrevisionen herunterladen, wenn Sie die neuesten Daten abrufen. Dies wird zu einem großen Engpass, wenn Sie Produktionsverzögerungen am wenigsten tolerieren können.
Subversion, Perforce usw. sind bessere Optionen für Assets, da nur die gewünschte Version heruntergeladen werden muss (normalerweise die neueste). Sie können sie nur für Assets und git für Code verwenden oder sie auch als Quelle verwenden. Perforce verfügt über einige Funktionen, mit denen es sich wie ein sehr klobiges DVCS verhält, und ist meiner Erfahrung nach besser als die SVN-Funktionalität (wenn auch viel komplexer). Aufgrund der Kosten werden Sie jedoch wahrscheinlich Subversion verwenden.
Die meisten Content-Profis benötigen DVCS kaum, und einige haben ohnehin Probleme mit den Grundlagen des klassischen VCS. Satteln Sie nicht mit git. Oder Mercurial, DARCS usw.
quelle
Es ist eine gute Praxis, selbst als Künstler, wenn Sie an einem Projekt arbeiten, gibt es in der Regel eine Form der Versionskontrolle, Dateibeschädigung oder Fehler, ohne dass Künstler der Quellcodeverwaltung dazu neigen, Revisionen zu speichern, was sowieso nur ein großes Durcheinander ist.
Ein Beispiel aus der realen Welt, das Sie sehen können, sind die offenen Filmprojekte, die mit Blender (Big Buck Bunny, Durian usw.) erstellt wurden.
Die Art-Pipeline für ein Spiel ist mehr oder weniger dieselbe, außer dass es möglicherweise einen Build-Schritt für die Assets selbst gibt, um eine Konvertierung von großen Fettdaten in ein motorspezifisches Format durchzuführen, z. B. Texturkomprimierung und Modellformatkonvertierung.
Einige Tools, wie GitHub, bieten sogar nette Bildvergleichstools und ähnliches, was viel besser ist als der Vergleich eines binären Blobs.
Da ein Assets-Repository absolut riesig sein kann, ist es meine / unsere Präferenz, ein separates Assets-Repository zu führen, das ein Submodul im Projekt-Repository ist. Sie möchten keine Gigabyte an Assets abrufen, wenn Sie beispielsweise nur die Quelle verzweigen möchten.
quelle