MiniEngine is a minimal yet modular OpenGL-based game engine sandbox, written in modern C++.
Its purpose is to provide a clean, extensible foundation for learning real-time rendering, camera control, input systems, and general 3D engine architecture.
- C++17 or later
- OpenGL 3.3+
- GLFW (window/input handling)
- GLAD (OpenGL function loader)
- GLM (math)
- CMake 3.14+
git clone --recurse-submodules https://github.com/ParsaFaghani/Game-Engine.git
cd MiniEngine
mkdir build && cd build
cmake ..
make -j$(nproc)
./MiniEngine- Refactor input system into event-based callbacks
- Add customizable input mapping / keybinding
- Abstract rendering into a Renderer class
- Add frame timing & FPS counter
- Support multiple camera types (FPS, orbit, free-fly)
- Add directional lighting (Phong shading)(simple)
- Point and spot light support
- Normal mapping and specular highlights
- Skybox with cubemap shaders
- Post-processing effects (bloom, fog, grayscale, etc.)
- Shadow mapping (depth maps)
- Load OBJ/GLTF models
- Add basic material system
- Texture support (diffuse / normal / specular)
- Add scene graph / transform hierarchy
- Node-based system
- Physics: basic AABB collisions
- Add scripting hooks (e.g., Lua or C++ callbacks)
- Simple animation system
- In-game debug UI (using ImGui)
- Hot-reloading shaders
- Mouse picking / raycasting
- Simple editor for placing Nodes
- cross-platform(Linux and windows tested)
This project is currently on hold.