Note
Guiding Light is a game developed along its own game engine in 4 months for courses conducted by the Lodz University of Technology.
You're a lighthouse keeper and a courier… at once. In "Guiding Light", a casual time-management game, you operate alone in the Pole of Cold. And you’re the only one who can feed the penguins!
Guide the ships, pick-up the food rations, and upgrade your lighthouse.
Get ready to prevent shipwrecks and master the polar night!
Our Engine is written in modern C++23. Its architecture is based on Object-Component model used by Unity. We use DirectX 11 as our graphics API (initially it was OpenGL, but we decided to port it).
Some notable systems:
- 2D physics engine (collision detection and resolution)
- Resource Manager (for sharing resources like models and textures)
- UI
- Runtime prefab loading
- Input and Event systems
We developed our own editor along with countless tools and functionalities:
- Scene and prefab loading
- Gizmos
- Curve editors
- Debug drawings
- Debug logging
- Shader hot-swapping
- Custom inspectors for specific Components
To speed up our work, we wrote a Python script that generates (de)serialization code for all components by parsing the C++ header files, similarly to UnrealHeaderTool. (We are very proud of that.)
We are using deferred rendering, with exceptions for transparent objects and UI that use forward rendering. We managed to implement a couple of rendering algorithms:
- Screen Space Reflection
- Screen Space Refraction
- Volumetric light scattering
- Screen Space Ambient Occlusion (SSAO)
- Particles (and particle emitters, done on CPU)
- Fast Approximate Anti-Aliasing (FXAA)
- Gerstner waves (for water geometry)
- Shadow mapping (including point lights)
- Percentage-Closer Soft Shadows
Credits
Name | Role |
---|---|
Mikołaj Przybylski | Programming Lead |
Michał Galiński | Production Lead |
Jakub Januszewicz | 2D & Branding Lead |
Miłosz Kawczyński | Design Lead |
Nadia Kowalska | 3D Art Lead |
Hubert Olejnik | Rendering Lead |
Michał Świstak | Sound Design |
Julian Rakowski | Voice Acting |