Feb. 25, 2020, 11:25 a.m.
I hear stories about people not using a Version Control System ("VCS") and how they are having an issue with new code, lost all of their work, or just don't use one at all. I remember back in 2014 (I believe) I joined a team that was working on an FPS game. I quickly found out that they were using Google Drive as a VCS. lol wut? This happened again last year in 2019 when I joined a team that was working on a survival game - they were also using Google Drive. The team behind the survival game switched to Git after I had joined, but even Git isn't the best for a UE4 project.
What is Version Control?
A version control system (VCS or SCM) is a software that permits multiple users to work on files together. Not only does a VCS maintain a history of each file that's added so that it can be reverted if necessary, but it even allows users to edit the same file simultaneously without overwriting other users work. (unless a newer commit overwrites a previous commit)
There are a lot of VCS, but we're only going to talk about the popular ones.
- Git is 100% free with the exception of self-hosting (if you rent a server that is)
- Perforce is free for 5 users and then it costs - it's expensive after those 5 users
- PlasticSCM has free and paid plans
Git is a great VCS, but for only source files. A thing called Git LFS exists, but I wouldn't recommend it with a UE4 project.
Perforce is the industry standard for gamedev and is implemented very well with UE4.
PlasticSCM... I never heard about it until I read about Garry Newman using it on his blog. I started using it recently for a VR project that I got hired to work on and I can say that it's certainly not bad. I think it's on par with Perforce - it's also cheaper. I did ask in a discord full of PlasticSCM users and they all said they choose it due to the UI being nice or it being simple to use. Check out the plasticscm comparison to other VCS.
When it comes down to it, use whatever works for you and your team, just make sure you're using a VCS.
until next time