Q*bert is a classic arcade game reimplemented in C++ using OpenGL and GLUT. This project brings the nostalgic pyramid-hopping adventure to modern systems with enhanced graphics and smooth gameplay. Control the iconic orange character as he navigates a pyramid of cubes, changing their colors while avoiding enemies like Coily the snake, Ugg, Wrong-Way, and Sam.
- Classic Gameplay: Faithful recreation of the original Q*bert mechanics
- Multiple Levels: Progressive difficulty with different pyramid configurations
- Enemy AI: Various enemy types with unique movement patterns
- Sound Effects: Immersive audio experience with background music and sound effects
- High Score System: Track your best performances
- Smooth Animation: Fluid character movements and transitions
- Cross-Platform: Runs on Windows and Linux systems
Click the image above to watch our Qbert gameplay demonstration
- Main Character: Q*bert navigating the pyramid
- Enemies: Coily (snake), Ugg, Wrong-Way, and Sam with unique behaviors
- Power-ups: Special items that help Q*bert in his journey
- Level Progression: Multiple levels with increasing difficulty
- Windows: MinGW-w64 or Visual Studio with C++ support
- Linux: GCC with OpenGL development libraries
- Dependencies: OpenGL, GLUT, SDL2 (for audio)
-
Clone the repository
git clone https://github.com/Kamrulhasan12345/qbert-project.git cd qbert-project -
Windows Build
build.bat
-
Linux Build
chmod +x build.sh ./build.sh
-
Run the Game
# Windows runner.bat # Linux ./runner.sh
- Arrow Keys: Move Q*bert around the pyramid
- Change all cube colors on the pyramid by hopping on them
- Avoid enemies that chase Q*bert
- Collect bonus points and power-ups
- Complete all levels to win the game
- Cube Color Change: 25 points
- Enemy Defeat: 300-500 points
- Level Completion: Bonus points based on remaining lives
- Perfect Level: Additional bonus multiplier
qbert/
โโโ iMain.cpp # Main game logic and entry point
โโโ iGraphics.h # Graphics engine and OpenGL wrapper
โโโ iSound.h # Audio system implementation
โโโ assets/
โ โโโ images/ # Game sprites and textures
โ โโโ sounds/ # Audio files and music
โโโ bin/ # Compiled executables and DLLs
โโโ examples/ # Sample code and tutorials
โโโ demo/ # Demo games and references
โโโ saves/ # Save files and high scores
- Language: C++ (C++11 standard)
- Graphics: OpenGL with GLUT
- Audio: SDL2_mixer for sound effects and music
- Build System: Custom build scripts (Batch/Shell)
- Platform: Cross-platform (Windows primary, Linux compatible)
- Game Engine: Custom 3D render engine
- Physics: Basic collision detection and movement
- Animation: Frame-based sprite animation system
- State Management: Menu, gameplay, and game over states
- File I/O: Save/load system for high scores and progress
Mahir Labib Dihan
- Department of Computer Science
- Bangladesh University of Engineering and Technology
- Email: mahirlabibdihan@gmail.com
Mohammad Kamrul Hasan
- GitHub: @kamrulhasan12345
- Responsibilities: Player - Enemy Logic, 3D Graphics Engine, Project Coordination
Sayeeb Rahman
- GitHub: @sayeeb-does
- Responsibilities: UI/UX, Game Logic, Highscores, Credits, Settings
Thanks a lot for reading till the end!








