Dla wielu z nas - zwłaszcza pracujących na mniejszych grach - absolutnie powinieneś mieć zasoby w tym samym repozytorium, co twoje źródło .
Sugestia, że zasoby należą do oddzielnego repozytorium, ma sens tylko w przypadku bardzo dużych zestawów zasobów lub nieco dużych zestawów zasobów, gdy istnieje jasno określona granica silnika / danych. Chyba że istnieje konkretny powód techniczny - to zła rada!
Chcesz, aby kontrola wersji zachowywała się jak kontrola wersji . Chcesz mieć możliwość przewijania do tyłu i przewijania do przodu oraz rozgałęziania i scalania wersji, a jednocześnie nadal działać. Twój kod i zasoby będą od siebie zależeć.
Na przykład: Twój kod może oczekiwać, że będzie mógł ustawić parametr modułu cieniującego, a ten moduł cieniujący może zależeć od obecności tekstury. A może format danych twoich poziomów może zależeć od konkretnej wersji twojego kodu gry.
Niemal na pewno będzie bałagan. I masz lepsze rzeczy do roboty niż starać się utrzymać porządek.
Teraz, jak skomentował Mike Wagner ( do tej odpowiedzi ) - nie chcesz ani nie potrzebujesz wszystkich „w toku” wersji swoich zasobów pod kontrolą wersji! Zrobi to tylko wersja ostateczna / robocza używana w kodzie - często to właśnie eksportujesz z narzędzia.
(Chociaż jeśli chcesz kontrolować wersje bieżących wersji zasobów - to dobrze. I dobrze nadaje się do osobnego repozytorium. Osobiście uważam, że dobra organizacja folderów i odpowiedni system tworzenia kopii zapasowych wystarczą).
To powiedziawszy - czasem miło jest mieć możliwość po prostu trzymać zasoby „w toku” pod kontrolą wersji. Zazwyczaj wiąże się to z posiadaniem potoku treści, który może obsłużyć wszystkie kroki „eksportowania” - na przykład: spłaszczenie obrazu wielowarstwowego do pojedynczej tekstury.