Para muitos de nós - especialmente trabalhando em jogos menores -, você absolutamente deve ter ativos no mesmo repositório que sua fonte .
A sugestão de que os ativos pertencem a um repositório separado faz sentido apenas para conjuntos muito grandes de ativos ou para conjuntos um pouco grandes de ativos quando há um limite de mecanismo / dados claramente definido. A menos que haja uma razão técnica específica para isso - é um mau conselho!
Você deseja que seu controle de versão se comporte como controle de versão . Você deseja retroceder e avançar rapidamente, ramificar e mesclar revisões e ainda ter seu jogo funcionando. E seu código e ativos vai depender um do outro.
Por exemplo: Seu código pode esperar ser capaz de definir um parâmetro em um sombreador, e esse sombreador pode depender da existência de uma textura. Ou talvez o formato dos dados dos seus níveis possa depender de uma versão específica do código do seu jogo.
Quase certamente ficará confuso. E você tem coisas melhores a fazer do que tentar mantê-lo organizado.
Agora, como Mike Wagner comentou ( nesta resposta ) - você não deseja nem precisa de todas as versões "em andamento" de seus ativos sob controle de versão! Apenas a versão final / de trabalho, conforme usada pelo seu código, serve - geralmente é isso que você exporta da sua ferramenta.
(Embora se você deseja controlar a versão das versões em andamento dos ativos - tudo bem. E adequado para um repositório separado. Pessoalmente, acho que basta uma boa organização de pastas e um sistema de backup adequado.)
Dito isto - às vezes é bom ter a opção de manter os ativos "em andamento" sob controle de versão. Normalmente, isso envolve ter um pipeline de conteúdo que possa lidar com qualquer etapa de 'exportação' para você - por exemplo: nivelar uma imagem de várias camadas para uma única textura.