Tom Thornton



The opening scene of the game. The main character wakes up in their office, but cannot remember how they got there.

Lucerna was my first major project in C. Through it I learned a lot about systems level and graphics programming, such as working with OS and graphics APIs and structuring my codebase to separate platform dependent components.

It featured a windows platform layer; 2D OpenGL renderer with post-processing effects such as bloom, grain/noise, gaussian blur; custom hash table implementation; custom serialisation format; custom arena based memory allocation; an immediate mode user interface for developer tools; an in game level editor; asset and shader hot reloading/recompilation.

Although it is unlikely to ever be finished as a game, I had a lot of fun working on it, and the lessons I learned during my time with the project have been critical to my progression as a programmer.

The source code is available here.