It appears that the Github download has some dependencies missing. So in order to get that to work without source code changes (I’m using version 4.8 right now), you’ll need the following:
- A blueprint project named “BlankProject” and place it in …\Samples\Sandbox\BlankProject. (that fulfills a GUBP check)
- A code cpp project that is promotoable. You can make the project Promotable by inserting the following into target.cs file (this fulfills the check for Promotable or shared hosts)
public override GUBPProjectOptions GUBP_IncludeProjectInPromotedBuild_EditorTypeOnly(UnrealTargetPlatform HostPlatform)
{
var Result = new GUBPProjectOptions();
Result.bIsPromotable = true;
return Result;
}
- You’ll need a build.properties file in …\Engine\Build\build.properties. The data in there doesn’t get used by these nodes, so it can be blank.
- Make sure that the UE4Games.uprojectdirs file has the paths for templates, the blankProject and the promotable project. Remember this searches one level deep for the *.uproject file.
I believe that is all.
I ended up writing a custom node script to avoid copying every single file over that overwrote already up to date files and to remove some dependencies that I don’t need to speed up time.
The build process is complicated as what was said above, so I would recommend reviewing the Nodes GatherRocket and all the dependencies, which are GUBP.VersionFilesNode, GUBP.ToolsForCompileNode, GUBP.RootEditorNode, Rocket.StripRocketEditorNode, GUBP.GamePlatformMonolithicsNode, Rocket.StripRocketMonolithicsNode, GUBP.ToolsNode, GUBP.MakeFeaturePacksNode, Rocket.StripRocketToolsNode, Rocket.BuildDereivedDataCacheNode, and Rocket.FilterRocket. These will give you an idea of what is happening. There are some other catches in GUBP script with perforce settings and github, but I didn’t get into those.
The RunUAT gubp command with a specified node, will run that node and dependencies. You can pass in -OnlyNode parameter which will not run the dependency nodes. Also -NoDDC param will skip the Building Derived Data Cache if you don’t need that. Its kind of an optional thing to have, but mainly used when you want a shared DDC or speed up loading assets for others.
@Kalms
What we have right now for the distribution are two repositories. One for editing the source and having the build machine compile and committing those to the second repository which is the distribution for the team. Not quite sure if this will stay because it takes like 20 minutes for us to even svn::update changes from the distribution.
The end result for GatherRocket creates a local build directory of Rocket and all that is in there is the distribution. They do have a PublishRocketNode which does zip it up in case you decide to to that.
I’m not sure what Version Source Control you are using, they do have some perforce and git settings in the scripts. I haven’t looked at them because we are using subversion.
The install is mainly getting that distribution that the rocket output and run the editor. When running the editor, it should register the build path to a registry key which gives an engine associate ID. (Windows HKLM\Software\EpicGames\UnrealEngine\Builds). There is also the UnrealVersionSelector.exe that can be run to register build path, however, you will need to include this in the filter (…\Engine\Build\InstalledEngineFilters.ini), so the rocket build will copy it over. I believe the UnrealVersionSelector will register the keys for doing the context menu (switch version, generate project files). You can associate the game project *.uproject with the installed engine either using the context menu (right click the *.uproject) switch version. That should pop up a list of builds and just select the one to associate with. Or by running Editor you can choose the project through the Project Browser window and select the *.uproject. This will probably give you a message saying it was build in different engine, from there you should be able to choose more options and convert within. Once the *.uproject file is registered to the installed engine, just double clicking should open the editor and the game project.
Anyways, I hope that helps.