14 KiB
🎭 Storyteller RPG - Project Plan
Vision
Transform the application into a full-featured RPG platform with multiple user roles, AI automation, and comprehensive game management capabilities.
📋 Phase 1: User Roles & Authentication System
1.1 Backend Infrastructure
-
User Model & Authentication
- Implement user registration/login system
- Add JWT token-based authentication
- User profile management
- Session management with user association
-
Role-Based Access Control (RBAC)
- Define role hierarchy: Admin > Gamemaster > Storyteller > Player
- Create permission decorators for API endpoints
- Implement role checking middleware
- Role assignment system
-
Database Integration
- Replace in-memory storage with persistent database (SQLite/PostgreSQL)
- User table schema
- Game/Session table schema
- Character/Player table schema with user association
- Message history with ownership tracking
Estimated Time: 1-2 weeks
Technical Stack:
# Backend additions needed:
- SQLAlchemy (ORM)
- JWT (python-jose)
- Password hashing (passlib)
- Database (SQLite for dev, PostgreSQL for prod)
📋 Phase 2: Game Creation & Management System
2.1 Game Configuration
-
Game Creation Interface
- Game setup wizard for Gamemaster
- Configure game settings:
- Game name & description
- Scenario/setting details
- Number of player slots
- Storyteller assignment (human/AI)
- LLM model selection per role
- Game state management (not started, in progress, paused, completed)
-
Role Assignment System
- Player slot management
- Assign slots to:
- Human users (invite by username/email)
- AI players (configure personality & LLM)
- Storyteller assignment (human or AI)
- Role transfer/reassignment
-
Game Lobby
- Pre-game waiting room
- Player slot status display
- Ready/not ready indicators
- Game start conditions
Estimated Time: 2 weeks
UI Components:
- GameCreationWizard.js
- RoleAssignmentPanel.js
- GameLobby.js
- PlayerSlotCard.js
📋 Phase 3: User Mode Interfaces
3.1 Player Mode
-
Player Interface
- View own character sheet
- Private messaging with storyteller
- View scene descriptions
- Message history (own messages only)
- Cannot edit storyteller responses
- Can generate/edit/write own responses
-
Player Controls
- Message composer with AI generation option
- Edit own messages (before storyteller reads)
- Character action commands
- Inventory/stats display (if applicable)
Permissions:
✅ Read: Own messages, storyteller responses to self, scene narrations
✅ Write: Own character messages
✅ Edit: Own unread messages
❌ Edit: Storyteller responses, other players' messages
3.2 Storyteller Mode
-
Storyteller Dashboard
- View all player messages
- Player list with status indicators
- Response composer per player
- Scene narration composer
- AI player response generation/editing
-
Storyteller Controls
- Generate responses with AI assist (per player's LLM)
- Edit AI-generated responses before sending
- Manage AI players completely
- Broadcast scene narrations
- View conversation history per player
Permissions:
✅ Read: All player messages, all game state
✅ Write: Responses to players, scene narrations
✅ Edit: Own responses, AI player messages
❌ Edit: Human player messages
✅ Generate: AI responses for any player
3.3 Gamemaster Mode
-
Gamemaster Control Panel
- Overview of entire game state
- All player & storyteller message threads
- Game configuration management
- Player/role management
- AI behavior controls
-
Gamemaster Powers
- Send messages to any player
- Edit AI responses (storyteller or players)
- Pause/resume game
- Modify game settings mid-game
- View all LLM usage/costs
- Generate content with any LLM
Permissions:
✅ Read: Everything
✅ Write: Messages to anyone
✅ Edit: AI responses (storyteller & players)
❌ Edit: Human responses (storyteller & players)
✅ Configure: Game settings, roles, LLMs
✅ Control: AI automation, game flow
3.4 Admin Mode (Development)
-
Admin Dashboard
- System-wide overview
- All games management
- User management
- LLM configuration & monitoring
- Cost tracking & analytics
-
Admin Powers
- Full edit access to everything
- View/modify all LLMs in use
- System configuration
- Debug tools
- Performance monitoring
Permissions:
✅ Full Access: Everything, no restrictions
Estimated Time: 3-4 weeks
📋 Phase 4: AI Automation System
4.1 AI Player System
-
AI Player Engine
- Automated message generation based on:
- Character personality/backstory
- Recent conversation context
- Scene descriptions
- Game scenario
- Configurable response triggers:
- Time-based (respond every N seconds)
- Event-based (respond to storyteller)
- Manual trigger (Gamemaster/Storyteller control)
- Automated message generation based on:
-
AI Player Configuration
- Personality templates
- Response style settings
- Behavior patterns (cautious, bold, curious, etc.)
- LLM model selection per AI player
- Temperature/creativity settings
4.2 AI Storyteller System
-
AI Storyteller Engine
- Automated storytelling based on:
- Game scenario/plot
- Player actions
- Story progression rules
- Scene templates
- Response generation for each player
- Scene narration generation
- Automated storytelling based on:
-
AI Storyteller Configuration
- Storytelling style (descriptive, action-focused, dialogue-heavy)
- Plot progression speed
- Challenge difficulty
- LLM model selection
- Context window management
4.3 Automation Controls
-
Manual Override System
- Human can take over from AI at any time
- AI can be paused/resumed
- Edit AI responses before sending
- Review mode (AI generates, human approves)
-
Automation Triggers
- Configurable response timing
- Event-based triggers
- Turn-based mode support
- Real-time mode support
Estimated Time: 2-3 weeks
Technical Implementation:
# Backend components:
- AIPlayerEngine class
- AIStorytellerEngine class
- AutomationScheduler
- ResponseGenerator with context management
- Trigger system for automated responses
📋 Phase 5: Enhanced Features
5.1 Message Management
-
Message Editing System
- Edit history tracking
- Permissions enforcement
- Real-time sync of edits
- Visual indicators for edited messages
-
Message Generation
- AI-assisted writing for all roles
- Prompt templates library
- Context-aware suggestions
- Multi-model comparison
5.2 Game State Management
-
Save/Load System
- Export game state
- Import saved games
- Game snapshots/checkpoints
- Rewind to previous state
-
Turn Management (Optional)
- Turn-based gameplay option
- Turn order configuration
- Turn timer
- Turn history
5.3 Analytics & Monitoring
-
Usage Tracking
- LLM usage per game
- Cost tracking per model
- Response time metrics
- Player engagement analytics
-
Game Insights
- Conversation flow visualization
- Player participation metrics
- Story progression tracking
- AI vs Human response statistics
Estimated Time: 2 weeks
📋 Phase 6: Polish & Deployment
6.1 UI/UX Refinement
- Responsive design for all modes
- Mobile-friendly interfaces
- Accessibility improvements
- Theme customization
6.2 Testing
- Unit tests for all components
- Integration tests
- Role permission tests
- Load testing
6.3 Documentation
- User guides per role
- API documentation
- Deployment guide
- Developer documentation
6.4 Deployment
- Production environment setup
- Database migration system
- CI/CD pipeline
- Monitoring & logging
Estimated Time: 2 weeks
🗓️ Timeline Summary
| Phase | Description | Duration | Status |
|---|---|---|---|
| Phase 0 | Current MVP | - | ✅ Complete |
| Phase 1 | User Roles & Auth | 1-2 weeks | 🔄 Planning |
| Phase 2 | Game Management | 2 weeks | ⏳ Pending |
| Phase 3 | User Modes | 3-4 weeks | ⏳ Pending |
| Phase 4 | AI Automation | 2-3 weeks | ⏳ Pending |
| Phase 5 | Enhanced Features | 2 weeks | ⏳ Pending |
| Phase 6 | Polish & Deploy | 2 weeks | ⏳ Pending |
| Total | 12-15 weeks |
🏗️ Technical Architecture Changes
Current Architecture
Frontend (React) ←→ Backend (FastAPI) ←→ In-Memory Storage
WebSockets
Target Architecture
Frontend (React)
├── Player Interface
├── Storyteller Interface
├── Gamemaster Interface
└── Admin Interface
↕
API Gateway (FastAPI)
├── Authentication Layer (JWT)
├── Authorization Layer (RBAC)
└── WebSocket Manager
↕
Business Logic
├── Game Engine
├── AI Player Engine
├── AI Storyteller Engine
└── Automation Scheduler
↕
Data Layer
├── Database (PostgreSQL)
├── Redis (Caching/Sessions)
└── File Storage (Game States)
↕
External Services
├── OpenAI API
├── OpenRouter API
└── Analytics Service
📦 New Dependencies Needed
Backend
# requirements.txt additions
sqlalchemy==2.0.23 # ORM
alembic==1.13.0 # Database migrations
psycopg2-binary==2.9.9 # PostgreSQL driver
python-jose[cryptography] # JWT (already added, needs activation)
passlib[bcrypt] # Password hashing (already added, needs activation)
redis==5.0.1 # Caching & session management
celery==5.3.4 # Task queue for AI automation
pydantic-settings==2.1.0 # Settings management
Frontend
// package.json additions
"@tanstack/react-query": "^5.0.0", // Data fetching
"zustand": "^4.4.0", // State management
"react-router-dom": "^6.20.0", // Routing (if not added)
"react-hook-form": "^7.48.0", // Form management
"zod": "^3.22.0", // Schema validation
"recharts": "^2.10.0", // Analytics charts
"@dnd-kit/core": "^6.1.0" // Drag-and-drop for role assignment
🎯 Success Criteria
Phase 1 Complete When:
- ✅ Users can register/login
- ✅ Role-based access works
- ✅ Database stores all game data persistently
Phase 2 Complete When:
- ✅ Gamemaster can create games
- ✅ Can assign humans/AI to roles
- ✅ Game lobby works with ready states
Phase 3 Complete When:
- ✅ All 4 user modes functional
- ✅ Permissions enforced correctly
- ✅ UI matches role capabilities
Phase 4 Complete When:
- ✅ AI players respond automatically
- ✅ AI storyteller can run full games
- ✅ Human override works seamlessly
Phase 5 Complete When:
- ✅ Message editing works with permissions
- ✅ Save/load system functional
- ✅ Analytics dashboard complete
Phase 6 Complete When:
- ✅ App deployed to production
- ✅ All tests passing
- ✅ Documentation complete
🚀 Getting Started - Phase 1
Immediate Next Steps:
-
Database Setup
pip install sqlalchemy alembic psycopg2-binary alembic init migrations -
Create Database Models
- User model with roles
- Game model
- Character model with user_id
- Message model with ownership
-
Implement Authentication
- JWT token generation
- Login/register endpoints
- Protected routes
-
Update Frontend
- Login/register pages
- Auth state management
- Protected route wrapper
Priority Tasks for Phase 1:
- Database schema design
- User authentication system
- Role assignment logic
- Update existing session system to use database
📝 Notes & Considerations
Key Design Decisions:
- Database: PostgreSQL for production, SQLite for development
- Auth: JWT tokens with refresh mechanism
- Real-time: Continue using WebSockets, add auth to connections
- AI Queue: Celery for handling automated AI responses
- Caching: Redis for session data and frequently accessed game state
Challenges to Address:
- Race Conditions: Multiple users editing same game state
- AI Cost Control: Budget limits per game/user
- Scalability: Support for multiple concurrent games
- Context Management: LLM context windows for long games
- Latency: AI response generation can be slow
Future Enhancements (Post-MVP):
- Voice chat integration
- Character sheet system with stats/inventory
- Dice rolling system
- Battle/combat system
- Campaign management (multi-session games)
- Marketplace for game scenarios
- Community features (forums, game discovery)
🤝 Development Workflow
Branching Strategy:
main (production)
├── develop (integration)
├── feature/phase1-auth
├── feature/phase2-game-creation
├── feature/phase3-player-mode
└── feature/phase4-ai-automation
Testing Strategy:
- Unit tests for all new backend functions
- Integration tests for API endpoints
- E2E tests for critical user flows
- Load tests for AI automation
Code Review Process:
- All features require PR review
- Test coverage minimum: 80%
- Documentation required for new features
Last Updated: 2025-10-11
Next Review: Start of Phase 1