Foundation Engine

Foundation Engine

Overview

The Foundation Engine is a lightweight 2D game engine which enables the user to create sprite based applications. At the time of writing this blog (03/04/23), the engine supports the following:

  1. A 2D batch renderer written in OpenGL 4.6
  2. Texture atlas support
  3. An entity component system (ENTT)
  4. Scene serialization
  5. An event dispatcher system
  6. A scene editor with a user interface (powered by ImGui Dockspace)
  7. Guizmos for translation, rotation and scaling operations.
  8. C++ native scripting
  9. 2D Physics - Collision, Forces and Impulse

Batch Renderer

In anticipation of high numbers of entities, the batch renderer enables the rendering of thousands of geometric shapes at a significantly reduced draw call count. Dynamic texturing is supported allowing for unique texturing amongst the quads.

Graphics Programming in Direct X11
Graphics Programming in Direct X11

Entity Component System

I chose to use ENTT to handle the large number of entities as well as the considerable number of configurations said entities may 'own'. Within the editor layer, it is straightforward to add different components to the selected entity through the side panel.

Physics

The framework supports a 2D physics engine, simulating physics on all entities with a rigidbody component attached.

Graphics Programming in Direct X11

FOOTER

This is where all the legal stuff goes I reckon.

POPULAR TAGS

Engine Programming Graphics Programming Software Engineering C++ C# HLSL Direct X Game Programming GLSL

Rhys Duff Portfolio