Best practices for multiple projects

One of the studios I’m working with has multiple small UE4 projects ranging the gambit from content only to blueprint only to C++ projects. I’m trying to reorganize them to make upgrading engine versions / sharing code / content easier. They are using P4 for source control and I have a basic plan for making everyone’s life easier. One caveat: UGS can’t be used due to network restrictions. It just can’t… wish it could but it can’t. so don’t go there.

Their current method of development utilizes some stream ugliness that isn’t sustainable so I’ve decide to use install builds distributed via P4. The idea is that in P4 there is a UE4 folder that holds a development UE4 build where we merge in new versions or make any engine level changes". An installed build is created from that version and check in to P4 as the UE4Editor build. All project development happens using the editor build. This ensues we can vet the build being used by artists and designers and don’t run in to versions issues during normal work. For the most part it’s working great. Devs only have major syncs when a major build comes out, our source tree is clean and we have a solid upgrade path for taken new engine drops.

There is just a single problem that I’ve run in to so far. We also have several engine plug-ins in development that are used by various projects. Development on the plug-ins occurs in against the development UE4 build since you can’t modified the engine in an installed build. The down side is whenever we want to deploy a new plugin version we have to deploy a new engine build. The plugins are used in multiple projects so moving them project side isn’t really feasible.

Anyone have a better way for handling multiple development like this? I’ve have looked at rebuilding just the plugins but so far I’ve been unsuccessful at getting “BuildPlugin” to work. I’d love to head some other ideas or feedback on how others are handing this.