Now where the game is out I thought it would be interesting to go more into detail with different aspects of how the game was made. I will start with the custom lighting system that allows for 40+ 2D light sources even on low spec hardware. LDD was made in Unity but this approach should work in any game engine that lets you create procedural meshes.

Why a custom lighting system?

The central mechanic in LDD is that every laser beam fired keep bouncing around and can hit the player, hence why we call it a self inflicted bullet hell. Since the visual style is inspired by disco and the colorful dance floors of the time I wanted the lasers to cast light into the environment. It also has the added benefit that it hints to the player a laser is about to enter the frame before it becomes visible.

The game has also been released for PlayStation Vita, so I needed a solution that was more performant than Unity’s standard deferred lighting, that incurs a draw call for each light drawn to the screen. There can easily be 30 lasers on the screen at the same time in the game so this would not be feasible to run on a handheld console. I also wanted the lighting to fit the shape of the laser beams. Since a laser beam is typically long and thin, none of the standard light types in Unity (direction, point, spotlight) would be a good fit.