Technical Sheet :
- Type: 3D Game Engine
- Creation Date/Duration: 2025/2026, 1 year
- Tools : VS Code | Cmake | C++ | Open GL | Vulkan | Jolt Physics
- Project Summary : Shard is my current personnal game engine, written from scratch (using some libraries) on my free time. It includes a 3D PBR renderer, an editor, a level system, and a lot of other things. It is still in active development.
- Project Goal : Design, Organize and Code a game engine in C++
It features :
Architecture
- A clean, organized, and modular architecture
- A platform abstraction layer (windowing, filesystem, threads, networking, crash reporting), running on Windows and Linux
- A filesystem abstraction layer and a dynamic resource management system
- Hot reload of the game module and of resources while the editor is running
Rendering
- A customizable 3D PBR rendering engine with dynamic lights, MSAA, double-sided materials and an HDR pipeline with a tonemapper (exposure and tonemapper settings per world)
- A render hardware interface (RHI) with Vulkan and OpenGL 4.6 backends, plus a null backend for headless runs
- A render graph that schedules the passes, with a depth prepass and per-pass GPU timers
- A render thread that draws in parallel with the simulation, fed by snapshots of the scene
- Probe-based global illumination, baked lightmaps (with automatic lightmap UV generation), and a path-traced mode for reference renders
- Billboards, with instanced rendering, an atlas, and editor icons
- BC7 / BC5 / BC4 texture compression with an on-disk cache, plus texture size limits to save video memory
Gameplay and systems
- Integration of various libraries: FMOD for audio (3D positional sound), Jolt for physics (rigid bodies and collisions)
- Input for keyboard, mouse and gamepads (dead zones, rumble)
- FBX model import (ufbx)
- A reflection system for components, with tooltips on fields and JSON serialization
- A level system with a hierarchical structure: Levels → Actor → Component
- A scripting API (currently C++ only)
Editor and tooling
- An editor built using ImGui (supports a “game” preview mode and game module loading), with a scene hierarchy, gizmos, thumbnails, project settings, and a prompt to save unsaved levels before playing
- A developer console with variables and commands, scriptable for stress tests
- A headless runner with a deterministic mode, input recording and replays, and a dedicated server mode
- Automated tests, a smoke test, a stress test and a benchmark, all run in CI on Windows and Linux
The engine is open source and available on GitHub.
https://github.com/Windokk/Shard




Leave a comment