Gameplay Overview
-
Game Objective – Plan the route and dig through layers of blocks to reach the bottom within a limited number of digs.
-
Block Types –
-
Dirt Blocks: Can be destroyed and remain floating.
-
Rock Blocks: Cannot be destroyed and fall due to gravity when unsupported.
-
Explosive Blocks: Destroy surrounding blocks when broken.
-
Lava Blocks: Melt player on contact.
-
Portal Blocks: Teleport player to the other portal block.
-
-
Dynamic Difficulty – Levels become increasingly challenging with fewer dig counts and more obstacles.
-
Lava Hazard: Lava falls from the top to pressure the player into digging faster. Player dies if lava touches player. As the game becomes more challenging, some blocks are also covered in lava, instantly melting the player on contact.
-
Implemented Features
-
Entity-Component System (ECS) – Designed and implemented the core game architecture in C++ with OpenGL, enabling modular and efficient management of game objects and behaviors.
-
OpenGL Animation – Managed sprite sheet texture coordinates to create smooth frame transitions, dynamically updating frames based on elapsed time.
-
Particle System – Developed a custom particle system with elastic collision calculations and fragment shaders to simulate lava-like visual effects.
-
Collision Detection & Optimization – Implemented space partitioning and multithreading techniques to improve collision accuracy and performance in complex scenes.
-
Audio System – Integrated audio logic for gameplay events, ensuring responsive sound feedback during digging and explosions.