Project Version Control ?

Hello,

I’m new to Unreal development.

What is the recommended/established way to version control projects?

I’m currently thinking:


%UserProfile%\Documents\Unreal Projects\%ProjectName%\         (git repository here)

Ideally I would also like to have separate git submodules under Content\ for each map.


%UserProfile%\Documents\Unreal Projects\%ProjectName%\Content\MapA.pack\         (git repository here, submodule)
%UserProfile%\Documents\Unreal Projects\%ProjectName%\Content\MapA.pack\Architecture\
%UserProfile%\Documents\Unreal Projects\%ProjectName%\Content\MapA.pack\Audio\
%UserProfile%\Documents\Unreal Projects\%ProjectName%\Content\MapA.pack\Maps\
%UserProfile%\Documents\Unreal Projects\%ProjectName%\Content\MapA.pack\etc\
%UserProfile%\Documents\Unreal Projects\%ProjectName%\Content\CharA.pack\         (git repository here, submodule)
%UserProfile%\Documents\Unreal Projects\%ProjectName%\Content\CharA.pack\Animations\
%UserProfile%\Documents\Unreal Projects\%ProjectName%\Content\CharA.pack\Audio\
%UserProfile%\Documents\Unreal Projects\%ProjectName%\Content\CharA.pack\Character\
%UserProfile%\Documents\Unreal Projects\%ProjectName%\Content\CharA.pack\etc\

The problem with doing this is that (I assume) the engine will only search for audio data in Content\Audio.
It would also need to add Content*.pack\Audio\ as a search paths for audio data.
This would work by looking for folders with the “.pack” suffix (or whatever choice of suffix) in Content\ and add it’s subfolders to search paths.

The advantages of this are:

  • Nice clean separation of content, useful if working on a single map.
  • Get to version assets, but keep the root repository as purely code.
  • Content submodule could be shared to multiple projects.
  • Uses git, not subversion of whatever.
  • Git can choose to only init a subset of submodules, if you have someone working on only one map you don’t need to init the other map submodules.

Does anyone have any comments or better suggestions for version control of projects and assets?
Can anyone more familiar with UE4 see any issues with implementing this idea?

Thanks

Hi! I had a similar question on answerhub but without the submodule problem. I think is a good starting point to set a Git repository for an Unreal project.