Break Unreal engine dependence

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 are using Tortoise SVN, but shouldn’t make a difference. The only things uploaded to the SVN for programmers is:

MyProject.uproject
[Config]
[Content]
[Source]

All other files and folders are SVN ignored. Should prevent a lot of conflicts.

we make binaries for artists so they don’t need to compile anything locally, loads faster than having to constantly compile and run in debug

Confused - Are you using git and perforce(or was that a typo)?

Anyway, you only need to use Perforce - both artists and developers.

Make sure to setup the P4 Typemap correctly - follow
https://docs.unrealengine.com/latest…trol/Perforce/

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.

Finally, if you are modifying engine code, make sure developers create an an InstalledBuild.
https://docs.unrealengine.com/latest…html#bookmark1

This will fix the unequal engine version issue

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).

P4 + NiftyPerforce is the winning combo IMO.

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

If you wish to compile the engine yourself and want to share it on a team, you should make an InstalledBuild

https://docs.unrealengine.com/latest…html#bookmark1

An Installed Build is a fully featured engine build that can be redistributed to quickly get your team up and running with the engine.