Unreal Engine
Summary
During my time at Rare, I have made contributions to Unreal Engine. Rare is an Unreal Engine studio and as such, I spend quite a bit of time in the engine. When I need to modify the engine to achieve the behaviour that I want, I like to make sure that I try and give that new functionality back to Epic.
Contributions
Below are a list of my contributions. Each contribution is tagged with either the version it was released in, or its status, if it has not been merged.
Note
I know that describing Unreal Engine as “Open Source” could be seen as a bit of a stretch. However, anyone can see and grab the source code by following this guide which isn’t too much of a barrier. And Epic do accept pull requests as demonstrated below.
Legend
PRs
UE5.4 subtly broke copying of UObjects, which could lead to crashes… if you are lucky. This PR fixes it
5.7
Makes creating shader’s easier. Enables Shader factories.
Open
Makes creating shader’s easier. Enables Shader factories.
5.7
std::basic_fixed_string implementationRejected
Fixes a crash in Niagara that was caused by a use after garbage collection
5.6
E.g.
!MyVar will now negate MyVar in custom HLSL nodes5.6
Allows packing of data in UV channels since there will be no
double -> float conversion5.6
Reduced the size of each D3D12 Resource by 1KB each
5.3, 5.4
FNiagaraVariable and its base defined equality operators leading to ambiguous functions
5.3
Cache expensive to calculate data on init rather than calculating every tick
5.3
Support developers creating custom menu extensions for the Niagara Editor
5.3
Cache object with a TWeakPtr rather than a raw ptr
5.5
Bug fix for Niagara Data Interfaces not defining types in certain circumstances
5.2
Enables custom NDIs to use the GPU Readback manager
5.2, 5.3
Supports grabbing a World/Engine/Player subsystem using its interface rather than concrete class
Rejected