Trailmakers - Houdini

These are some of the Houdini assets I worked on and helped create while I was interning at Flashbulb Games. Some are integrated in the game, others were primarily done as research for future systems. These assets covered two major fields; Spline assets and Terrain Generation.


FB_TerrainGen_4.jpg

Terrain Generation

How do you create a tool that lets level designers create procedural terrain on the fly, in your game engine’s editor?

This was a question I tried answering for a substantial part of my internship, and it was the source of quite a lot of many-a sleepless nights. Eventually, and with guidance from both my mentors at Flashbulb we designed the basic functionality of how we wanted this (at the time theoretical) terrain tool to function. The goal was to make a Digital Asset that could accept basic Unity shapes and use them to deform a Unity Heightmap. Additionally we wanted the asset to generate splat-maps and create erosion and distortion on steep angles (and it should be mask-able with additional shapes).

I set out to start working on the solution to the problem with the grandiose expectations of a student with about 6 months of on-and-off experience with Houdini. The general basics, creating a system to tag shapes to be either additive, subtractive, or replacing (overwriting both other shape types), was fairly simple. Issue arose when trying to add things like noise or distortion to the system, as it made it all grind to a halt. Data management was key, clearing masks, making sure that only the bare-bones data needed was sent down the “pipe” became an obsession. Due to production we only had access to one Houdini 16 Core licence and i did most of my work in Houdini Apprentice. This meant I could not test my solutions properly, and it led to some issues by the time i thought I was done. My internship ended before i had a chance to see how the final version turned out. But I know some version of it did manage to work out, as it was shown off at GDC 19 by Flashbulb’s Shader and Instancing programming magician; Elvar Örn Unnþórsson.


 
FBRoadToo_1.jpg

Spline Assets

Roads Roads Roads

This was a side project I worked on primarily in my spare time. I wanted to learn more about how to create efficient spline based assets, and with my focus on terrains, roads felt like a natural next step. Some of what I did was eventually (I believe) implemented into the road spline tool used in Trailmakers. We did end up using some of it to create spline based jersey barriers that could line specific parts of the race tracks.

My research began with simply creating a highway that added support pillars if its height went above a certain point. This was not too difficult, I achieved it both using a raycast, and by simply having the hardcoded height variable. Using raycasts is far better if you want to keep things procedural. Next I started looking at how to create intersections. Thankfully there are many great tutorials. With them I created a small setup that allowed me to combine 4 separate road curves into an intersection, I even managed to add a “capture” area around each endpoint. This meant that you only needed to move point to the general area of another point for them to connect.