They Know We Know - POST MORTEM #1 - Working with a team of 8
Hello everyone :handsplayed: , i'm @gregoired, working on the code of our latest jam entry They Know We Know, a short narrative game fully built in Unreal Engine 4 where you play a person getting trapped in conspiracy theories.
Play it now on Windows or MacOs

I'd like to talk a little bit about our process with working on this game, basically the tools and the organization we had to rely on.
Working with 8 people remotely
I just want to first state that almost none of us work in the game industry, but come from other creative fields, such as VFX, CG etc... Some of us were a little bit knowledgable about Unreal Engine and were able to help others. I can say I'm pretty knowledgable about Unity myself, and this jam was a reason to dive a little bit about Unreal too. We also didn't have experience working together.
As covid is still a thing, we were working remotely, relying on Source Control and a VPN to be able to share files. A Discord channel was also setup, which was very helpful, to keep in touch and be able to stay organized in this short amount of time.
Source Control
Source control is the bread and butter of a organized workflow if you are a team of developers or just a solo one. It makes the process of sharing files and updates so much easier !
As I'm used to work on Unity (relying on text files) or Web based projects, I've never looked at anything but Git for my projects a a source control. Problem is Unreal Engine files are binaries, which make Git essentially useless outside of source code as it stores diff on text files. Solution was either to use another Source control, such as Perforce, which handles binaries in a better way, or use Git LFS which is a plugin for Git, handles binaries and is able to lock files on remote, like Perforce.
I've looked quite a bit into Perforce, but didn't want to dive in a system I didn't know much about, and it was not free for more than 5 users. So I decided to stick with Git. Two problems
- Git LFS with Unreal is still in Beta, and file locking is not supported out of the box, we had to use this plugin instead.
- Github is charging quite a bit if you use LFS, so I had to host the remote server myself. After quite some headaches trying to install Gitlab on my private VPS, I settled with Gitea which was much lighter and easy to install. It also came with a nice looking website interface, with tickets, projects, releases etc... like Github have. I recommand it for small private repo.
We had to set up a VPN to work on the same local network, in order to use Unreal Multi User editing tools for example (more in another postmortem), and access my small NAS storage, to be able to shares files outside of the source control. We took a little bit of time to setup the system for everyone, which was a little bit of a headache itself, but fortunately, everything was setup on Friday before the big day !
So what was the experience working with Git LFS+UE ?
File locking was working as expected. Only thing is to be sure to not use Git branches as LFS files are not branched, which was a little bit frustrating as I was used to use branches in a extensive way. Plugin was very slow though, as it tries to "check in" files for a good 30 seconds, before sending it to remote. The file locking/unlocking (or check out/check in) was not always safe as well, as we experiencied errors comitting files, as well. Best workflow to send our work to remote was to close unreal, stash changes, pull other people work, unstash, relaunch Unreal and finally commit through Unreal, to be able to unlock files. I definitly think the slow check in/check out could be improved, and also making it less error proof. I hope Unreal will pick it up again and continue working on it.
People were frustrated the first day, but went along with it and were able to work together, in different scenes because unlike Unity, Unreal make it very difficult to resolve merge conflicts.
We will talk about our experience working with Unreal Multi User Editing in a next post. In the meantimes, dont forget to visit us and play our game using the link below :rocket: !