Lycia Stenson | Game Programmer

Nightbird Engine | Lycia Stenson

Nightbird Engine

Nightbird is my cross-platform C++ game engine with Vulkan rendering, supporting Windows and Linux with potential future macOS support.

GitHub Icon

Available on

GitHub Icon

This project started as an OpenGL renderer to develop my understanding of graphics programming. The project developed into my own game engine. I migrated to Vulkan and further developed its capabilities such as the scene editor and project system.

Portal issue

Build System

Premake 5 is used to generate platform-specific build files.

Tested Platforms:

  • Windows 10 & 11 - Visual Studio 2022 & 2026
  • Linux (Tested on Fedora 43) - Make & GCC

Projects

Project code containing custom object types is compiled as a shared library and loaded at runtime. These types are displayed alongside built-in objects in the editor, with custom properties exposed in the inspector and custom behaviour during simulation.

This is implemented using RTTR (Run Time Type Reflection) using the library's macros for users to register their types.

Scenes

Scenes created in the editor can be saved and loaded in the game.

Models are serialised with only the path to the .glb file, and the hierarchy is recreated upon loading the scene.

App

The Nightbird App is the executable where simulation is enabled, and the scene is rendered from the scene's Main Camera directly to the swap chain framebuffer.

Editor

The Nightbird editor is implemented using Dear ImGui.

The editor features various windows:

  • Scene Outliner - Displays the objects in the scene in a reparentable hierarchy
  • Inspector - Displays serialised properties of the selected object
  • Asset Browser - Browse folders and files contained within the Assets folder. Double-click on a scene to open it.
  • Scene - Render and traverse the 3D scene from the perspective of the Editor Camera.

A Game window is planned where the scene will be rendered from the main camera, as in the App.

Vulkan Renderer

Nightbird uses a forward renderer implemented with Vulkan supporting opaque and transparent materials.

Planned features include deferred rendering and PBR based on the Disney Principled BRDF.

© 2025 Lycia Stenson