- Full Collision System: Implementing a robust collision detection mechanism based on bounding boxes. Bounding boxes are axis-aligned rectangular prisms that encapsulate the geometry of game objects. This approach efficiently determines intersections between these boxes, providing accurate detection of mesh collisions.
- Collision Handling: Integrates comprehensive collision detection across physical components, enabling border handling and object picking mechanisms.
-
Light Sources:
- Directional Light: Uniform light emitted in a specific direction with consistent intensity across the entire scene.
- Point Light: Emulates a light source originating from a point, with intensity decreasing with distance from the source.
- Spotlight: Mimics a focused beam of light emitted within a defined cone angle, with intensity attenuating both with distance and angle from the center of the cone.
-
Lit Materials 🎨: Each material integrates 3 texture inputs to implement the Phong lighting model:
- Albedo: Defines the diffuse color and texture properties of the material.
- Specular and Roughness: Controls the metallic properties of the material, specifying its specular reflection and surface roughness.
- Ambient Occlusion: Enhances shading by simulating areas where light is occluded or scattered, adding depth and realism to textures.
- Emissive: Allows materials to emit light, enhancing their appearance and enabling the simulation of glowing or emissive surfaces.
-
Lighting Shaders 🖥️: Utilizes vertex and fragment shaders to calculate pixel intensity based on material properties. These shaders ensure accurate color representation for lit materials, incorporating diffuse, specular, ambient occlusion, and emissive effects as defined by the material textures.
- Sound System Implementation: Utilizes the
miniaudio.h
header-only library to implement a comprehensive sound system.- Handles playback, stopping, integration, and concurrent management of multiple sound sources.
- Dear ImGui Integration: Implements text rendering using Dear ImGui for displaying text on small windows above the main game window.
-
Vignette Effect: Applies a vignette effect to enhance the focus on the center of the screen by darkening the edges.
-
Color Saturation Enhancement: Improves the saturation of pixel colors to make visuals more vibrant and vivid.
-
Fog Effect Addition: Introduces a fog effect to simulate atmospheric conditions, enhancing depth and atmosphere in the game environment.
- W: Move forward.
- A: Move left.
- S: Move backward.
- D: Move right.
- F: Toggle flashlight.
- M: Control music.
- Left Mouse Click and Move: Rotate view.
- Collect all normal keys.
- Obtain the master exit key.
- Open the exit door.
- Collect coins to enhance score (optional).
- Gather power-ups to aid your progress.
- Complete objectives before the timer runs out.
Go to assets/mazes
and create a maze of your choice using the following symbols:
- p : Portal
- k : Key
- m : Master key
- | : Vertical wall
- - : Horizontal wall
- o : Coins
- r : Rocket
- s : Speed boost
- . : Empty space
- Speed Powerup: Increases player speed.
- Portal Powerup: Enables passage through walls.
- Gravity Powerup: Provides a higher view of the maze.
- GCC: GNU Compiler Collection for compiling C++ code.
- OpenGL: Graphics library used for rendering 2D and 3D vector graphics.
- C++: Programming language used for game engine development.
- CMake: Cross-platform build system used to manage the build process.
Dear ImGui
: GUI library used for text rendering and UI elements.- miniaudio: Header-only library used for sound playback and management.
Omar Said |
Ebram Atef |
Ibraam Nashaat |
Michael Ehab |