How to create a multi-threaded for loop in Unreal Engine

Unreal Engine has different approaches to parallelize your code and one of them is ParallelFor. It is used when it is necessary to execute code multiple times with different number-based inputs, basically what a regular for loop does. But unlike a regular for loop that executes sequentially, ParallelFor runs on different threads, with possible different order of execution. Let’s say our task is to simply sum the values from the TArray<int32> array....

July 23, 2022 · 2 min · Georgy Treshchev

How to use delays in C++ in Unreal Engine

Some developers are wondering about the C++ equivalent of the Delay node in Blueprints. In C++, it is not recommended to make delays for cosmetic things. But if there are something that require high optimization, then consider the following ways. There are two ways to implement Delay that are very similar. Use the option that is more readable and convenient for you. Lambas Using FTimerDelegate FTimerDelegate TimerDelegate; TimerDelegate.BindLambda([&] { UE_LOG(LogTemp, Warning, TEXT("This text will appear in the console 3 seconds after execution")) }); FTimerHandle TimerHandle; GetWorld()->GetTimerManager()....

July 3, 2022 · 1 min · Georgy Treshchev

How to completely disable Tonemapper in Unreal Engine

In this quick tutorial, I will show you how to completely disable Tonemapper without using PostProcess To do this, just open the DefaultEngine.ini file (in the [PROJECT_NAME]/Config folder) and add the following lines to [/Script/Engine.RendererSettings] section: r.TonemapperGamma = 0 r.TonemapperFilm = 0 r.Tonemapper.Quality = 0 r.ToneCurveAmount = 0 r.Mobile.TonemapperFilm = 0 r.MobileTonemapperUpscale = 0 r.EyeAdaptationQuality = 0 r.EyeAdaptation.ExponentialTransitionDistance = 0 You can also write the same to the engine’s command line, but I recommend to directly add these lines to a separate file since it’s more convenient....

June 26, 2022 · 1 min · Georgy Treshchev

Reducing build size of Android or iOS game in Unreal Engine

There are multiple ways to reduce the build size. But on mobile platforms, this issue is most acute. I will show you how I managed to reduce the size of my Android game from 150MB to 50MB. Project settings There are many switches in the project settings that will help reduce the build size. The first thing you can do is set “Build Configuration” to “Shipping” and enable “For distribution”:...

June 12, 2022 · 3 min · Georgy Treshchev
Containers time complexity

Intro to Unreal Engine containers (TArray, TSet, TMap)

This article may be helpful for those who are familiar with standard containers and would like to learn Unreal-specific containers, or for those who already know containers but would like to explore them a little deeper. Here is information about the following containers: TArray, TSet, TMap. TArray Let’s start with TArray. TArray is a dynamically sized array, which is similar to vector in the standard library. The main purpose of TArray is to be able to easily (both memory and performance) iterate over its elements, using the traditional and range-based for loops....

June 5, 2022 · 3 min · Georgy Treshchev