feat: Add RPG & Tabletop Gaming Frameworks

Created rpg_frameworks.py with 15 RPG content types:

CORE RULEBOOKS:
1. Core Rulebook - Main game system (300-500 pages)
2. Quickstart - Condensed intro (16-32 pages)

GAME MASTER GUIDES:
3. Game Master Guide - Running games, worldbuilding
4. Adventure Module - Ready-to-run adventure
5. Campaign Setting - Complete world sourcebook

SUPPLEMENTS:
6. Player's Companion - New races/classes/options
7. Monster Manual - Creatures catalog
8. Thematic Sourcebook - Deep dive on theme

ADVENTURE TYPES:
9. Dungeon Crawl - Classic dungeon delve
10. Hex Crawl - Open world sandbox
11. Dungeon World Style - Narrative-forward

SPECIALTY:
12. Worldbuilding Guide - How to build worlds
13. Props and Handouts - Physical/digital props
14. Solo Adventure - Single player RPG
15. LARP Document - Live action roleplaying

Each includes detailed stages, prompt templates, tone guidance, typical length.

Functions:
- get_rpg_frameworks()
- suggest_rpg_framework()
This commit is contained in:
2026-03-14 01:10:11 +00:00
parent 2be17c5e85
commit 110aab6ce9
2 changed files with 641 additions and 0 deletions
+10
View File
@@ -10,6 +10,7 @@ Key components:
- textbook_frameworks: Educational/academic frameworks
- academic_papers: Established academic paper types
- creative_frameworks: Interactive, epistolary, experimental formats
- rpg_frameworks: Tabletop RPG content (DM guides, modules, etc.)
"""
from opus_orchestrator.nonfiction.classifier import (
@@ -66,6 +67,11 @@ from opus_orchestrator.nonfiction.creative_frameworks import (
get_creative_frameworks,
suggest_creative_framework,
)
from opus_orchestrator.nonfiction.rpg_frameworks import (
RPG_FRAMEWORKS,
get_rpg_frameworks,
suggest_rpg_framework,
)
__all__ = [
# Classifier
@@ -113,4 +119,8 @@ __all__ = [
"CREATIVE_FRAMEWORKS",
"get_creative_frameworks",
"suggest_creative_framework",
# RPG Frameworks
"RPG_FRAMEWORKS",
"get_rpg_frameworks",
"suggest_rpg_framework",
]
@@ -0,0 +1,631 @@
"""RPG & Tabletop Gaming Frameworks.
Game Master guides, adventure modules, worldbuilding supplements, and RPG content.
The full ecosystem of tabletop roleplaying game publishing.
"""
from opus_orchestrator.nonfiction_taxonomy import (
ReaderPurpose,
StructuralPattern,
NonfictionCategory,
)
RPG_FRAMEWORKS = {
# ==========================================================================
# CORE RULEBOOKS
# ==========================================================================
"core_rulebook": {
"name": "Core Rulebook",
"description": "The main game system book. Contains all core mechanics, character creation, and essential rules.",
"purpose": ReaderPurpose.LEARN_HANDS_ON,
"structure": StructuralPattern.SEQUENTIAL,
"category": NonfictionCategory.RPG,
"stages": [
"Introduction - What is this game",
"How to Read This Book",
"Chapter 1: Creating Characters",
"Chapter 2: Races/Species",
"Chapter 3: Classes/Roles",
"Chapter 4: Abilities and Skills",
"Chapter 5: Equipment",
"Chapter 6: Combat",
"Chapter 7: Magic/Powers",
"Chapter 8: Exploration",
"Chapter 9: Social Encounters",
"Chapter 10: Gamemastering",
"Chapter 11: Monsters/NPCs",
"Appendix A: Reference Tables",
"Appendix B: Spells/Powers List",
"Appendix C: Pre-generated Characters",
"Index",
],
"prompt_template": """Write a core rulebook for: {game_system}
Include:
- Character creation (step by step)
- Core mechanics explained clearly
- Character options (races, classes)
- Combat system
- Magic/powers (if applicable)
- GM guidance
- Reference material""",
"tone_guidance": "Clear, comprehensive, encouraging. Accessible to new players but complete for veterans.",
"typical_length": "300-500 pages",
"audience": "Players and Game Masters",
},
"quickstart": {
"name": "Quickstart Rulebook",
"description": "Condensed intro version. Get to playing fast. Usually free or cheap.",
"purpose": ReaderPurpose.LEARN_HANDS_ON,
"structure": StructuralPattern.SEQUENTIAL,
"category": NonfictionCategory.RPG,
"stages": [
"Welcome - What's this game",
"Character Creation (abbreviated)",
"The Basics - Core rules",
"Combat (simplified)",
"Adventure - Mini dungeon/campaign",
"Character Sheet",
"Advanced Options (optional)",
],
"prompt_template": """Write a quickstart for: {game_system}
Include:
- 5-page max rule summary
- Streamlined character creation
- One complete adventure
- Character sheet""",
"tone_guidance": "Exciting, fast, enticing. Make them want the full book.",
"typical_length": "16-32 pages",
"audience": "New players, convention demos",
},
# ==========================================================================
# GAME MASTER GUIDES
# ==========================================================================
"game_master_guide": {
"name": "Game Master Guide",
"description": "The GM's bible. Running games, worldbuilding, NPC creation, encounter design.",
"purpose": ReaderPurpose.LEARN_HANDS_ON,
"structure": StructuralPattern.SEQUENTIAL,
"category": NonfictionCategory.RPG,
"stages": [
"Introduction - Being a GM",
"Part 1: Foundations",
" - Session Zero - Setting expectations",
" - Preparation techniques",
" - Running combat",
" - Running social encounters",
" - Running exploration",
"Part 2: Worldbuilding",
" - Creating campaign settings",
" - Factions and politics",
" - Religion and culture",
" - Economy and technology",
"Part 3: NPC Creation",
" - Villains",
" - Allies",
" - Bystanders",
"Part 4: Encounter Design",
" - Combat encounters",
" - Skill challenges",
" - Social encounters",
"Part 5: Advanced GMing",
" - Improvisation",
" - Difficulty balancing",
" - Campaign arcs",
],
"prompt_template": """Write a GM guide for: {game_system}
Include:
- How to run the game
- Worldbuilding guidance
- NPC creation
- Encounter design
- Campaign advice""",
"tone_guidance": "Mentor-like, experienced GM sharing wisdom. Practical and inspiring.",
"typical_length": "200-400 pages",
"audience": "Game Masters",
},
"adventure_module": {
"name": "Adventure Module",
"description": "Ready-to-run adventure. Setting, NPCs, encounters, maps, treasure.",
"purpose": ReaderPurpose.LEARN_HANDS_ON,
"structure": StructuralPattern.SEQUENTIAL,
"category": NonfictionCategory.RPG,
"stages": [
"Adventure Overview",
"Background/Setup",
"Hook - Getting players involved",
"Part 1: Opening encounters",
" - Encounter 1.1",
" - Encounter 1.2",
"Part 2: Rising action",
" - Encounter 2.1",
" - Major setpiece",
"Part 3: Climax",
" - Final battle/challenge",
"Resolution",
"Aftermath - What happens next",
"Appendices:",
" - NPCs stat blocks",
" - Maps",
" - Handouts",
" - Treasure/awards",
],
"prompt_template": """Write an adventure module:
Setting: {setting}
Level Range: {levels}
Theme: {themes}
Length: {sessions}
Include:
- Detailed encounters
- NPCs with motivations
- Maps/layouts
- Treasure and rewards
- Hooks to continue""",
"tone_guidance": "Ready to play. Clear, organized, inspiring but practical.",
"typical_length": "64-200 pages",
"audience": "Game Masters",
},
"campaign_setting": {
"name": "Campaign Setting Sourcebook",
"description": "Complete world. History, geography, cultures, factions, adventure hooks.",
"purpose": ReaderPurpose.REFERENCE,
"structure": StructuralPattern.MODULAR,
"category": NonfictionCategory.RPG,
"stages": [
"Introduction to the World",
"World Map and Overview",
"History (Timeline)",
"Geography and Regions",
"Major Factions",
" - Faction A",
" - Faction B",
"Cultures and Peoples",
"Religion and Magic",
"Politics and Power",
"Major Cities/Locations",
" - Location A",
" - Location B",
"Important NPCs",
"Adventure Hooks",
"Appendix: Random Tables",
],
"prompt_template": """Write a campaign setting for: {world_name}
Include:
- World history
- Geography
- Cultures
- Factions
- Adventure hooks""",
"tone_guidance": "Immersive, detailed, inspiring. Make the world feel real and lived-in.",
"typical_length": "200-400 pages",
"audience": "Game Masters and Players",
},
# ==========================================================================
# SUPPLEMENTS
# ==========================================================================
"player_companion": {
"name": "Player's Companion",
"description": "Player-facing content. New races, classes, options. Everything players need.",
"purpose": ReaderPurpose.LEARN_HANDS_ON,
"structure": StructuralPattern.MODULAR,
"category": NonfictionCategory.RPG,
"stages": [
"Introduction",
"New Species/Races",
"New Classes/Archetypes",
"New Feats/Features",
"New Equipment",
"New Spells/Powers",
"New Backgrounds",
"Flavor Options",
],
"prompt_template": """Write a player companion with new options:
Core System: {system}
New Content: {what_is_new}
Include:
- Balanced new options
- Clear mechanics
- Lore/flavor""",
"tone_guidance": "Exciting, empowering. Players should feel excited to try new things.",
"typical_length": "100-200 pages",
"audience": "Players",
},
"monster_manual": {
"name": "Monster Manual",
"description": "Catalog of creatures. Stats, lore, how to use in games.",
"purpose": ReaderPurpose.REFERENCE,
"structure": StructuralPattern.MODULAR,
"category": NonfictionCategory.RPG,
"stages": [
"Introduction - Using monsters",
"Monster Statistics Explained",
"Creature Type: Aberrations",
" - Creature A",
" - Creature B",
"Creature Type: Beasts",
"Creature Type: Constructs",
"Creature Type: Dragons",
"Creature Type: Elementals",
"Creature Type: Fiends",
"Creature Type: Giants",
"Creature Type: Humanoids",
"Creature Type: Monstrosities",
"Creature Type: Oozes",
"Creature Type: Plants",
"Creature Type: Undead",
"NPC Stat Blocks",
"Appendix: Monster Building",
],
"prompt_template": """Write a monster manual:
Creatures to include: {list}
For each:
- Lore and background
- Stats
- How to use in game""",
"tone_guidance": "Authoritative, evocative. Monsters should feel threatening and interesting.",
"typical_length": "200-400 pages",
"audience": "Game Masters",
},
"sourcebook": {
"name": "Thematic Sourcebook",
"description": "Deep dive into one theme: specific region, organization, time period, etc.",
"purpose": ReaderPurpose.REFERENCE,
"structure": StructuralPattern.MODULAR,
"category": NonfictionCategory.RPG,
"stages": [
"Overview",
"History",
"Geography",
"Culture",
"Factions",
"Key Locations",
"Important NPCs",
"New Rules/Mechanics",
"New Options for Players",
"Adventure Hooks",
],
"prompt_template": """Write a sourcebook about: {topic}
Depth: {how_deep}
For: {system}
Include:
- Everything about this topic
- New mechanics
- Player options
- GM content""",
"tone_guidance": "Deep, passionate about the topic. Fans of the theme will love it.",
"typical_length": "150-300 pages",
"audience": "Dedicated fans, GMs",
},
# ==========================================================================
# ADVENTURE TYPES
# ==========================================================================
"dungeon_crawl": {
"name": "Dungeon Crawl",
"description": "Classic dungeon delve. Rooms, traps, monsters, treasure.",
"purpose": ReaderPurpose.LEARN_HANDS_ON,
"structure": StructuralPattern.SEQUENTIAL,
"category": NonfictionCategory.RPG,
"stages": [
"Dungeon Overview",
"Entry Point",
"Dungeon Level 1:",
" - Room 1.1: Entrance",
" - Room 1.2: Traps",
" - Room 1.3: Combat",
" - Room 1.4: Puzzle",
" - Room 1.5: Boss",
"Dungeon Level 2 (optional)",
"Loot and Treasure",
"Keys and Secrets",
"Random Tables",
],
"prompt_template": """Write a dungeon crawl:
Setting: {setting}
Levels: {levels}
Theme: {theme}
Include:
- Detailed rooms
- Traps and hazards
- Monsters
- Treasure
- Secrets""",
"tone_guidance": "Classic dungeon vibes. Challenge and reward.",
"typical_length": "32-64 pages",
"audience": "GMs running dungeon content",
},
"hex_crawl": {
"name": "Hex Crawl / Sandbox",
"description": "Open-world exploration. Multiple locations, factions, choices.",
"purpose": ReaderPurpose.LEARN_HANDS_ON,
"structure": StructuralPattern.MODULAR,
"category": NonfictionCategory.RPG,
"stages": [
"Region Overview",
"Hex Map",
"Settlement: Town A",
"Settlement: Town B",
"Point of Interest: Ruins",
"Point of Interest: Wilderness",
"Point of Interest: Dungeon",
"Faction A",
"Faction B",
"Random Encounter Tables",
"Travel Rules",
],
"prompt_template": """Write a hex crawl sandbox:
Region: {region}
Hexes: {number}
Factions: {list}
Include:
- Multiple locations
- Factions
- Player choice
- Random tables""",
"tone_guidance": "Sandbox freedom. Players can go anywhere, do anything.",
"typical_length": "64-128 pages",
"audience": "GMs running open-world games",
},
"dungeon_world_style": {
"name": "Dungeon World Style Adventure",
"description": "Narrative-forward adventure. Fronts, threats, moves.",
"purpose": ReaderPurpose.LEARN_HANDS_ON,
"structure": StructuralPattern.NARRATIVE,
"category": NonfictionCategory.RPG,
"stages": [
"Adventure Overview",
"Background",
"The Hook",
"Front 1: Immediate Threat",
" - Grim Portents",
" - Stakes",
"Front 2: Larger Threat",
"Key Locations",
"Key NPCs",
"Monster thoughts",
"Custom Moves",
"Countdown",
],
"prompt_template": """Write a Dungeon World/PBtA adventure:
Central Conflicts: {conflicts}
Threats: {threats}
Include:
- Fronts and grim portents
- Custom moves
- Monster motivations""",
"tone_guidance": "Narrative-forward. Like a TV show outline.",
"typical_length": "32-64 pages",
"audience": "PBtA GMs",
},
# ==========================================================================
# SPECIALTY CONTENT
# ==========================================================================
"worldbuilding_guide": {
"name": "Worldbuilding Guide",
"description": "How to build your own RPG world. Process and systems.",
"purpose": ReaderPurpose.LEARN_HANDS_ON,
"structure": StructuralPattern.SEQUENTIAL,
"category": NonfictionCategory.RPG,
"stages": [
"Why Worldbuild?",
"Core Concept - The Big Idea",
"Scope - How big?",
"Geography",
"Cultures",
"History",
"Politics",
"Religion/Magic",
"Economy",
"Technology Level",
"Putting It Together",
"Running in Your World",
],
"prompt_template": """Write a worldbuilding guide:
Approach: {philosophy}
Include:
- Step-by-step process
- Prompts and questions
- Example content
- How to make it playable""",
"tone_guidance": "Mentor, encouraging. Guide their creativity.",
"typical_length": "150-250 pages",
"audience": "Aspiring worldbuilders and GMs",
},
"props_and_handouts": {
"name": "Props and Handouts",
"description": "Physical/digital props for immersion. Letters, maps, wanted posters.",
"purpose": ReaderPurpose.LEARN_HANDS_ON,
"structure": StructuralPattern.MODULAR,
"category": NonfictionCategory.RPG,
"stages": [
"Introduction - Why props matter",
"Handout Types",
"Letters and Documents",
"Maps and Diagrams",
"Images and Artwork",
"In-Game Objects",
"Prop Templates",
"Digital Props",
"Print and Play",
],
"prompt_template": """Create prop templates:
Adventure: {adventure_name}
Props needed: {list}
Include:
- Text for each prop
- Design notes
- How to use in play""",
"tone_guidance": "Practical, creative. Make the game feel real.",
"typical_length": "32-64 pages",
"audience": "GMs who want immersion",
},
"solo_adventure": {
"name": "Solo Adventure / Journaling RPG",
"description": "Playable alone. Self-contained with rules for single player.",
"purpose": ReaderPurpose.LEARN_HANDS_ON,
"structure": StructuralPattern.SEQUENTIAL,
"category": NonfictionCategory.RPG,
"stages": [
"How to Play Solo",
"Character Creation",
"Rules Summary",
"Adventure Start",
"Chapter 1: The Beginning",
" - Choices and outcomes",
"Chapter 2: Development",
"Climax",
"Resolution",
"Oracles/Random Tables",
"Character Sheet",
],
"prompt_template": """Write a solo adventure:
Theme: {theme}
Length: {length}
System: {system}
Include:
- Self-contained rules
- Story branches
- Oracle/random tables""",
"tone_guidance": "Personal, immersive. Like writing your own adventure.",
"typical_length": "64-128 pages",
"audience": "Solo RPG players",
},
"larp_document": {
"name": "LARP (Live Action) Document",
"description": "Written for live action roleplaying. Character sheets, plot, props.",
"purpose": ReaderPurpose.LEARN_HANDS_ON,
"structure": StructuralPattern.SEQUENTIAL,
"category": NonfictionCategory.RPG,
"stages": [
"Event Overview",
"Setting",
"Background/World",
"Factions and Goals",
"Character Packets:",
" - Character A",
" - Character B",
"Plot Outline",
"Timeline of Events",
"GM Notes",
"Props List",
"Safety Tools",
],
"prompt_template": """Write a LARP event:
Type: {type}
Duration: {length}
Players: {number}
Include:
- Characters with secrets
- Plot that creates drama
- Safety content""",
"tone_guidance": "Structured for live play. Clear beats and goals.",
"typical_length": "32-100 pages",
"audience": "LARPers and event organizers",
},
}
def get_rpg_frameworks() -> dict:
"""Get all RPG frameworks."""
return RPG_FRAMEWORKS
def suggest_rpg_framework(
content_type: str = "",
audience: str = "",
) -> str:
"""Suggest the best RPG framework.
Args:
content_type: core / adventure / supplement / etc.
audience: players / GMs / etc.
Returns:
Framework ID
"""
content_type = (content_type or "").lower()
# Core books
if "core" in content_type or "rulebook" in content_type:
return "core_rulebook"
if "quick" in content_type:
return "quickstart"
# GM content
if "gm guide" in content_type or "game master" in content_type:
return "game_master_guide"
if "adventure" in content_type:
if "dungeon" in content_type:
return "dungeon_crawl"
if "hex" in content_type or "sandbox" in content_type:
return "hex_crawl"
return "adventure_module"
if "campaign" in content_type or "setting" in content_type:
return "campaign_setting"
if "world" in content_type:
return "worldbuilding_guide"
# Supplements
if "monster" in content_type or "creature" in content_type:
return "monster_manual"
if "player" in content_type:
return "player_companion"
if "sourcebook" in content_type or "supplement" in content_type:
return "sourcebook"
# Special
if "solo" in content_type or "journal" in content_type:
return "solo_adventure"
if "larp" in content_type or "live" in content_type:
return "larp_document"
if "prop" in content_type or "handout" in content_type:
return "props_and_handouts"
# Default
return "core_rulebook"