Для многих из нас - особенно для небольших игр - у вас обязательно должны быть ресурсы в том же хранилище, что и у вашего источника .
Предположение о том, что активы принадлежат отдельному репозиторию, имеет смысл только для очень больших наборов активов или для несколько больших наборов активов, когда существует четко определенная граница механизма / данных. Если для этого нет конкретной технической причины - это плохой совет!
Вы хотите, чтобы ваш контроль версий вел себя как контроль версий . Вы хотите иметь возможность перематывать и ускорять перемотку вперед, а также ветвиться и объединять ревизии, и при этом ваша игра должна работать. И ваш код и активы будут зависеть друг от друга.
Например: ваш код может ожидать установки параметра в шейдере, и этот шейдер может зависеть от наличия текстуры. Или, возможно, формат данных ваших уровней может зависеть от конкретной версии кода вашей игры.
Это почти наверняка станет грязным. И у вас есть дела поважнее, чем пытаться поддерживать порядок.
Теперь, как прокомментировал Майк Вагнер ( об этом ответе ), вы не хотите или не нуждаетесь во всех «находящихся в процессе» версиях ваших активов под контролем версий! Подойдет только окончательная / рабочая версия, используемая вашим кодом - часто это то, что вы экспортируете из своего инструмента.
(Хотя, если вы хотите контролировать версии текущих версий ресурсов - это нормально. И хорошо подходит для отдельного репозитория. Лично я считаю, что достаточно хорошей организации папок и правильной системы резервного копирования.)
Это, как говорится, иногда приятно иметь возможность просто «активировать» активы под контролем версий. Как правило, это подразумевает наличие конвейера контента, который может обрабатывать любые шаги «экспорта» для вас, например: выравнивание многослойного изображения в одну текстуру.