The Blog of a Compulsive Creator, Game Developer and Photographer.

The Death of Tick: UE4 & The Future of Programming

Last year I was so frustrated with compile times in UE4 that I hacked together a script that changed the color of one of the lights in my office to let me know when a compile had finished. I also stashed away the compile times in a log file so I could analyze them later.

In the ~6 month period from June 26, 2015 - January 16, 2016, I spent 44.98 hours compiling across a total of 4,660 compiles. This averages to 34.75 seconds/compile but it doesn’t account for the time taken to reload UE4 and get back to what I was working on when a hot-reload failed (~25% chance) or when I forgot to check my pointers. This utter frustration with C++ iteration time in UE4 led me to discover a somewhat ridiculously named programming language called SkookumScript.

All I wanted was to reduce my C++ iteration times with a simple scripting language that I could use in UE4. Instead, I underwent a complete programming paradigm shift. And when you find something this profound and amazing, you just have to share it with others. Read More

UE4 C++ Code Sleuthing

This is a short article with a few tips on how I hunt down engine code in UE4. There’s no big secret here, just a series of tools that can be combined by anyone with a little motivation.

Read More

Triggering Overlaps for Level Streaming Actors

In our game we use streaming levels to load the player into various interior buildings. The player enters an airlock, which is just a loading screen that they can move around in while they wait for the level to load around them.

This allows us to keep our interiors in separate maps. One problem that we encountered is that we have some custom volumes that we use to change camera parameters. When the player pawn overlaps a volume, we add it to the list of camera parameter volumes in play and those get sorted and used based on a priority value (similar to how post process volumes work).

The problem is that when we stream a level in, OnBeginOverlap events don’t fire for any intersecting actors. This was a big problem for us since without the overlap, our new camera parameters don’t get registered and that left our camera out in no-mans-land, showing all our seems.

Read More

Vive Motion Controller UE4 Bindings

Getting the Vive motion controller buttons and axis bound in UE4 is one of the first steps to playing around in VR.

I had to dig into the UE4 code a bit to find out what these bindings were. I’m throwing them out in the open here for future reference.

Read More

Emitter Not Following Skeletal Socket

There’s a major bug in our project that is exhibited by beam particles that are not correctly emitting from the socket location that the emitter is attached to. The problem has been seen in every version of UE4 going back to 4.5. Although the problem is exhibited using beam particles, my guess is that it has nothing to do with beam particles and more to do with the entire skeletal transform being a frame behind.

The current way to produce the issue is:

  1. Attach a skeletal mesh to a physics simulating body
  2. Attach a particle system to some socket in the skeletal mesh
  3. Move the physics body around
  4. Observe that beam emitters are lagging behind the skeletal transform
Read More
Load More…