/LeapGameEngine

A component based 3D game engine writen in C++

Primary LanguageC++

Build Status GitHub Release ViewCount

Introduction

Leap Game Engine is an open-source 3D component-based C++20 game engine.
Everyone is free to send us pull-requests with new features!

The engine is founded by two people: Lee Vangraefschepe Sander De Keukelaere

Features

Base Engine:

  • Component/Gameobject based
  • Transform component
  • GameContext singleton with a timer class and a customizable window
  • Canvas based UI system with sprites & buttons
  • ServiceLocator which is the entry point to physics, rendering and audio
  • Debug logging to console, ImGui & files

Graphics:

  • Obj loader
  • Textures
  • Materials & shaders
  • Sprite rendering
  • Camera
  • Directional light
  • Terrain

DirectX11 is the renderer library with the engine, using .fx files for shaders.
The whole graphics engine is interfaced, giving the possibility for own implementations.

Physics:

  • Rigidbody (dynamic & kinematic)
  • Colliders (box, sphere & capsule)
  • Triggers
  • Collision & trigger callbacks
  • Physics materials
  • Debug rendering

PhysX is the physics library included with the engine.
The whole physics engine is interfaced, giving the possibility for own implementations.

Utils:

The utils engine provides the engine and the user with some frequently used programming patterns.

  • Command
  • Observer
  • Singleton

The utils engine also provides frequently needed code.

  • Quaternion to Euler and vice-versa conversions
  • Debugger

Audio:

  • AudioClips
  • AudioSources
  • AudioListener

FMOD is the audio library included with the engine.
The whole audio engine is interfaced, giving the possibility for own implementations.

Input:

The input engine is a command based input system.

There is currently support for:

  • Keyboard
  • Mouse

Links

Third party libraries

Rendering

DirectX11 FX11 GLFW

Audio

FMOD

Math

GLM

Physics

NVIDIA PhysX

Utils

Visual Leak Detector Dear ImGui