Compiler Flags
How to pass compiler flags such as /Zc:nrvo- to the Unreal build process.
HUD Basics
A HUD consists to two main parts, the user widget which draws on the screen and the HUD class which loads and displays that widget.
Generating Gameplay Tags in C++
This shows how to generate the .h and .cpp files implementing gameplay tags in C++ as part of the build process for an Unreal project.
Backing up Gitea to Backblaze
Installing Gitea
Building on Two Machines
How to use Unreal Build Accelerator to speed up C++ compilation by using two machines.
Using C++20 with Unreal
This article describes using some C++ 20 features such as concepts and lambdas with template parameters.
Mass - Debugging
Debugging problems in Mass.
Mass - Concepts
Descriptions of Mass concepts.
Mass - Cache Concepts and Optimization
This is the first of a series of articles about the Unreal Mass framework.
Visual Studio 2022 - Using Clang Format
How to format code using clang format inside Visual Studio 2022.
Landscapes - World Partition and Tiling
This discusses making large Unreal landscapes using data from a real-world location using World Partition to support larger maps.
Landscapes - Using Real Location Data
This discusses making large Unreal landscapes using data from a real-world location.
Landscapes - Nanite Tessellation
Tessellation is the ability to displace the surface of a mesh or landscape as it is rendered to create the appearance of more detail than the mesh contains. Nanite tessellation requires Unreal Engine 5.4 or higher.
Landscapes - Material Concepts
A landscape material is one which is applied to an Unreal Engine landscape object. It is created similarly to any other material in Unreal but can use some special nodes (such as the Landscape Layer Blend node) which only work inside landscapes materials.
While this page is about landscape materials in Unreal Engine, it does not tell you how to make one, it describes how they are made, how important features work, and looks at alternative approaches used in commonly available examples.
Landscapes - Building GDAL
GDAL is a translator library for raster and vector geospatial data formats which we can use for converting between file formats, for example for converting geotiff data about real-world locations to heightmaps which can be imported into Unreal.
Using Pix with Unreal 5.5
This page shows how to get the Pix GPU Capture program working with Unreal 5.5.1 so you can debug and profile materials and shaders.
Animation Textures Part 3 - Using Animation Textures Characters from Blueprint
This article is part of a series detailing how to use the AnimToTexture plugin to animate static meshes. It details tests we can run on the actors which use animation textures developed in prior articles
Animation Textures Part 2 - Using the AnimToTexture plugin
Animation Textures is a technique for storing animation data in a texture and animating the mesh by using a special material to read and replay the animation data.
Animation Textures Part 1 - Materials
Animation Textures is a technique for storing animation data in a texture and animating a mesh by using a special material to read and replay the animation data.
Making an AI Controller and Behavior Tree in C++
Optimization Part 4 - Adding Task Data to Traces
In Part 3 we used Unreal Insights to sample performance data and display it like this:
Optimization Part 3 - Using Unreal Insights
In Part 2 we made a test environment and look at stats usage. Here we use Unreal Insights to determine what specifically is making the project run slow.
Optimization Part 2 - A Simple Test Program
This page describes a simple test project which can be used to experiment with optimization in Unreal Engine. The test project is created based on the Game | Third Person | C++ project including the starter content.
Optimization Part 1 - Build Configurations
This article explores project build configurations.
Changing a Component in a Parent Object
If we derive a C++ class from an existing Unreal class, and that existing class contains components, we can extend (subclass) those components without changing the source code of the base class.
Allocating a TArray on the stack
Changing a Project to use the Engine Source Code
Understanding the Game Features Subsystem
This is an attempt to understand the Unreal Game Features Subsystem. The Game Features Subsystem is used in the Valley of the Ancient and Lyra examples, and in Fortnite, to distribute game assets and functions as plugins.
Diagnosing EQS Error Messages
What does "Listener must have a valid id to update its sense config" mean?
Order of Operations - Variable call sequences using BeginPlay() and OnPossess() for AI Controllers
Delegates in C++
A delegate is a object which can be used to call:
- a specific method on a specific object
- a static function
Looking into Lyra - Action Mappings
How Lyra binds imput actions to gameplay abilities
Looking into Lyra - Activatable Abilties
How Lyra manages which abilities can be activated when
Looking into Lyra - Input Mapping Contexts
How Input Mapping Contexts work and how Lyra uses them
Looking into Lyra - Gameplay Tags
How Gameplay Tags work and how Lyra uses them
Looking into Lyra - Inputs and the Gameplay Ability System
The aim of this is to examine the source code from the Lyra example provided by Epic Games and to try and identify and document practices and approaches for using c++.
Here we look at use of Gameplay Tags and the Gameplay Ability System (GAS), and try and trace the use of gameplay tags from pressing a button to getting a response in the UI and in gameplay.
Looking into Lyra - Experiences
Examining the source code from the Lyra example provided by Epic Games and to try and identify and document practices and approaches for using c++.
Unexpected Unreal Behaviour
Experiments With Chaos Physics - Using Python
The page PhysicsUsingBlueprints describes the creation of a simple physics example implementing a trebuchet using blueprints.
This page describes implementing the same thing using Python.
Experiments With Chaos Physics - Using C++
The page PhysicsUsingBlueprints describes the creation of a simple physics example implementing a trebuchet using blueprints.
This page describes implementing the same thing using c++.
Experiments With Chaos Physics - Using Blueprints
This describes some initial steps in using chaos physics in Unreal Engine 5.0.2.
Using C++20 with Unreal
UObjects, Generated Classes, and Class Default Objects (CDOs)
This post documents how a UObject functions in Unreal Engine and how the classes generated by the Unreal Header Tool (UHT) work.
Wrapping a third party library using an Unreal Engine Plugin
Unreal Engine supports plugins, which contain code and game content. They can also wrap a third party library (on Windows, one or more .dll files) and allow the functionality of that library to be called directly from C++ and indirectly using Blueprint objects which are part of the plugin.
Building ffmpeg 6 on Windows 10
ffmpeg is a cross-platform solution to record, convert, and stream audio and video. It can be used from Unreal Engine to change image formats, to record gameplay, and to convert content to and from various video formats. Here I am using it just to show how an Unreal Engine plugin can be developed.
Creating a Blueprint Node with C++
This post is about creating a new Blueprint node in c++ to rotate an Actor object around a pivot point.
Using Sequencer to make GIF Files from Unreal Engine
This describes one approach to making GIF files from Unreal Engine. This approach is used to make the GIF files on this site.
Clang has better error messages
Comparing the error messages created by Clang and by MSVC.
Using the Unreal Engine Json classes
Updated for Unreal Engine 5.0
This document describes the basics of reading and writing Json with Unreal Engine classes. The code here reads and writes elements explicitly rather than reading and writing entire structs at one time. This is suitable for objects which are not using the UCLASS or UOBJECT macros to create reflection data.
Using Slate UI Classes from C++
Using Slate UI Classes from C++
Using Reflection in Unreal Engine
Updated for Unreal Engine 5.0
Reflection is the ability to inspect C++ classes and objects at runtime and gather information about their data types and properties. Normally C++ does not maintain programmer-accessible information about, say, what members a struct or class has. Unreal Engine uses macros such as UCLASS and UPROPERTY to create information about classes, structs, methods, properties, and to make that information available to C++ at runtime.
Building Unreal Engine From Source with Visual Studio 2022
Updated for Unreal Engine 5.1.1
This is a brief guide to downloading and building UE5 using git command line tools and Visual Studio 2022. Updated for Unreal Engine 5.1.1 and Visual Studio 2022 17.4.4
Installing and Configuring Visual Studio 2022 for Unreal Engine
A brief guide to Visual Studio 2022 setup for working with Unreal Engine