Für viele von uns - insbesondere für kleinere Spiele - sollten sich die Assets unbedingt im selben Repository wie Ihre Quelle befinden .
Der Vorschlag, dass Assets in ein separates Repository gehören, ist nur für sehr große Assets oder für etwas größere Assets sinnvoll, wenn eine klar definierte Engine- / Datengrenze vorliegt. Es sei denn, es gibt einen bestimmten technischen Grund dafür - es ist ein schlechter Rat!
Sie möchten, dass sich Ihre Versionskontrolle wie die Versionskontrolle verhält . Sie möchten in der Lage sein, Revisionen vor- und zurückzuspulen, zu verzweigen und zusammenzuführen und trotzdem Ihr Spiel zum Laufen zu bringen. Und Ihr Code und Assets werden voneinander abhängig sind .
Beispiel: Ihr Code erwartet möglicherweise, dass er einen Parameter für einen Shader festlegen kann, und dieser Shader hängt möglicherweise von einer vorhandenen Textur ab. Oder vielleicht hängt das Datenformat Ihrer Levels von einer bestimmten Version Ihres Spielcodes ab.
Es wird mit ziemlicher Sicherheit chaotisch. Und Sie haben bessere Dinge zu tun, als zu versuchen, alles in Ordnung zu halten.
Nun, wie Mike Wagner kommentierte ( zu dieser Antwort ) - Sie wollen oder brauchen nicht alle "in Bearbeitung" -Versionen Ihrer Assets unter Versionskontrolle! Nur die endgültige / funktionierende Version, wie sie von Ihrem Code verwendet wird, reicht aus - oftmals exportieren Sie diese aus Ihrem Tool.
(Auch wenn Sie die aktuellen Versionen von Assets versionieren möchten - das ist in Ordnung. Und gut für ein separates Repository geeignet. Ich persönlich finde, dass eine gute Ordnerorganisation und ein ordnungsgemäßes Backup-System ausreichen.)
Abgesehen davon - es ist manchmal schön, die Option zu haben, nur "in Bearbeitung" Assets unter Versionskontrolle zu halten. In der Regel müssen Sie über eine Inhaltspipeline verfügen, die alle Exportschritte für Sie erledigt. Beispiel: Reduzieren Sie ein Bild mit mehreren Ebenen auf eine einzige Textur.