Mine Deep. Sell High. Upgrade.
Diggle is a procedural 2D mining game built with Flutter and the Flame Engine. Players pilot a drill unit deep into the earth, managing fuel, hull integrity, and cargo space while collecting valuable ores ranging from Coal to Diamond.
The game features Solana Blockchain integration via the Mobile Wallet Adapter (MWA), powering the Diggle Machine NFT mint (gear with real in-game stat bonuses) and a weekly Miner's Pass paid in SKR, the Seeker token.
- Procedural World Generation: Every run offers a unique terrain layout. Deeper layers contain rarer ores and harder rock types.
- Physics-Based Drilling: Smooth movement mechanics with drill inertia and gravity.
- Survival Mechanics: Manage your Fuel to avoid getting stranded and watch your Hull integrity to survive fall damage and hazards.
- Mining: Collect 8 different ore types: Coal, Copper, Silver, Gold, Sapphire, Emerald, Ruby, and Diamond.
- Shop Services: Sell ores for cash, refuel your tank, and repair your hull at the surface.
- Consumables: Purchase and use items like Dynamite (3x3 explosion), C4 (5x5 explosion), Repair Bots, and Space Rifts (teleport to surface).
Use your earnings to upgrade your drill's capabilities:
- Drill Bit: Increases mining speed and allows drilling through harder rock tiers (Basic → Diamond).
- Engine: Boosts movement speed and flight thrust.
- Cooling System: Improves fuel efficiency, allowing for longer runs.
- Hull Armor: Increases max HP to withstand more damage.
- Fuel Tank: Increases maximum fuel capacity.
- Cargo Bay: Increases the amount of ore you can carry.
Diggle integrates with the Solana blockchain using solana_mobile_client.
- Wallet Connection: Supports connection via MWA-compatible apps like Phantom and Solflare.
- Network Switching: Built-in toggle between Mainnet-Beta and Devnet.
- Premium Store: Mint Diggle Machine NFTs from the candy machine via MWA.
- Miner's Pass: A weekly pass (2x weekly quest rewards) paid in SKR — a plain SPL token transfer, built and verified by the
miners-passSupabase edge function (no custom on-chain program). - NFT Gear: Diggle Machine NFTs (10k collection, 5 gear slots × 5 rarities) equip in the Hangar for real stat bonuses — and the drill visually renders the equipped parts in-game as layered pixel sprites (
assets/images/DiggleGearSpriteSheet.png), with per-part preview art on the trait cards. Unrevealed NFTs ("sealed crates") keep a flat XP/Points boost.
- Framework: Flutter (Dart)
- Game Engine: Flame
- Blockchain: Solana (solana_mobile_client, solana)
- State Management: Provider
- Architecture: Component-System pattern (Flame) + Service Locator
lib/
├── game/
│ ├── player/ # Drill movement and physics logic
│ ├── systems/ # Logic for Fuel, Economy, Upgrades, and XP
│ ├── world/ # Procedural tile generation and rendering
│ └── diggle_game.dart # Main FlameGame loop
├── solana/
│ ├── candy_machine_service.dart # Nft minting
│ ├── miners_pass_service.dart # Miner's Pass paid in SKR
│ └── wallet_service.dart # Wallet connection and MWA logic
├── ui/ # Flutter overlays (HUD, Shop, Main Menu)
└── main.dart # Entry point and app wiring
-
Persistence (Save System):
-
Implement local storage for guest only (using shared_preferences or hive) to save:
-
Current Cash & Points.
[ ] Add distinct biomes or layers with unique hardness properties.