Para muchos de nosotros, especialmente trabajando en juegos más pequeños, absolutamente debe tener activos en el mismo repositorio que su fuente .
La sugerencia de que los activos pertenecen a un repositorio separado solo tiene sentido para conjuntos de activos muy grandes, o para conjuntos de activos algo grandes cuando hay un límite de motor / datos claramente definido. A menos que haya una razón técnica específica para ello, ¡es un mal consejo!
Desea que su control de versión se comporte como el control de versión . Desea poder rebobinar y avanzar rápidamente y ramificar y fusionar revisiones y aún así tener su juego funcionando. Y su código y activos serán dependen unos de otros.
Por ejemplo: su código podría esperar poder establecer un parámetro en un sombreador, y ese sombreador podría depender de que haya una textura allí. O tal vez el formato de datos de sus niveles dependa de una versión particular de su código de juego.
Es casi seguro que se ensuciará. Y tiene mejores cosas que hacer que tratar de mantenerlo ordenado.
Ahora, como comentó Mike Wagner ( en esta respuesta ): ¡no quiere ni necesita todas las versiones "en progreso" de sus activos bajo control de versión! Solo la versión final / de trabajo, como la usa su código, servirá, a menudo esto es lo que exporta desde su herramienta.
(Aunque si desea controlar la versión de las versiones en progreso de los activos, está bien. Y se adapta bien a un repositorio separado. Personalmente, creo que una buena organización de carpetas y un sistema de respaldo adecuado es suficiente).
Dicho esto, a veces es bueno tener la opción de mantener activos "en progreso" bajo el control de versiones. Por lo general, esto implica tener una canalización de contenido que pueda manejar cualquier paso de 'exportación' por usted, por ejemplo: aplanar una imagen de varias capas a una sola textura.