Skip to content

nourabouzeid/Push-The-Box

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

122 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Push-The-Box

Menu screen

menu screen

Push the blocks, reach the key, claim your win!

game scene

Think you're skilled enough to dodge traps and escape this fate?

game over

Game Idea

You land in a strange world made of floating islands. Your goal is to push boxes to build paths, watch out for sneaky traps, and keep moving forward. If you’re smart and quick, you’ll reach the key and win the game!

Technology Used

🎮 Game Engine & Architecture

  • Built using C++17 and OpenGL.
  • Modular Entity-Component-System (ECS) architecture.
  • Scene data defined in JSON files, no hardcoded objects.

🎨 Rendering & Shaders

  • Forward rendering pipeline with:
    • Depth testing
    • Face culling
    • Blending
    • Color/depth masks
  • GLSL shaders for:
    • Color mixing
    • Checkerboard patterns
    • Texture mapping
    • Lighting and post-processing

💡 Lighting System

  • Support for multiple lights with different types and parameters.
  • Implemented lighting model with:
    • Albedo
    • Specular
    • Roughness
    • Emission

🌌 Sky & Post-processing

  • Sky sphere rendering for immersive environments.
  • Framebuffer rendering with post-processing effects:
    • Vignette
    • Chromatic aberration

🧱 Mesh & Materials

  • Mesh rendering using:
    • Vertex Buffer Objects (VBOs)
    • Element Buffer Objects (EBOs)
    • Vertex Array Objects (VAOs)
  • Material system combining:
    • Shader programs
    • Pipeline state
    • Textures & samplers

🧪 Testing & Configurations

  • Modular test states: shader-test, mesh-test, texture-test, etc.
  • JSON-based configuration files in /config.
  • Batch testing using scripts/run-all.ps1 and result comparison via compare-all.ps1.

Build and Run

  • Make sure you have cmake,c++ compiler and cmake-tools for vscode extenstion
  • If you're using linux like me, don't worry, it's made cross-platform
  1. From vscode, F7 or choose build in the below bar
  2. Run the following command
        ./bin/GAME_APPLICATION

Contributors


jpassica


nourabouzeid


Abdelruhman Samy


Mariam Amin

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors