top of page

A Journey of light
Overview

What I Learned

Shaders

As Technical Artist for "A Journey Of Light", one of my main responsibilities was to create and maintain shaders and materials needed to solve problems. 

Those needs involved making sure the puzzle was easily viewable from all sides, leading to the occlusion shader. Another need was displaying that gameplay objects had been activated by a light beam, leading to many animated dynamic materials.

Screenshot 2026-03-02 145618.png

"A Journey Of Light" Environment

Occlusion Shader

The occlusion shader went through many iterations.

The first was a blueprint made up of three big box collisions that represented the two sides and the corner that would be blocking the camera with the isometric view. Any actor overlapping with the boxes would be made invisible and when overlapping ended they would be made visible. This was a temporary measure implemented for an upcoming demo but the shortcomings were obvious, it was incredibly inefficient and jarring to watch as there was no transition between visibility.

The second was a post-processing effect that never came to fruition as it ended up too expensive with the amount of passes needed to be loaded real-time to cull the environment assets.

The last version that was iterated upon was a material function, created to slot into pre-existing(usually master) materials' opacity outputs. This allowed for much more flexibility on how the shader would be used per instance and made it much easier to pick and choose what was affected by the culling.

Animated orb material

AJOL Occ.png

Original Occlusion Method

AJOL Occlusion MF.png

Occlusion Material Function

Animated Materials

As a puzzle game, AJOL needed pieces, these pieces needed to easily readable from a distance. This led to their materials being animated based on (parameters) what was happening to them e.g. a light hit their input so the material shows light travelling though the object then emitting from the output.

The orb is one such material that is animated and changes colour when the level is completed. These animations are made to give the player clarity and a sense of satisfaction.

Source Control

In the process of making a game with a team, I became much more familiar with source control, in this case, Git.

I had used it on previous projects but not nearly as efficiently, as I worked on many aspects of the game in conjunction with the lead programmer on the game, improving co-ordination and comprehension of how to avoid conflicts.

We also used the practice of creating frequent branches to create many points to backup to if necessary. 

AJOL Git_edited.jpg

Github Branches

Asset Optimisation

AJOL Asset.png

"Redirector" Puzzle Object Model

Having an isometric game in which the camera was distant from most objects presented an optimisation opportunity. All objects have the luxury of having less definition/vertices as they are smaller on the screen.

As a result, all of the models I created for the game(all of the puzzle objects) attempted to use the lowest amount of vertices possible without sacrificing fidelity. This gave me further perspective on how to optimise based on the type of game and the parameters of how every object will be seen.

©2026 by Rory Simpson

bottom of page