A captivating voxel-based sandbox game inspired by Minecraft, built with modern C++ and OpenGL. Experience block-based world building, survival mechanics, engaging audio, and a fully immersive gaming experience with Minecraft-style textures and aesthetics.
- Block-Based World Building: Place and destroy blocks to create your own structures
- Minecraft Textures: Authentic block textures recreating the classic Minecraft aesthetic
- Dynamic Lighting System: Real-time lighting with dynamic shadows and ambient occlusion
- Interactive UI: Intuitive game interface for inventory, crafting, and settings
- Persistent World: Save and load your creations
- Three Enemy Types: Encounter diverse hostile mobs with unique behaviors
- Animal Companions: Discover peaceful wildlife in your world
- Advanced AI: Intelligent pathfinding and behavior systems
- Sound Effects: Rich audio feedback for interactions, combat, and environmental events
- Spatial Audio: Direction-aware sound positioning
- Voxel Rendering: Efficient chunk-based rendering system
- Post-Processing Effects: Visual enhancements and special effects
- Weather System: Dynamic environmental conditions
- Particle Effects: Visual feedback for actions and events
Minicraft draws inspiration from Minecraft's iconic block-based world design and visual style. We've recreated the essence of voxel-based gameplay while building our own rendering engine and expanding with unique features, immersive audio, and engaging entity interactions. This project celebrates the creative freedom of sandbox gaming.
- Block-based voxel world with dynamic loading
- Chunk system for efficient memory and rendering
- Save/load persistent worlds
- Dynamic lighting and shadow rendering
- Advanced AI pathfinding for enemies and animals
- Entity collision detection and physics
- Behavior trees for complex NPC interactions
- Animation system for entities
- Mining and block destruction with durability
- Inventory system with item management
- Crafting recipes and crafting table
- Item dropping and pickup system
- Player health and damage system
- Respawn mechanics
- Attack and combat system
- Enemy drop mechanics
- Interaction zones and callbacks
- Dynamic camera system
- Entity animations and skeletal rigging
- Particle systems for effects
- Screen shake and visual feedback
- Transparency and alpha blending
- Fog and distance culling
|
Main Menu |
Instructions |
Game UI |
|
In-Game UI |
Inventory |
Water |
- Ambient Music: Dynamic background music that adapts to gameplay
- Sound Effects:
- Block breaking and placing sounds
- Enemy attacks and ambient noises
- Animal vocalizations
- UI interaction sounds
- C++ Compiler (C++17 standard)
- CMake 3.5.0 or higher
- OpenGL 3.3 or higher
- Linux/macOS/Windows with appropriate development tools
# Clone the repository
git clone <repository-url>
cd Graphics-project
# Create build directory
mkdir build
cd build
# Configure and build
cmake ..
make
# Run the application
./bin/GAME_APPLICATIONsudo apt-get install build-essential cmake libgl1-mesa-dev libglew-dev./bin/GAME_APPLICATION- WASD: Move around the world
- Mouse: Look around and aim
- Click: Break/Place blocks
- E: Open inventory
- Esc: Open menu
Game settings can be customized via JSON configuration files in the config/ directory:
app.jsonc- Main game configuration- World and gameplay settings
- Audio and graphics preferences
Graphics-project/
├── source/ # Game source code
│ ├── main.cpp # Game entry point
│ ├── common/ # Shared systems
│ │ ├── application.hpp/cpp
│ │ ├── asset-loader.hpp/cpp
│ │ ├── shader/ # Graphics & shader system
│ │ ├── input/ # Keyboard & mouse input
│ │ └── components/ # Game entities (enemies, animals, player, UI)
│ └── states/ # Game states (menu, play, etc.)
├── assets/ # Game assets
│ ├── shaders/ # GLSL shader files
│ ├── models/ # 3D models (enemies, animals, blocks)
│ ├── textures/ # Minecraft-style textures & UI sprites
│ └── sounds/ # Audio files (music, effects, ambient)
├── config/ # Game configuration files
│ ├── app.jsonc # Main game config
│ └── level-configs/ # World & gameplay settings
├── vendor/ # Third-party libraries
│ ├── glfw/ # Window management
│ ├── glad/ # OpenGL loader
│ ├── glm/ # Math library
│ ├── imgui/ # UI library
│ ├── miniaudio/ # Audio engine
│ └── json/ # JSON parsing
├── build/ # Build output (generated)
├── bin/ # Game executable (generated)
└── CMakeLists.txt # Build configuration
- Use C++17 standard features
- Follow consistent naming conventions (snake_case for functions, PascalCase for classes)
- Include comprehensive documentation for systems
- New Enemies/Animals: Create entity components in
source/common/components/ - New Blocks/Items: Add to asset system with texture definitions
- New Audio: Place in
assets/sounds/and register in audio manager - UI Elements: Extend ImGui-based interface in game states
- Game Logic: Implement in appropriate game state files under
source/states/
- Models: Use OBJ or binary mesh formats compatible with asset loader
- Textures: Minecraft-style 16x16 or 32x32 pixel textures
- Audio: Support for common formats (WAV, MP3)
- Shaders: GLSL compatibility with OpenGL 3.3+
- GLFW: Cross-platform window and input management
- GLAD: Modern OpenGL loader (3.3+)
- GLM: High-performance mathematics for 3D graphics
- Dear ImGui: Real-time UI rendering and menus
- Miniaudio: Powerful audio engine for music and sound effects
- JSON: Configuration file parsing for game settings
- OpenGL: Modern graphics rendering
All dependencies are included in the vendor/ directory for easy building.
| Esraa Hassan | Hagar Abdelsalam | Abdallah Safan | Mohamed Yasser |