FAQ: Core

Mar 9, 2021.Knowledge

Is there a plan to support text based assets that will make it human readable & mergeable?

  • This is being investigated by the development team but there are still some challenges to resolve and there is no target date for such a feature…

What are the best practices to decide if code should be in the project, a plugin vs modifying the engine?

  • You should always strive to have your code in your project or in plugins. This facilitates upgrades to newer engine release.
  • Plugins promote modular development and sharing with other teams\projects.
  • We are happy to discuss API changes that will allow you to implement what you need in your plugin\project. Examples are adding getter\setters for properties, making a method virtual…
  • It is usually easiest if you modify the engine API and can submit a Pull Request on Github in that effect. Please make sure that your change will not break legacy code and will also not be detrimental to performance.

What are the recommended Best Practices for using Derived Data Cache functionality?

  • Q2, 2020: DDC works best today when all workstations at a site are configured to use the same shared backend and have a low-latency, high-bandwidth connection to that backend. With that setup, it makes sense to use one or more dedicated machines to continuously populate the cache either by cooking for every target platform or by running the DerivedDataCache commandlet to fill the cache. Populating the cache by cooking currently performs much better than running the DDC commandlet to fill the cache for console data. The commandlet is still the best for editor data.
  • If it is common for developers to have more than one workspace on their workstation, it is best to share a local cache among those workspaces by setting the environment variable UE-LocalDataCachePath.
  • If VMs are used for builds and automation, and they have sufficiently fast access to the shared cache folder, a significant amount of storage space can be saved by disabling the local cache for those VMs by setting the environment variable UE-LocalDataCachePath to None.
  • The shared cache backend performs very poorly over high-latency connections, as might be the case if developers have their workstations at home and the shared cache is accessed over VPN. In these cases, performance is generally better if the shared cache is disabled by setting UE-SharedDataCachePath to None. Version 4.26 introduces support for a shared cache that lives on the Amazon clouds. It is possible to integrate support in earlier releases by following the instructions here:
  • For more details: Derived Data Cache | Unreal Engine Documentation

so, i daily update my project from remote, and fill a local DDC using the commandlet. I mostly use the editor. Commandlet is best?