Per molti di noi - specialmente lavorando su giochi più piccoli - dovresti assolutamente avere risorse nello stesso repository della tua fonte .
Il suggerimento che gli asset appartengano a un repository separato ha senso solo per insiemi di asset molto grandi o per insiemi di asset piuttosto grandi quando esiste un confine motore / dati chiaramente definito. A meno che non ci sia una ragione tecnica specifica per questo - è un cattivo consiglio!
Si desidera che il controllo della versione si comporti come il controllo della versione . Vuoi essere in grado di riavvolgere, avanzare rapidamente, ramificare e unire le revisioni e far funzionare il gioco. E il codice e le attività saranno dipendono l'uno dall'altro.
Ad esempio: il codice potrebbe prevedere di essere in grado di impostare un parametro su uno shader e tale shader potrebbe dipendere da una trama presente. O forse il formato dei dati dei tuoi livelli potrebbe dipendere da una particolare versione del tuo codice di gioco.
Quasi sicuramente diventerà disordinato. E hai cose migliori da fare che cercare di mantenerlo in ordine.
Ora, come ha commentato Mike Wagner ( su questa risposta ), non vuoi o non hai bisogno di tutte le versioni "in progress" delle tue risorse sotto il controllo delle versioni! Solo la versione finale / funzionante, come utilizzata dal tuo codice, farà - spesso questo è ciò che esporti dal tuo strumento.
(Anche se si desidera controllare la versione delle versioni in corso degli asset, va bene. E ben si adatta a un repository separato. Trovo personalmente che una buona organizzazione delle cartelle e un sistema di backup adeguato siano sufficienti.)
Detto questo, a volte è bello avere l'opzione di bloccare le risorse "in progress" sotto il controllo della versione. In genere ciò implica avere una pipeline di contenuti in grado di gestire qualsiasi passaggio di "esportazione", ad esempio l'appiattimento di un'immagine multistrato su una singola trama.