Hey guys, so I’m making a small game for my senior project (more like a single level) and I wanted to setup source control so I can share it with some helpers, but the thing is, source control confuses me so much!!! I’ve looked everywhere on the internet and it only gets more confusing, so some questions:
Am I not able to use Source Tree? That’s what my Mentor uses for Unity.
Am I not able to use Bitbucket? That’s what my Mentor uses for Unity.
In Source Control login, what do I use? Git, Subversion, Perforce?
Do I have to make a server?
How do I connect this to something like Bitbucket?
Neither Source Tree nor BitBucket (nor Mercurial, for that matter) is particularly successful in industry, compared to Git, Subversion, and Perforce. Thus, if you want to learn the tools you’re likely to use once out of academia, you should focus on those.
However, you can use whatever you want, as long as it has a command-line client. To do this, just set up your unreal project folder as a source controlled folder, and use the add/commit/push functions of your regular source control system from the command line (or from Windows Explorer.)
You don’t have to use the built-in source control integration in the Unreal Editor. Doing so is mainly useful for systems like Perforce that use locking to avoid conflicting edits of binary assets.
This is one of the main reasons Perforce still has a strong grip on game development – Git or Subversion aren’t nearly as good at preventing binary conflicts, which artists would run into all the time!
When you set up source control, you’ll want to exclude the “Saved” and “Intermediate” directories in the project, as those are used by the Unreal build system, and can be re-generated from the other source data.
If you also use Visual Studio for C++ development, you’ll want to ignore the .ilk, .plg, .suo, .obj, .pdb, and similar build files created by that compiler. Easiest is to ignore all folders named “Debug” “Release” “Win32” “x64” “bin” and “obj”.