Skip to content

Theo-Mestre/Sapphire

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sapphire

Sapphire is a game engine developed in C++ using OpenGL. It started as a personal project to explore game engine architecture and learn how to manage a multi-system application. Inspired by The Cherno's game engine series, this project has been a hands-on journey into graphics programming, rendering techniques, and engine development.

Why I Built This

I wanted to understand how a game engine works under the hood while also tackling the challenges of structuring a multi-system application. Rather than focusing purely on the complexity of code, my goal was to design an engine that effectively integrates different components, such as rendering, scene management, and EditorUI.

Development Journey

  1. Core Engine: I began by implementing the core application that I could rely on to build the redenring features.
  2. Graphics Features: I progressively added:
    • Quad rendering
    • Texturing & blending
    • Batch rendering
    • Frame buffers
  3. Lighting System: I experimented with a simple shader-based lighting system to push my understanding of real-time rendering.
  4. Scene Management & Editor: Currently, I am developing a scene management system and an editor to make the engine more practical for game development.

Installation

To get started, clone the repository:

git clone https://github.com/Theo-Mestre/sapphire.git

Then, build the project using the SetupWindows.bat script located inside the Scripts folder.

Tech Stack

  • Language: C++20
  • Rendering: OpenGL 4.5

Dependencies

License

This project is licensed under the MIT License - see the LICENSE file for details.