Guiding Light is a game developed along it's 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!
Go to: https://oelj.itch.io/guiding-light
Run the following command to generate the build system:
cmake -B build
or use the build.bat
which does the same.
To compile and run, C++ compiler with C++23 support is required. MSVC 14.40 has been tested.
.sln
file is located in the generated /build
directory.
You can open it in Visual Studio, choose the desired build configuration (Debug
is the default), and simply run it.
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
- 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
Editor's UI is made with ImGui and it's extensions: ImGuizmo, ImPlot. Audio is handled by miniaudio. glm for additional math operations. (De)serializing yaml: yaml-cpp. Window abstraction glfw. Helper loading libraries used: DDSTextureLoader, stb_image, assimp.
🏆 ZTGK 2024 Game Development category winner
🏆 ZTGK 2024 Activision special award winner
Name | Link | Role |
---|---|---|
Mikołaj Przybylski | https://github.com/0GreenClover0 | Programming Lead |
Michał Galiński | https://github.com/MikeMG-PL | Production Lead |
Jakub Januszewicz | https://github.com/boniffacy | 2D & Branding Lead |
Miłosz Kawczyński | https://github.com/MiloszKawczynski | Design Lead |
Nadia Kowalska | https://github.com/nadkow | 3D Art Lead |
Hubert Olejnik | https://github.com/umbc1ok | Rendering Lead |
Michał Świstak | Sound Design | |
Julian Rakowski | https://www.linkedin.com/in/julian-rakowski/ | Voice Acting |