Portfolio / Grapple Star

Grapple Star

Studio Left Turn Studios Role Lead Technical Artist Dates 2021–2023 (demo) Engine Unity
  • Unity
  • Cinemachine
  • Post-Processing
  • VFX
  • Rendering
  • UI Scripting
  • C#
Grapple Star after the fix — sharp foreground VFX composited over a depth-of-field blurred background
Draft — final asset TBD

Grapple Star is a space action game in development at Left Turn Studios, built in Unity. I was lead Technical Artist on the project alongside the Snuggles and Alien Age work. The most technically interesting problem on this project was a rendering issue with how Unity handles depth-of-field and transparent VFX — a fairly common pain point that required an unconventional solution.

Depth-of-Field Transparency Fix

The game's camera used depth-of-field post-processing to give the background a sense of depth. The problem: Unity's DoF implementation applies the blur pass to the entire scene before compositing transparent geometry. VFX particles — which are transparent — get caught in the blur even when they're in the foreground, close to the camera. The result was foreground VFX that looked soft and disconnected from the action, or disappeared into the background blur entirely.

Grapple Star before fix — foreground VFX being incorrectly blurred by depth-of-field post-processing
Before — VFX caught in DoF blur
Grapple Star after fix — sharp foreground VFX composited over blurred background
After — VFX rendered sharp, background blurred

Disabling DoF entirely wasn't acceptable — the visual depth it produced was part of the game's look. Adjusting the DoF parameters to preserve transparent objects wasn't a viable option in Unity's post-processing stack without losing the background blur. The standard workarounds (render layer sorting, depth prepass tricks) didn't fully solve it for particle systems with varying depth.

The solution was to split the rendering into two cameras using Cinemachine's camera blending and a custom composite output. The background camera renders the scene geometry with full post-processing including depth-of-field. A second foreground camera renders only the VFX layer with post-processing disabled — the particles get no blur pass at all. The two outputs are composited at the end of the frame. The foreground VFX render on top, sharp, regardless of what the background DoF is doing.

The main challenge was making sure depth relationships stayed correct across the two cameras — particles that should occlude background geometry still needed to be occluded by foreground geometry closer to the camera. This required careful depth texture sharing between the cameras and explicit layer mask configuration so each camera knew exactly what to render. Once that was right, the system was stable and didn't require changes as new VFX were added.

Level Select UI

The level select screen was built entirely from scratch — no purchased assets or pre-built framework. The scene composites 3D objects, particle systems, and procedurally animated 2D elements. I built and assembled all the assets, scripted the UI canvas with clickable objects and actions, and wrote the script to populate text fields and enable/disable scene elements based on which planet was selected. Concept art by Rowan Sherwin.

Level select UI screenshots and concept art — pending

Watch the Level Select UI walkthrough on Vimeo →

The targeting reticle was also dynamic — it changed appearance based on target availability, driven by gameplay state rather than sprite swapping.

Other VFX Work

The project also included a range of gameplay VFX: ship boost effects with reactive jet trails, collectible pickups, and environmental ambience.

Grapple Star ship boost VFX effect
Draft — final asset TBD
Grapple Star collectible pickup VFX trail
Draft — final asset TBD