So a bit of a frustrating, having multiple coders working on a project is causing many headaches…
For artists we do a static build we submit to perforce of the Unreal engine
we then use a custom launcher (simple bat file) to launch this engine + project , so we can easily update Engine versions on major releases
Now comes the weirdness… depending which coder compiles the submitted engine version, has to also submit the uprojects .module and .target files, and other coders have to revert these files and only submit the games .dll
the annoying part is that even though we have synced to identical git commit hashes, each Unreal engine build decides “I am unique!!”
some notes:
we do not make any changes to Unreal Engine itself, makes updating versions easier
Specifically uassets should be locked with +l, but the binary exe and dll need to have +w so that they are writable on clients. This will prevent developers from locking each others binaries when compiling.
To re-iterate what OptimisticMonkey said, use only one source control - having two is going to cause you no end of headaches. I’ve done Git+Perforce projects in the past and it was a complete NIGHTMARE, especially once you try to automate any build process (We need to build this binary from a week ago so now I have to both sync both Git and Perforce to a certain label/hash and then rebuild things vs just syncing to a specific changelist in P4).
the only thing git is being used for is the source code to Unreal Engine, we don’t make any changes so anytime there is an update its easier to push it to our game
perforce is used for everything project related, source code // engine // content
I was just trying to share the fact the engine makes forceful dependencies to a very specific engine, its unique to the machine that compiles it, and anyone who didn’t compile the specific binary of Unreal has to revert the .modules and .target file in the project
this wasn’t the case before, since I could swap out engine versions before and point any engine to a project and it would try to load, instead of complaining dll’s are out of date