Skip to content

ParsaFaghani/Game-Engine

Repository files navigation

🌀 MiniEngine — Lightweight OpenGL Game Engine (Stopped)

License OpenGL

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.


🧩 Dependencies

  • C++17 or later
  • OpenGL 3.3+
  • GLFW (window/input handling)
  • GLAD (OpenGL function loader)
  • GLM (math)
  • CMake 3.14+

⚙️ Build Instructions

git clone --recurse-submodules https://github.com/ParsaFaghani/Game-Engine.git
cd MiniEngine
mkdir build && cd build
cmake ..
make -j$(nproc)
./MiniEngine

🛠️ TODO (Development Roadmap)

🎮 Core Engine

  • 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)

🔦 Rendering

  • 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)

🎨 Assets / Scene

  • Load OBJ/GLTF models
  • Add basic material system
  • Texture support (diffuse / normal / specular)
  • Add scene graph / transform hierarchy

🧠 Systems

  • Node-based system
  • Physics: basic AABB collisions
  • Add scripting hooks (e.g., Lua or C++ callbacks)
  • Simple animation system

🧪 Tooling

  • In-game debug UI (using ImGui)
  • Hot-reloading shaders
  • Mouse picking / raycasting
  • Simple editor for placing Nodes

🐧 Platform / Build

  • cross-platform(Linux and windows tested)

This project is currently on hold.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages