Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleConnect to Office Resources using RDP

You can connect directly to an Incredibuild agent in your office using RDP. If you use the agent in your office as the initiator, you will be using your office network and will therefore not be depending on your home network connection. Make sure you are not relying on helper agents that are outside of the office such as other colleagues working from home.

Image Modified
Expand
titleUse VDI Resources

Virtual Desktop Infrastructure (VDI) is defined as the hosting of desktop environments on a central server. It is a form of desktop virtualization, as the specific desktop images run within virtual machines (VMs) and are delivered to end clients over a network.

Image RemovedImage Added

Since VDI can be accessed at home, but the resources exist in your office or in the cloud, the dependency on your home network is greatly reduced.

Expand
titleUse Cloud Resources

You can use the cloud to deploy helper agents on demand using Incredibuild's cloud solution. This solution will only work if your home network connection is strong. It is recommended in the following cases:

  • You have a strong home network connection, but the helper agent machines may not have good connections (other colleagues at home).

  • You have a strong network connection, but you are required to connect to helper agents via a VPN that does not have a strong network connection.

In these cases, you can use your own machine as the initiator and leverage as many agents as you need in the cloud.

Image Modified

Expand
titleUse Multiple Personal Devices at Home

If none of the above solutions are possible, and you have more than one machine at home, you can create a mini-home network. This will allow you to leverage the power of idle cores on your machines to speed up your builds.

  1. Install Incredibuild on all of your home machines

  2. Install the Coordinator on one of your machines

...

In order to maximize your performance when working from home, we recommend using the following best practices if they apply to your situation.

Expand
titleOptimizing Unreal Engine from Home

Note: The following recommendations were tested and verified with Unreal Engine 4.24, and an asymmetrical bandwidth connection of 100 Mbps down, 5 Mbps up.

Using Unreal Engine from home with a limited upload bandwidth may result in a significant performance decrease. There are two main reasons for this decrease in performance:

  • Unreal Engine creates in each build very large PCH files.

  • Links for the target toolset (such as Visual Studio compiler toolset) are running remotely, syncing many OBJ and PDB files to remote machines.

These attempts to sync large PCH, OBJ, and PDB files to remote machines over a very limited upload bandwidth, slow down the task execution dramatically, and can even cause abrupt termination of tasks and disconnections. Therefore, in order to overcome the decrease in performance and to achieve acceleration, these two issues need to be addressed. 

Disabling the Usage of PCH Files

To increase performance when building with Unreal Engine from home, it is recommended to disable the usage of PCH files. This is done through the BuildConfiguration.xml file of the Unreal Engine version you are using.  

Note: The BuildConfiguration.xml file is located at:
install_dir\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml

> To disable the PCH files usage:

  • Add the following XML element to the BuildConfiguration.xml file of your Unreal Engine:

    Code Block
    <BuildConfiguration>
         <bUsePCHFiles>false</bUsePCHFiles>
    </BuildConfiguration>
    

For example, the usage of PCH files was disabled in the following BuildConfiguration.xml file:

Code Block
<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
     <BuildConfiguration>
          <bUsePCHFiles>false</bUsePCHFiles>
     </BuildConfiguration>
</Configuration>

 Forcing Links to Run Locally

To increase performance when building with Unreal Engine from home, it is also recommended to force links NOT to run remotely, and to avoid syncing large OBJ and PDB files to remote machines over a limited bandwidth connection.

This is done by setting as False the linker flag - LinkAction.bCanExecuteRemotely. By setting it to False, this flag instructs the Unreal Build System that is integrated with IncrediBuild to execute all link tasks on the local machine. This flag is applied separately to each toolset, and it resides in the .cs file of the selected toolset.

By default, for most toolsets the LinkAction.bCanExecuteRemotely flag is already set to False. In these cases, the links will run only on your local machine and you do not need to change their settings. However, there are two toolsets for which you need to change the settings:

  • VCToolChain
    The settings file is located at:
    Install_dir:\UE4\Engine\Source\Programs\UnrealBuildTool\Platform\Windows\VCToolChain.cs

  • HoloLensToolChain
    The settings file is located at:
    Install_dir:\UE4\Engine\Source\Programs\UnrealBuildTool\Platform\HoloLens\HoloLensToolChain.cs

> To force links to run locally:

  1. Open the .cs file that applies to the toolset you are using.

  2. Locate the LinkAction.bCanExecuteRemotely flag, and set its value to False.

For example, the links of VCToolChain were set NOT to run remotely in the following VCToolChain.cs file:

Image Added
Expand
titleDisable Your Home Machine as Helper

To ensure that your home machine does not slow down builds initiated from other machines due to limited internet bandwidth, disable the role of your Initiator Agent as Helper.

To do this, right-click the Incredibuild Agent icon on your taskbar and click Disable as Helper.

Image Modified
Expand
titleUse a Physical Wired Connection

If at all possible, we recommend using a physical wired connection to ensure that your network speed is as fast and reliable as possible.

...