DEV Community

Cover image for The Oracle: A Conversational D&D Character Discovery Experience
austin amento
austin amento

Posted on

The Oracle: A Conversational D&D Character Discovery Experience

This is a submission for the Algolia Agent Studio Challenge: Consumer-Facing Conversational Experiences

The Problem with Choice Paralysis

"I want to play a character like Gandalf, but cooler."

"Something that can heal but also deal damage?"

"I don't know... maybe like a sneaky magic user?"

These are real things players say when creating Dungeons & Dragons characters. They know the feeling they want, but they're facing 12 classes, dozens of races, and hundreds of subclasses. Traditional character builders force players to browse categories and read walls of text. But that's not how people actually think about characters.

The Oracle is my answer: a conversational interface that lets players describe their fantasy in natural language and receive intelligent, contextually relevant suggestions powered by Algolia's search capabilities.


What is The Oracle?

The Oracle is a guided discovery tool disguised as a mystical advisor. Players approach it like they would a wise sage in a fantasy tavern:

Player: "I want to be a frontline warrior who uses divine magic to protect allies"

The Oracle: Returns Paladin class, Oath of Devotion subclass, Protection Fighting Style, and compatible races like Human and Dragonborn

The experience feels like a conversation, but under the hood, it's powered by Algolia's intelligent search with the richly indexed D&D knowledge base.


Try The Oracle

Experience the conversational character discovery yourself:

Consult The Oracle →

Describe your fantasy. Receive your destiny.


The Conversational Flow

Stage 1: The Open Question

The Oracle opens with a search interface that invites natural language:

┌─────────────────────────────────────────────────────────┐
│  🔮 The Oracle                                          │
│                                                         │
│  "Describe your ideal adventurer, and I shall reveal    │
│   the path that awaits you..."                          │
│                                                         │
│  ┌───────────────────────────────────────────────────┐  │
│  │ I want to be a wise healer who protects nature    │  │
│  └───────────────────────────────────────────────────┘  │
│                                                         │
└─────────────────────────────────────────────────────────┘
Enter fullscreen mode Exit fullscreen mode

Players can type anything—there's no wrong input. The Oracle interprets intent, not just keywords.

Stage 2: Guided Playstyle Prompts

For players who need a starting point, we provide conversational prompts disguised as playstyle choices:

  • "I want to stand in front and take hits" → Frontline Fighter
  • "I want to deal massive damage" → Damage Dealer
  • "I want to cast powerful spells" → Spellcaster
  • "I want to keep my allies alive" → Healer
  • "I want to be sneaky and cunning" → Stealth & Cunning
  • "I want to talk my way through problems" → Face & Diplomat

Each playstyle triggers a semantically rich query that surfaces relevant options. When a player clicks "Healer," we don't just search for "healer"—we search for:

"healing support restoration life cleric druid divine nature protect ally"
Enter fullscreen mode Exit fullscreen mode

This targeted prompting ensures comprehensive, contextually relevant results.

Stage 3: Contextual Results

Results are grouped conversationally, as if The Oracle is explaining options:

┌─────────────────────────────────────────────────────────┐
│  The Oracle has spoken...                               │
│                                                         │
│  📜 RECOMMENDED CLASSES                                 │
│  ┌─────────────────────────────────────────────────┐   │
│  │ 🛡️ Cleric                                        │   │
│  │ "Divine spellcasters who channel the power of   │   │
│  │  their deity to heal wounds and smite enemies"  │   │
│  │  Primary Stat: Wisdom                           │   │
│  └─────────────────────────────────────────────────┘   │
│  ┌─────────────────────────────────────────────────┐   │
│  │ 🌿 Druid                                         │   │
│  │ "Guardians of nature who wield primal magic     │   │
│  │  and can transform into beasts"                 │   │
│  │  Primary Stat: Wisdom                           │   │
│  └─────────────────────────────────────────────────┘   │
│                                                         │
│  🧬 COMPATIBLE RACES                                    │
│  ┌─────────────────────────────────────────────────┐   │
│  │ 🧝 Wood Elf (+2 DEX, +1 WIS)                     │   │
│  │ 🌲 Firbolg (+2 WIS, +1 STR)                      │   │
│  └─────────────────────────────────────────────────┘   │
│                                                         │
│  ⚔️ RELATED OPTIONS                                     │
│  │ Life Domain • Circle of Dreams • Healing Word   │    │
│                                                         │
└─────────────────────────────────────────────────────────┘
Enter fullscreen mode Exit fullscreen mode

Stage 4: Refinement Through Dialogue

The conversation continues. If the player selects "Druid," The Oracle responds with follow-up context:

"A Druid who protects nature... Perhaps you seek the Circle of the Shepherd, who calls upon spirit guardians, or the Circle of Dreams, connected to the mystical Feywild?"

Each selection narrows the search, creating a back-and-forth dialogue that guides players to their perfect character.


How Algolia Powers the Conversation

Rich Data Indexing

The D&D codex is indexed with semantic richness that enables natural language understanding:

{
  "name": "Cleric",
  "type": "Class",
  "description": "Divine spellcasters who channel deity power",
  "tags": ["healer", "support", "divine", "holy", "priest", "restoration",
           "protection", "light", "life", "armored caster", "wisdom"],
  "primaryStat": "Wisdom",
  "playstyles": ["healer", "support", "frontline"],
  "fantasy_archetypes": ["priest", "paladin-lite", "battle medic", "holy warrior"]
}
Enter fullscreen mode Exit fullscreen mode

When a player types "I want to be a battle medic," Algolia matches against fantasy_archetypes, tags, and description—not just the class name.

Synonym Configuration

We configured synonyms in Algolia to handle player language:

gandalf => wizard, wise, magic, staff, grey
legolas => ranger, archer, elf, dexterity, bow
tank => defender, frontline, armor, shield, protection
glass cannon => damage, squishy, powerful, fragile
Enter fullscreen mode Exit fullscreen mode

Future

I hope to keep building on this platform as it's been a blast getting to know the Algolia system

Top comments (0)