C++ Custom Game Engine : Shard Engine

•

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

Your email address will not be published. Required fields are marked *