I showcase hidden tools and features of Unreal Engine while sharing horrible game development advice.
Jul 4 • 13 tweets • 5 min read
A lot of developers use UDeveloperSettings to quickly expose configurable variables in the Project Settings or Editor Preferences.
However, there is a slightly cooler option you should know about.
Here is a breakdown of both and how to use them.
A thread 🧵
1/11 What is UDeveloperSettings
In a nutshell, it is a utility class which automatically registers the class with the settings module.
To be honest, this is not groundbreaking. We can call FSettingsModule::RegisterSettings manually. But it's a nice quality of life feature.
Jul 2 • 13 tweets • 5 min read
Is Unreal Engine moving super slow for you?
Here is how you can use FScopedSlowTask to make it more enjoyable.
A thread 🧵
1/11 What is FScopedSlowTask ?
Is an editor-utility class that helps developers display loading bars when creating editor tools.
It's super easy to add to your existing logic and makes the waiting much better for your end users.
Feb 20, 2024 • 20 tweets • 6 min read
Over the years, I've worked on a wide range of projects from small indie ideas to AAA games.
Here is how I would build an interaction system from scratch in Unreal Engine if I were to start a new project today.
A thread 🧵👇🏼
1/17 General Philosophy
The main goal is to make an architecture that's easy to maintain. To achieve this we are going to go for simple bare bones solutions.
We are not going to develop a one-size-fits-all solution, instead, we aim to keep complexity to a minimum.
Jan 8, 2024 • 6 tweets • 2 min read
Here is how to create your own editor mode inside Unreal Engine.
Extend the editor with custom tools like the Landscape mode tailor to your own project.
A thread 🧵👇🏼 1/4 Create the EdMode subclass
The EdMode subclass is responsible for registering and initializing the mode. It provides access to crucial virtual functions such as UEdMode::Enter & UEdMode::Exit which are triggered selecting and leaving the edit mode.
Jan 7, 2024 • 8 tweets • 3 min read
Here is how you can run custom logic during the engine initialization from your own modules.
A thread 🧵👇🏼
Registering callbacks is usually straight forward:
You get a reference to an object, access the delegate and add your callback.
However things can get tricky when it comes to engine initialization.
May 1, 2023 • 8 tweets • 4 min read
Is your game struggling with performance?
Here is how to run your Unreal C++ code asynchronously to avoid bottlenecks.
A thread 🧵👇🏼
A little bit of context:
I am working on integrating @Tolgee_i18n localization tools inside Unreal Engine.
One of problem I've encountered is the performance hit coming from refreshing the Localization Manager resources.
A single call would take 450ms and drop the FPS to 2.
Mar 4, 2023 • 11 tweets • 4 min read
How to write and refactor code without introducing any bugs.
Write your first Unreal Engine test today in 6 steps using Rider.
A thread 🧵👇🏼
First off, let's discuss what automation tests are and what their purpose is:
Automated Tests are a controlled environment where you can verify the outcome of a piece of code against the expected result. They ensure our code behaves as expected while developing/refactoring it.
Jan 14, 2023 • 7 tweets • 3 min read
Do you need to optimize your game?
Here is how to use Unreal Insights. A tool that will help you analyze the perforce of your game.
A thread 🧵👇🏼
Step 1: Simply add the TRACE_CPUPROFILER_EVENT_SCOPE macro at the start of all of the functions you want to analyze.
Inside the parentheses, you can add any text you like, but I recommend using the ClassName::FunctionName for visibility.