Skip to content

sefyan0hack/GameEngine

Repository files navigation

GameEngine

CodeCov CI License: MIT lang std MSVC GCC Calng Camke

GameEngine — a modern, high-performance foundation for building games and interactive applications with C++23.


Screenshots

View

Platforms

  • Windows (MSVC/GCC/Clang)
  • Linux (GCC / Clang)
  • Web (Emscripten)
  • Android (NDK)

Prerequisites

  • C++ compiler with C++23 support (MSVC 19.44+, GCC 15+, Clang 20+)
  • CMake ≥ 3.28
  • Optional for targets:
    • Emscripten SDK (for web builds)
    • Android NDK (for Android)
    • OpenGL / Vulkan dev headers for native graphics
  • Ninja or Make (recommended: Ninja)

Getting started

  1. Clone the repository
git clone --recurse-submodules https://github.com/sefyan0hack/GameEngine.git
cd GameEngine
  1. Configure Project

2.1 Windows & Linux :

cmake -S . -B build

2.2 Android :

#Windows
set ANDROID_NDK_LATEST_HOME=C:/path/to/android_ndk_rXX
set ANDROID_SDK_ROOT=C:/path/to/android_sdk
cmake -S . -B build ^
  -DCMAKE_TOOLCHAIN_FILE=%ANDROID_NDK_LATEST_HOME%/build/cmake/android.toolchain.cmake ^
  -DANDROID_ABI="arm64-v8a"
#Linux
export ANDROID_NDK_LATEST_HOME=/path/to/android_ndk_rXX
export ANDROID_SDK_ROOT=/path/to/android_sdk
cmake -S . -B build \
  -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake \
  -DANDROID_ABI="arm64-v8a"

2.3 Web :

emcmake cmake -S . -B build
  1. Build Project
cmake --build build --config Release

TODO (implement some useful widely supported OpenGL extensions)

OpenGL Extension % Info
[ ] GL_ARB_direct_state_access 69.0% Direct State Access
[ ] GL_ARB_buffer_storage 74.2% Buffer streaming / high-performance GPU memory
[ ] GL_ARB_map_buffer_range 78.8% Partial buffer mapping control / avoid full buffer stalls
[ ] GL_ARB_draw_indirect 73.9% Indirect rendering
[ ] GL_ARB_multi_draw_indirect 72.9% Multiple draw calls in one GPU command
[ ] GL_ARB_shader_storage_buffer_object 73.2% SSBO (GPU read/write buffers in shaders)
[ ] GL_ARB_compute_shader 71.9% Compute shaders
[ ] GL_ARB_texture_storage 77.1% Immutable textures (performance + correctness)
[ ] GL_ARB_base_instance 75.4% Offset instancing per draw call
[ ] GL_ARB_explicit_uniform_location 75.2% Manually assign uniform locations in GLSL
[ ] GL_ARB_explicit_attrib_location 78.3% Control vertex layout locations cleanly
[ ] GL_ARB_sync 78.6% GPU fences (glFenceSync)
[ ] GL_ARB_bindless_texture 53.1% Textures as GPU handles instead of binding slots

About

OpenGL Based Game Engine

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors