Project Name: Lightbringers: Saviors of Raia

Platform: iOS, Android, Facebook

Release date: 2013

Game Engine: Icefield Engine

Official trailer:


On this project I developed procedural modeling tools and I was also in charge of the VFX.


Procedural Tools:

Level layout tool

This is the first project I started developing procedural tools for. They allowed us to create 30 differents levels instead of the 6 originally planned for. It also gave us flexibility to quickly adjust them if needed.


Level layout starts with an input curve shape. From there the base game floor will be generated. UVs and vertex color for color jitter is automatically generated.


Further detail can be painted on the floor to create broken tiles effect.

This painting process writes into a special point attribute. Then each quad is analysed to check its 4 points special attributes pattern.

Based on the pattern the quad UVs will move to the proper location on the texture atlas.

Each pattern can have 2 or more variation in the atlas so it is randomly selected.


Floor runes tool

The gameplay involved activating a network of runes in the ruins in order to cleanse the level from the horde of monster.

This network was made of repeating parts of remodeled meshes.

The tool developed to help us speed up the assembly process of these parts was base from a simple input line.

Depending on the distance between the two ends more path part were repeated and then we could select which type of node (small, medium large, xlarge) and which type of path (thin or large)


Buildings tool

Building parts were purely decorative in Lightbringers, they helped populate the environment surrounding the gameplay area.

The same input shape described above was also reused to generate a parapet mesh.

Various type of parapet were possible.

Arches could be added on any type of parapet.

Optionally, windows could be added. The number of windows and the size were all controllable via the Houdini digital asset.

We could also add various types of fences and other decorative parts around the level area.

A tower generator tool was also developed.

Playing with the settings many variation of walls were possible:

many variation of windows:

and many variation of roofs too.

Towers could be generated in half depending how much of it was visible from the gameplay floor.

All the building parts UVs were automatically mapped onto this texture atlas:


Once a level was setuped, an optimization pass was done. All back faces were removed in order to save on triangle count. This was possible because the camera was orthographic and at a fixed angle.


Blood splash

I imported the death animations of the characters into Houdini to create blood splash VFX with fluid simulation. The sim was converted into very low res geometry frame by frame.

Our game engine had a feature to play sequence of meshes frame by frame. This method was also used to animate the horde of monsters, it was cheap and allowed us to have a lot of enemies on screen on mobile.

Here is an example of the fluid simulation particles converted in geometry.


Fake lighting was also baked in vertex color for each frame.




One of the monsters required tentacles VFX when spawning and despawning. I created a tool in Houdini to tackle this task.


The tentacle tool, starts with a single line in Houdini.

The line is resampled

Using CHOP noise this line is deformed. Those 2D noise will also be reused later on to animated the tentacles.

A mesh is then skinned on the line to create the tentacle.

This also gave us control on the geometry resolution to create LODs

UVs were automatically unwrapped to match the tilling texture

and vertex color generated.

We applied a gradient colors along to lenght to give more depth to the geometry.


Each tentacles were then instantiated onto template points. Each tentacle had a random seed for length, deformation and wiggle animation.

Changing the number of template points allowed us to quickly adjust the number of tentacles.


Animated result:

Glimpse of the Houdini network that generates the tentacles: