Saint Game Engine

May 24, 2025 (6mo ago)

Platform:
Windows
Tools:
C++
Vulkan
gLTF 2.0
HLSL
Cmake
SDL2
ECS

Overview

This is a sample project structure based on best practices from game development portfolios. Your project should tell a compelling story about what you built, the challenges you faced, and the solutions you implemented.

The Challenge: Architecting for Performance and Scale

The challenge was to deliberately break from traditional, monolithic game object architectures and create a data-oriented design focused on maximum performance and minimal memory footprint.

Having built game engines twice before, the objective was not just to implement features, but to strategically sequence development to ensure long-term stability and iteration speed. This meant establishing a robust 2D foundation using SDL2 first, proving the core systems and architecture before tackling the massive complexity of a modern 3D Physically Based Rendering (PBR) pipeline using Vulkan.

The core technical pillars were:


Implementation & Architectural Strategy

Phase 1: The 2D Foundation (C++ & SDL2)

The initial phase focused on building the core engine framework and performance-critical systems, validating the architecture without the complexity of 3D rendering overhead.

Custom Entity Component System (ECS)

To achieve memory efficiency and simplify the API compared to third-party solutions (e.g., EnTT), I designed and implemented a custom ECS from scratch.

Core Utility Systems

Gameplay Screenshot

Phase 2: The Transition to 3D (Vulkan & PBR)

Upon successful validation of the ECS and framework, the engine was refactored to incorporate the Vulkan graphics API, a significant undertaking handled smoothly due to prior planning and experience.

Physically Based Rendering (PBR) Pipeline

Asset Registry (Tier 2: 3D Integration)

Results

Successfully rendered complex scenes (e.g., Sponza) and models (e.g., glTF Helmet), validating the entire PBR pipeline and asset workflow.


Conclusion & Key Takeaways

This project validated the effectiveness of strategic, phased architectural design in complex software development.

The ability to make flexible assumptions about future requirements, like designing a generic Asset Registry interface in Phase 1, allowed for efficient migration, a critical skill learned over years of professional software development. This project successfully moved from conceptual design to a functional, high-performance 3D engine core.

Gallery

Figure 1. Saint Game Engine Entity Component System API Sample

Saint Game Engine Entity Component System C++ API Sample

Figure 2. Saint Game Engine Entity Component System Registry Logs

Saint Game Engine Entity Component System Registry Logs

Figure 3 Saint Game Engine Profiling

Saint Game Engine C++ Profiling