Creating Level and Map Generator with Houdini

Anjeong Go did a great breakdown of level building tools, created in Houdini and used in UE4. They are aimed at creating efficient and variable maps for the games.

Anjeong Go did a great breakdown of level building tools, created in Houdini and used in UE4. They are aimed at creating efficient and variable maps for the games. 

Introduction

Hello. My name is Anjeong Go, I am from Korea. Currently, I am a Game Intern at SideFX in Toronto. I am focused on creating HDAs (Houdini Digital Assets) to be used via Houdini Engine, for Unreal and – to a lesser extent, – Unity.

I have worked on the Hex Map Generator (which I gave a presentation on at GDC 2018), as well as the following assets which are compatible with Houdini/Unreal/Unity – Corridor, Cable, and Pipe.

I learned VFX at KOCCA (Korea Creative Content Agency), I was introduced to Houdini back then, and I was trained in game programming at KITRI (Korea Information Technology Research Institute).

Hexagon Map Generator

My presentation at GDC 2018 covers the Hex Map Generator tool, how it works, what controls are available and also the context of why the tool was made and how it can be used.

Hex map Generator can be downloaded by clicking here (zip folder).

The concept and the point of the Hex Map Generator tool are to create the classic RTS game environment from the top-down view. I got inspiration from Unity of Command, Civilization 5, Battle Worlds: Kronos, WARTILE, and others. It is a conceptual tool and is non-playable.

Houdini’s node-based workflow makes it easy to share and reuse Houdini Digital Assets. HDAs can be customized by adjusting the various controls that are made available to artists.

In this project, it is the ‘for each’ node which was the most useful node. This node helps the repeated task to be easily done as many times as you require. So, when using this, your fingers will be free from pressing a lot of CTRL+C / CTRL+V. Also, whenever required, you can use ‘for each’, double, triple, or even more.

These HDAs can then be loaded into Unreal if Houdini Engine is installed. Just click the Import button in Unreal, and you’ll be able to use it without any difficulty.

Assets

Houdini has a “Scatter” node. This node distributes new points across the surface in a roughly uniform pattern. I created the “pscale” point attribute for each point and stored random values within a scale range. “Copy to points” can connect assets to each point and the asset scale is then changed based on the “pscale” value.

How well does Hex Map HDA work on a giant map with tens (or perhaps hundreds) of assets instanced across the map? I have to admit that I don’t have an answer for it. It is dependent on the size of the hex tile, and how big the map is. So actually, I am curious for those who have downloaded the asset, to know about the performance and stability in their game map setup. Make sure to send me a message!

Tool’s Other Features

This tool allows you to create a cliff or the bottom of a pond or river, by adjusting the height of the selected region/s. “Add floor” parameter can make a water surface. If you select a region, you can create a hill by controlling the “height” and “soft radius”, which is the area of influence. It is also easy to generate a fence. Just click on the “Fence” toggle box, and then the assets or that certain area will be protected by the fence.

The quickest way to build your map is to start with an image (e.g. a sketch on paper) and then build rough shapes in Houdini. The most complex map that I made, took me between 10~25 min.

Another thing to highlight is building forest areas. You don’t have to worry about creating a convincing forest if you have 3 or more different kinds of trees. It will show densely packed forested area with an organic look.

Corridor Production

I designed the Corridor asset holding in mind 2 conditions. First is that it can be used on a flat floor and the second, – it has 6 different panels which are divided by size as the following: 2×2, 2×1, 3×1, 1×2, 1×1 and column (1xHeight). Each of the panels can have various designs, as long as they meet those dimension requirements.

1 of 2

The Corridor has a curve input and its points can be rearranged based on its width.

1 of 2

A grid is instanced into the points and extruded, then you can get a basic corridor that consists of squares.

Added center points on each square. Then, I created a “selected” point attribute and set it to 0.

For example, in the 1×2 case, it needs 2 unit squares. 

I’ll select a center point (A) randomly and a point (B) which will be also selected above the point (A). The “selected” attributes of those points (A, B) should have a value of 1. Otherwise, find another point.

1 of 2

Finally, the 1×2 panel is placed and the value of attributes are changed to 1. The rest of the panels are placed in the same way.

I also made support for two types of corners – outer corner and inner corner, because each type has specific normal direction.

Optimization

There is “Show Meshes” parameter to optimize performance in Unreal. The parameter’s checkbox is unchecked by default. It shows simple panels as a proxy (boxes). Use the tool with default settings when you create a curve or when editing it, then enable the parameter once the curve is complete. Then you can get a Corridor with full panel geometry displayed in the viewport or the level editor.

I also recommend low poly assets. The panels which I used have 1500 – 2000 polygons on average.

Feedback

These tools are generated based on user needs, so it will hopefully help artists to save on time to creatively design and lay the game environment out and ideally, save on money as well. Artists can create varying sets of panels to swap them in the Corridor asset, so you could say that they can generate new levels procedurally by doing so (by changing random seed, size of the corridor, and so on).

I usually spend from 1 week to 3 months, based on the scope of the project. But the point is that the tools aren’t just being used one time. You can edit those tools and reuse them in other projects, and tailor them based on those specific needs. It saves you time because you can easily replace the assets (modular panels in this case) and that gives you another version of the asset. Making assets, in general, does require some amount of planning, math, and scripting (Vex), but in the end, you don’t have to worry about starting again from the beginning.

I think that for artists who use these kinds of tools, it complements their classic set of 3D tools.  ‘Traditional’ 3D art along with the technical aspect results in an amazing synergy of the creative and technical union… and hopefully great gameplay, too!

PS.

Hex map Generator can be downloaded here (zip folder).

Anjeong Go, Technical Artist 

Interview conducted by Kirill Tokarev

Join discussion

Comments 3

  • Douglas Allen

    Why did you say "to a lesser extent, – Unity."? I get that the game engine has a history of being used to produce a lot of trash, but as a full time professional Unity developer that is currently learning Houdini thats disappointing to hear.

    0

    Douglas Allen

    ·5 years ago·
  • Fasox

    Its not broken , it just mixed an absolute URL with a relative one.
    Here it is the zip.
    http://sidefx.com/media/uploads/article/gdc-2018-presentations/hexagon_map_generator_hda.hda.zip

    0

    Fasox

    ·5 years ago·
  • extremeweather

    download link is broken

    0

    extremeweather

    ·5 years ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more