Encounters, Geocaching & Collectibles¶
Proximity-triggered encounters between Dilders, riddle-based geocaching treasure hunts with physical electronic prizes, and a collectible ecosystem that doubles as a community growth engine.
Three-Layer Gameplay System¶
The encounter system builds on the existing peer discovery protocol and treasure hunt system with three new layers:
- Proximity Encounters — When two Dilders detect each other via BLE, both devices react with unique audio, animations, and a collectible exchange
- Riddle Hunts — Curated geocaching challenges with text riddles, approximate locations, and physical electronic prizes in weatherproof capsules
- Collectible Ecosystem — Digital and physical collectibles that drive community engagement and word-of-mouth marketing
1. Proximity Encounters — "Dilder Meet"¶
Every Dilder broadcasts a 13-byte BLE advertising packet with the DLDR group ID, a unique device ID, and the pet's current emotion state. When two Dilders come within BLE range (~10-30m), the encounter triggers automatically:
| Step | What Happens |
|---|---|
| Detection | BLE scan matches DLDR group ID, validates version, checks 24-hour cooldown |
| Alert | Piezo plays a unique 3-note encounter chime (derived from other device's ID hash) |
| Display | E-ink shows encounter screen: other pet's name, emotion, evolution form, encounter count |
| Reward | +25 XP, +15 happiness, mood → Excited, encounter logged to flash |
| Trade | Optional: each player can offer one collectible for exchange via joystick |
The Dilder Chime¶
Each Dilder generates a unique 3-note audio signature from its device_id hash:
note_1 = MIDI_NOTE[(device_id >> 0) & 0x0F] // 16 possible root notes
note_2 = MIDI_NOTE[(device_id >> 4) & 0x0F] // 16 possible second notes
note_3 = MIDI_NOTE[(device_id >> 8) & 0x0F] // 16 possible third notes
duration = 150ms per note, 50ms gap
Total: ~550ms
The encountering Dilder plays the other device's chime — so both owners hear something new. This creates recognition (you learn your own Dilder's voice) and curiosity (bystanders hear the chime and ask what it is).
Encounter Display¶
┌──────────────────────────────────┐
│ DILDER MEET! │
│ │
│ 🐙 ~~~~ 🐙 │
│ "Sparky" "Bubbles" │
│ │
│ Sparky is feeling: EXCITED │
│ Evolution: Reef Guardian │
│ Encounters: 14 │
│ │
│ [🎁 Trade offer: Coral Hat] │
│ [A: Accept] [B: Pass] │
└──────────────────────────────────┘
Anti-Farming¶
- 24-hour cooldown per unique device_id
- 5 rewarded encounters per day (extras log but give no XP)
- Encounter history: last 256 entries in flash (2KB)
Extended GATT Payload¶
On BLE connection after detection, a richer 26-byte payload is exchanged:
| Field | Size | Purpose |
|---|---|---|
pet_name |
16B | Display name (UTF-8) |
evolution_form |
1B | Which of 6 evolution forms |
life_stage |
1B | Current life stage |
encounter_count |
2B | Lifetime encounters |
trade_offer_id |
2B | Collectible offered for trade |
trade_offer_rarity |
1B | Rarity tier |
genome |
3B | 17-bit genetic traits |
2. Riddle Hunts — Geocaching with Physical Prizes¶
How They Differ from Treasure Hunts¶
| Feature | Treasure Hunt (existing) | Riddle Hunt (new) |
|---|---|---|
| Trigger | Automatic (daily, milestones) | Community-placed or event-seeded |
| Location | Random GPS within radius | Curated real-world spot |
| Navigation | Compass + exact distance | Approximate area + riddle clue |
| Prize | Virtual (XP, cosmetics) | Physical electronic collectible |
| Difficulty | Walk there | Solve riddle + find capsule |
| Duration | 1 hour max | Days/weeks (persistent) |
Riddle Display¶
┌──────────────────────────────────┐
│ RIDDLE HUNT #0042 │
│ │
│ "Where iron horses once drank │
│ and the clock tower still │
│ watches, look beneath the │
│ bench that faces west." │
│ │
│ Area: Hauptbahnhof district │
│ Radius: ~200m │
│ Placed: 3 days ago │
│ Found by: 2 others │
│ │
│ [A: Navigate] [B: Skip] │
└──────────────────────────────────┘
Physical Capsule Contents¶
Each capsule contains an NFC tag (NTAG215, ~$0.30) and a physical electronic prize:
| Tier | Example Prize | Cost | Rarity |
|---|---|---|---|
| Common | LED pack, resistor kit, jumper wires | $0.50-1.00 | 60% |
| Uncommon | Piezo buzzer, breadboard, header pins | $1.00-2.00 | 25% |
| Rare | NeoPixel ring, I2C sensor breakout, OLED display | $3.00-5.00 | 10% |
| Legendary | Pico W board, e-ink display, exclusive 3MF on USB | $5.00-15.00 | 4% |
| Mythic | Pre-assembled Dilder, signed PCB, custom personality | $15.00-40.00 | 1% |
Collection Mechanism¶
- Find the capsule at the riddle location
- Hold the Dilder's NFC reader against the NTAG215 tag (or enter printed code via joystick)
- Collectible ID is verified and added to inventory
- Tag marked as redeemed — subsequent scans show "Already collected!"
- Reward animation plays, physical component is yours to keep
Cache Keeper Program¶
Community members who place and maintain caches earn:
- Exclusive Cache Keeper cosmetics
- Early access to Riddle Hunt features
- Cache Keeper starter kit (10 capsules, NFC tags, containers, labels)
- Listed on the community leaderboard
3. Collectible Ecosystem¶
Digital Collectibles¶
| Category | Examples | Source |
|---|---|---|
| Cosmetics | Hats, accessories, backgrounds, tentacle styles | Encounters, hunts, achievements |
| Sound Packs | Custom chimes, alert tones, mood music | Rare encounters, mythic hunts |
| Personality Fragments | New emotion variants, quote packs | Life stage transitions, hunts |
| Genome Traits | Bioluminescent, deep-sea, coral | Mating encounters, legendary hunts |
| Lore Fragments | Story pieces about Jamal's origins | Scattered across riddle hunts |
Trading¶
During encounters, each player can offer one collectible:
- Both must accept (joystick press) for the trade to execute
- Items are fully transferred — giver loses it, receiver gains it
- No duplicate protection — genuine scarcity
- Trade history logged to flash
Collection Journal¶
┌──────────────────────────────────┐
│ COLLECTION JOURNAL │
│ │
│ Cosmetics: 12/48 ████░░░░ 25% │
│ Sounds: 3/16 ██░░░░░░ 19% │
│ Lore: 7/20 ███░░░░░ 35% │
│ Traits: 2/8 ██░░░░░░ 25% │
│ Encounters: 31 │
│ Hunts: 8 │
│ │
│ [↑↓: Browse] [A: Details] │
└──────────────────────────────────┘
4. Marketing & Community Growth¶
The Viral Loop¶
Curiosity (chime in public) → Demonstration (encounter animation)
→ Desire (want one) → Access (GitHub free / Patreon kit)
→ Network Effect (more Dilders = more encounters = more fun)
Revenue Tiers¶
| Tier | Price | What You Get |
|---|---|---|
| Free | $0 | Full firmware, all gameplay, BLE encounters, digital collectibles |
| Supporter | $5/mo | Monthly personality pack, Cache Keeper starter kit |
| Builder | $15/mo | Pre-assembled kit, exclusive personalities, early Riddle Hunts |
| Legendary | $30/mo | Custom-engraved case, unique chime, mythic cache placement rights |
5. Technical Requirements¶
Hardware Additions¶
| Component | Purpose | Cost | Phase |
|---|---|---|---|
| PN532 NFC reader | Tap-to-collect | ~$3 | Optional |
| PA1010D GPS | Riddle Hunt navigation | ~$12 | Phase 4B |
| QMC5883L magnetometer | Compass heading | ~$2 | Phase 4B |
| Vibration motor | Haptic encounter feedback | ~$1 | Optional |
Flash Budget¶
| Data | Size |
|---|---|
| Encounter log (256 entries) | 2KB |
| Collectible inventory (128 items) | 512B |
| Active riddle hunt | 256B |
| Trade history (64 entries) | 512B |
| Total | ~3.3KB |
Power Impact¶
BLE encounter scanning adds ~0.3 mA average to the power budget — approximately 5% reduction in battery life. The chime draws 15 mA for 550ms per encounter.
Implementation Phases¶
| Phase | Features |
|---|---|
| 3A | BLE encounter detection, chime, XP/happiness reward, encounter log |
| 4A | Collectible inventory, trading UI, collection journal |
| 4B | Riddle Hunt system, GPS navigation, compass display |
| 5 | NFC tap-to-collect, physical capsule verification |
| Community | Cache Keeper program, riddle portal, leaderboards |
Full design doc: Gamplay Planning/14-encounters-geocaching-collectibles.md