Hey everyone! Welcome back to another devlog! Today we’ll be taking a closer look at some of our level design tools.
Lately I’ve been spending time on different Houdini tools, which we implement in our level workflow. The two tools which have received the most attention recently are our house tool and our platform tool. Which both work in a similar fashion, the user of the tool simply adds boxes to the scene, adds the tool to the boxes and then uses the parameters provided by the tool.
Devlog 15
Lukas “Gås” Rabhi Hallner
House Flipper Extraordinaire
Houdini Engine is a plugin which allows you to package a node network from Houdini, expose desired parameters and then bring it over to another software, in the case Unreal Engine.
Since the cooking and simulation is handled by Houdini it allows us to use a lot more solvers, functions and methods that wouldn’t be possible in Unreal.
The House Tool
Our house tool creates traditional Swedish cabins by using boxes. It creates both an interior and an exterior with many parameters and settings. For example, wall color, wallpapers, doors, room sizes and seeds for randomization. There’s also support for additional details, like adding roof tiles, flower boxes, porches, balconies and antennas!
These tools can of course be used while still being in development, that’s one of the great things about them. For example a level designer could build a town with the tool, and when I later on add additional details and parameters in the tool, they simply have to click a button for all houses to update.
Houdini also provides a live-sync feature between Unreal and Houdini, which allows me to see the result in the game engine while working in a different software. This helps a lot to troubleshoot and to find the causes for specific errors.
The house tool is still a work in progress, there are many things which I’d like to add in the future. Interior furnishing based on room types, ladders, additional roof details. Also more options for wear and broken houses!
One feature I’m currently working with is a system to categorize rooms into types (living room, kitchen, etc) and then populate them with propriate furniture accordingly.
Fortunately, Houdini doesn’t require you to model everything procedurally in Houdini. By using points with certain attributes you can tell Unreal Engine to place any model, blueprint or actor in your desired way. So by having a library of assets made in for example Blender or from asset packs, we can use those together with the tool! For example, the doors placed by the tool are fully functional blueprints made by our programmers.
Another useful technique is to add tools to other tools. What I mean with this is that you implement a tool network into another tool network, and then expose only the relevant parameters of the added underlying tool in the main tool.
If that sounded a bit confusing, here’s an example.
These antennas are generated with another Houdini tool, where you can control things like height, seed and cables. Since all tools are just a set of nodes, I can package those nodes and add them to the house generator network!
Let’s say the antennas had a parameter for a ground attachment, I could now choose to not expose that parameter in the House tool, since I know that they’ll only be placed on roofs.
Here are some variations of possible outcomes. It’s quite easy to get lost if you make the house too large and the rooms too small!
The Platform Tool
The other tool I’ll talk about is our platform tool. This tool works a bit as a gray box replacer. Often while designing a level you start with gray cubes and primitive shapes to block out a level, to later replace with more detailed geometry. We utilize these shapes to generate platforms, stairs and other things. This means that we don’t have to spend as much time decorating and filling out a scene, instead we can have platforms as a base and then add more detail to them.
Working with procedural tools also means that I can add details, assets and other things to the platforms and then Fredrik can simply press “recook” and everything will be updated, without having to redo a single thing.
With Houdini Engine you also have the possibility to create collisions, which is very useful for this tool. Lastly, the following picture is a small breakdown of how the stairs are created in this tool. The walls, panels, railings are created in a similar fashion of breaking something out, modifying it and merging it back in.
This concludes this week’s devlog! Hopefully you’ve found it somewhat interesting to get a bit of insight to our workflow with tools! Until next time!
I’m not in duress i swear but please help me and…
I warned you about the stairs bro!
~ The Gumlin