Technical Artist Thomas Denis, one of the developers behind Dice Garden, the winner of Houdini Game Jam 2022, spoke about the idea behind the project and revealed how models and dice were made in Houdini.
Introduction
Hi, my name is Thomas Denis. I’m a Technical Artist working at Turbulent on Star Citizen. I made Dice Garden with my friend Constantin Liétard, who is a Programmer at Mistplay.
We’re both from Belgium and know each other from school. We came to Montreal three years ago following an opportunity to work at Gameloft, where we got to work on LEGO Star Wars: Castaways and Disney Dreamlight Valley, as well as starting a prototyping team focused on developing new gameplay concepts.
I started using Houdini when I joined Gameloft three years ago, at the time when they were trying to push the usage of Houdini for the production of games. It quickly became the foundation of the art pipeline on LEGO. Now it’s my go-to tool whenever I need relatively simple models for VFX work or any redundant task that would be hard in any other DCC.
The Dice Garden Project
For Dice Garden, Constantin handled all the gameplay and sounds, while I was responsible for the art and the Houdini aspect of the game. We wanted to do a little spin-off of the previous Game Jam project of ours called Slime Garden.
We like relaxing games that don’t really need any specific goal. Very often, just seeing what the players do only with the tools you give them can be really fun.
In Dice Garden, we still added some progression though. The players are able to unlock more islands and try to get to the last one, but it is just a secondary goal. In the initial concept, the idea was to let the players walk around, enjoy the scenery, and try to find some interesting interactions between dice. It also makes sense in the context of a Game Jam to limit yourself in terms of gameplay as time is very limited.
Creating Models in Houdini
The islands were made using heightfields. I start by extruding a simple shape and then apply a bunch of noises to it until I have an interesting silhouette and convert it to a heightfield using the Heightfield Project node. This becomes the bottom part of the island.
Then I clip it at the very start so I can use this slice as a mask for a second heightfield, for the top part of the island. I merge them together, convert them to VDBs, and smooth them so that I’m left with a nice closed surface. I also extract the top-facing polygons to be used by the grass system.
Speaking of grass, I used a technique similar to the one used in Shadow of the Colossus. Essentially, instead of having each grass blade modeled, it’s rendered inside a texture as multiple slices of polygons patches on the base model. Each slice clips its alpha from a noise texture, getting thinner and thinner as the slices go up.
It has its limitations though, as it doesn’t work that well for all camera angles.
As for the other types of vegetation in the game, like trees and flowers, I modeled them in Houdini and baked a pyro simulation data in the vertex colors to be used for the reveal effects. A bit of an overkill, but it’s actually a very fast and easy way to get interesting dissolve patterns without involving textures in the shader.
In the game, you can also encounter other types of effects, like the raining cloud when you throw two Water dice.
It was made using the convenient Cloud node from a bunch of randomly sized spheres spawned on an ellipsoid. I smoothed the Normals as well, using the Smooth node on the N attribute to make them look softer in Unity.
The Dice
Each die has one action per face. When you throw two dice, and they end up with the same symbol, when their physics has settled, they execute their action. We can see their symbols in the scanner view.
There are 3 possible actions. Either:
- Reproduce: It spawns a die with fewer faces than the parents, which gets some properties passed along, for example, color, type, etc. It has a small chance to become an abnormal die, receiving unique materials.
- Merge: The dice merge, transforming into a die with more faces. It also has a small chance to become abnormal.
- Power: It spawns objects related to the type of the dice, for example, two Water dice will spawn a raining cloud. These objects trigger the obelisks on each island, unlocking the way to the next one.
Conclusion
The Game Jam lasted one week, so it was definitely tricky to squeeze everything that we wanted to add while working full-time jobs, but Houdini made that task way easier for sure. Any modification for the models required one click to be updated in the editor, so it felt really nice and allowed a quick workflow.
To beginners, I would advise to be curious, start by exploring what the basic nodes do, and try to remember them. They’re your main tools, and while being able to code a bit of VEX definitely is a plus, you can very easily bury your head in Wrangle nodes trying to replicate stuff that is already there. I’m pretty sure whenever I want to code something, there’s already a node that does exactly the same, but I haven’t heard of it before!