This is a list of all the posts that have ever been published on horugame.com.
100k units in multiplayer. Custom DX12 rendering pipeline in UE4, custom netcode, pathfinding, movement. 1500 bytes/sec (1.5KB) of bandwidth. Deterministic lockstep P2P of the floating-point variety. Animation handled via compute shaders, pathfinding and movement are on the CPU.
Here are my settings to speed Visual Studio and in particular IntelliSense up for C++ development. They should make working with C++ in large codebases more responsive and faster (I’m using them with the Unreal Engine 4 source build). Note: Automatic Precompiled Header Cache Quota is the amount of space you let VS use up […]
For the past 3 months I’ve been busy full time with making a giant army renderer from the ground up in UE4 and it’s finally finished. It can render up to a million units 3x faster than stock Unreal Engine and is hopefully using many of the latest & greatest DirectX 12 tricks: single draw […]
The DirectX 12 compiler DXC has received a PR about a month ago that adds template support to HLSL. So you can now do this: Which is great since that’s all going to happen at compile time and so the compiler will be able to unroll the loop correctly. This, coupled with UE4’s shader permutation […]
Computes everything in compute shaders on the GPU, including LODs and frustum culling. No GPU-CPU stalls anymore, it’s faster than HISM or ISM. Since around 4.22 Epic has exposed indirect rendering via the RHI mostly because of Niagara, but this is a custom rendering component so there’s no overhead and is therefore faster where it […]
Implemented merge instancing in UE4 to render different meshes in a single draw call. Large meshes are multiple instances. Can render an entire level in a single draw call. Based on an older SIGGRAPH paper by Emil Persson of Epic Games. All the colored parts in the video below are one single draw call!
The following requires a source-built Unreal Engine 4, launcher builds won’t work. Ever wanted to improve linking times by x10? What you need is incremental linking! Incremental linking as the name suggests only links files that have changed since the last time linking was done, which in my particular case means that 2766 source files […]
There comes a time in every self-respecting game developer’s life when they have to rebuild the entire engine along with the game they’re making. This usually happens when installing the latest version of Visual Studio that came with compiler improvements to MSVC. What you typically want to do is ensure that everything gets recompiled properly […]
Introduction If you’re as excited as me about signing into your Linux server from your Windows machine and completely ditching passwords and private keys stored on your computer in the process then this is the one and true guide for you!I’ve been wanting to do this ever since I’ve bought my first two Yubikey NEO […]
Sorting parallel arrays a.k.a. Structure of Arrays (SOA) is not that easy in UE4 since the default sort implementation can only work on one array at a time. As far as I know, there’s no easy way to get it to work with SOAs since element swapping happens via hardcoded calls to TArray::Swap(), so what […]
Fully deterministic unit movement integrated with custom P2P netcode. Features steering, unit clustering, 2D collision resolution, movement lanes, group splitting, regrouping on arrival and navmesh pathfinding. Animations are 100% done on the GPU to free up CPU capacity. Performance is 1.5ms per frame for 500 units moving concurrently, measured on an Intel i7-4770k in a […]
Introduction This tutorial describes how to launch automated tests and profile via Gauntlet by triggering in-game events, executing game commands and generating detailed performance charts / benchmarking your game. You will need a source build of the engine, preferably 4.23 or above. It will also work on 4.22 with a few minor tweaks, but not […]
All the spaceships are running rudimentary AI with pathfinding and targeting. 6M triangles on average with 111 draw calls. Spaceship: 3k tris @ LOD 0, 60 tris @ LOD 3 Laser projectile 16 tris, no LODs Using a tricked out hierarchical instanced static mesh component (ships) and instanced static mesh component (lasers). Laser transformation happens […]
Very short guide on getting the Substance Plugin to work with UE 4.22 until Allegorithmic release an updated version. Copy the substance plugin over from an earlier engine version, e.g. from 4.21. It normally resides under \Engine\Plugins\Runtime\Substance\ Edit SubstanceEngine.Build.cs which you may find under \Engine\Plugins\Runtime\Substance\Source\SubstanceEngine\SubstanceEngine.Build.cs Find this line: IEnumerable<FileReference> projectfiles = UProjectInfo.AllProjectFiles; and replace it with this: IEnumerable<FileReference> […]
This is a short guide on getting the freshly released UE 4.22 source build, launcher build and any existing projects to compile & work with VS2019. If you have a launcher build i.e. not building the engine from source, you’ll only need to do what’s under “Getting your projects to use VS2019″. I also cover […]
Decided to give Houdini a whirl and OMG just look at those realistic cliff faces that it produced. This is the beginning of a juicyful friendship! This time you’re looking at an L-shaped battle tile that fits into the forest biome. The tiny speck you see in the bottom left corner is an actual warrior […]
Introduction Creating a robust cover system may seem daunting at first, but once you realize it’s just a set of simple techniques glued together, the task at hand will seem a lot less intimidating. Whether you’re making a next-generation RTS or want to use this in an FPS game, I hope you will find the […]
New screenshot from your favorite up & coming RTS, this time straight out of an Unreal sequencer, which is a mighty fine place to be! We have a warrior here caught in the fury of a giant, as an enterprising Diviner from another tribe tries profiting from the situation by blasting the giant with its […]
Here’s some of the new features I’ve been working on for Horu lately: flying limbs & body parts, time controls and a high enough FPS to go with it! These are 39 warriors duking it out to get to the center of the block. I’m removing their landing pods to make it easier to see […]