Quick Start

SafiEngine is a 3D game engine and editor built with C++17, modern OpenGL 3.3 Core Profile, and an ECS architecture powered by Flecs. It features Jolt Physics for rigid body simulation, native C++ scripting via the Behavior system, spatial audio through miniaudio, skeletal animation, and a Dear ImGui editor with docking support.

Model Loading

Features

  • ECS Architecture: Flecs v4.0.5 for entity/component/system management
  • 3D Rendering: Multi-light Blinn-Phong shading (point, directional, spot lights), glTF model loading, procedural primitives (box, sphere, plane, cylinder, capsule), skeletal animation, particle systems
  • Physics: Jolt Physics v5.2.0 with rigid bodies, box/sphere/capsule colliders, and fixed-timestep simulation
  • Native Scripting: C++ Behavior system with BehaviorRegistry, per-entity NativeScript component, and editor integration
  • Audio: miniaudio for cross-platform audio playback with spatial sound support
  • Editor: Dear ImGui-based editor with project hub, viewport, scene hierarchy, inspector, asset browser, stats, and console panels
  • Scene Management: JSON-based scene serialization with save/load and play mode snapshot/restore

Prerequisites

  • CMake 3.15+
  • A C++17 compiler (Clang, GCC, or MSVC)
  • OpenGL (provided by the system)

All other dependencies are fetched automatically via CMake FetchContent. glad (OpenGL loader) is vendored in the project. Dear ImGui (docking branch) is included as a git submodule.

Get Started

git clone --recurse-submodules https://github.com/Abdulkader-Safi/Safi_Engine_V2.git
cd SafiEngineV2/SafiEngine
mkdir build && cd build
cmake ..
cmake --build .
./Editor

The editor opens a Project Hub where you can create or open projects, then launches the full editor with a 3D viewport, scene hierarchy, inspector, and more.