Game Engine Programming | NSEngine

// SYSTEM_SPECS

  • ENGINE: Custom SDL and OpenGL
  • LANGUAGE: C++
  • CORE_TECH:

// DEPLOYMENT

01 // PROJECT_ABSTRACT

The goal of this project was to develop a 3D game engine and prototype game in C++ using a custom hybrid architectural design combining inheritance and an Entity Component System (ECS). Built from the ground up using a professional toolchain, including CMake for build management and Git via Fork, the engine focuses on highly integrated subsystems designed for scalability and reusability.

Architecturally, the system utilizes a clear hierarchy: a centralized Core manager handles initialization, baseline systems execution, and management of independent game environments. These environments encapsulate scene-specific logic, owning a collection of entities which in turn host custom component modules. A basic structural overview of this data ownership flow can be seen below.


02 // ARCHITECTURE_DETAILED

Tech used C++, Rend, SDL, ReactPhysics3D Engine Loop - Events (just what they are, let the report explain) Environments Entity Component system - Custom Components Resources and inheritance Simple game demo


03 // HURDLES_RESOLVED

The single biggest challenge i faced while creating this project was the shear volume of things to consider while creating a game engine, which can be easily become overwhelming. Because I tackled this through upfront planning rather than coding on the fly, enforcing a strict structural hierarchy before opening the IDE at all. As detailed in the class architecture diagram at the very top of this page, I mapped the entire engine into four isolated areas of responsibility: configuration control (Core), scene management (Environment), game object creation (Entity), and modular behavior (Component). This planning ensured that no matter how many features were added later, each had a predetermined, isolated slot to live in without breaking the rest of the ecosystem.


04 // RESEARCH_PAPER

If you would like to look at the full paper i wrote for this project, please click the link below.

> FETCH_FULL_RESEARCH_PAPER.PDF