What I worked on during the HiLo project.


I was responsible for creating the import and export pipeline from unity to our custom game engine "Coldsnap" for this I wrote a group of scripts to handle import of assets and automatic setup of prefabs with our version control solution SVN. The scripts also handled level export to JSON. These were written in C#.


I made a Houdini digital asset that generated all the meshes for cliffs and rocks in the game from rough blockouts. (Textured by Timothy Karlsson)

All pipes in the game were modelled in maya by my team. Then I placed with an HDA in unity that instanced the meshes and randomized them along curves. Their rotation and scale were also randomized for visual variation. These were then exported with the level exporter script together with everything else.

__Player Ship__

Since our custom engine was very fresh from the oven we didn't have access to skeletal animation in the game. All animation was therefor handled with vertex shaders which I set up and implemented with Houdini and HLSL.

-The thruster was animated with panning noise coloured by a gradient as well as a blendshape stored in its vertex colours that were blended between depending on the players' velocity. This made the ship's thruster open and close as well as making the fire stretch or contract when braking or accelerating.

-To make the thruster flame seem more natural I wanted it to bend with the player during turns. I created this effect by calculating the offset between the player's direction for the current frame and the last frame. Then I offset the thruster mesh in the vertex shader with a strength falloff based on the UVs to make it bend smoothly.

-The wings also had a blendshape stored which was controlled by the mouse cursor position. With some added wobble. 

-The emissive effects were used to show the players speed and were controlled by the player acceleration.


In the game, you have to avoid crashing into rocks by blasting them out of your way. I created the rock explosion in Houdini. Then exported the pre-simulated destruction to texture data which I later read in-engine with a vertex shader and a secondary uv set. This was to avoid using skeletal animation since our engine didn't support that at the time.