- Create README.md outlining the entire migration plan, including executive summary, technical details, migration guide, API specification, and testing checklist. - Introduce START_HERE.md as a quick start guide for implementation, detailing initial steps and phase breakdown. - Develop VISUAL_GUIDE.md with diagrams and visual references for current vs. target architecture, NPC types, implementation phases, and memory usage comparisons.
Break Escape: Lazy-Loading NPC Architecture Plan
Complete Planning Documentation Index
Created: November 6, 2025
Status: Planning Complete - Ready for Implementation
Location: planning_notes/npc/prepare_for_server_client/
📋 Documents in This Plan
1. 00-executive_summary.md (START HERE!)
Length: ~15 pages | Audience: Managers, stakeholders, tech leads
Quick overview of the entire migration plan:
- Problem statement & vision
- 4-phase implementation overview
- Timeline & resource requirements
- Decision points for leadership
- Q&A section
- Approval sign-off form
Read this if: You have 20 minutes and want the big picture
2. 01-lazy_load_plan.md (MAIN TECHNICAL PLAN)
Length: ~35 pages | Audience: Architects, senior developers
Comprehensive technical architecture:
- Current vs. target architecture (with diagrams)
- Detailed implementation phases (1-4)
- NPC type breakdown (person vs. phone)
- File structure changes
- Memory & performance implications
- Migration timeline & testing strategy
- Risk assessment & mitigation
- Key decision points with alternatives
- Code examples for each phase
- Appendices with glossary & code locations
Read this if: You're implementing the architecture or making design decisions
3. 02-scenario_migration_guide.md (FOR CONTENT DESIGNERS)
Length: ~20 pages | Audience: Content designers, QA, scenario creators
Step-by-step instructions for updating scenarios:
- Quick reference (before/after format)
- Migration checklist
- 6-step migration process with examples
- Common questions (Q&A)
- Automation scripts (Python for bulk migration)
- Backward compatibility during migration
- Full migration template
- Known issues & resolution
Read this if: You need to update scenario JSON files or help others do it
4. 03-server_api_specification.md (FOR BACKEND DEVS)
Length: ~25 pages | Audience: Backend developers, API designers
Complete REST API specification for server integration:
- Architecture context (why this API design)
- 8 categories of endpoints:
- Game initialization
- Scenario data retrieval
- Room data on-demand
- NPC data management
- Game state save/load
- Room state updates
- Event triggering
- Asset serving
- Complete data models (TypeScript interfaces)
- Authentication & authorization (JWT)
- Rate limiting strategy
- Error handling & HTTP status codes
- Performance considerations & caching
- Mock server for testing
- Deployment checklist
- Future enhancements (multiplayer, real-time, etc.)
Read this if: You're building the server backend for Phase 4+
4. 04-testing_checklist.md (FOR QA & TESTERS)
Length: ~20 pages | Audience: QA team, testers, automation engineers
Comprehensive testing plan:
- Unit test examples (Jest) for each phase
- Integration test strategies
- Manual testing checklists
- Performance testing metrics
- Browser compatibility matrix
- Regression testing for old scenarios
- Testing template for sign-off
- CI/CD workflow (GitHub Actions)
- Performance benchmarks
- Known issues tracking template
- Post-launch monitoring guidance
Read this if: You're testing the implementation or setting up CI/CD
🎯 How to Use This Plan
If you're a Project Manager:
- Read
00-executive_summary.md(20 min) - Review timeline & resource estimates
- Get team approval via sign-off form
- Assign Phase 1 developer
If you're a Architect:
- Read
00-executive_summary.md(20 min) - Deep dive into
01-lazy_load_plan.md(90 min) - Review decision points & alternatives
- Make architectural choices
- Brief team on decisions
If you're a Frontend Developer (Phase 1):
- Read
00-executive_summary.md(20 min) - Study
01-lazy_load_plan.mdPhase 1 section (30 min) - Review code examples (15 min)
- Check out
04-testing_checklist.mdfor test expectations (20 min) - Start implementation
If you're a Content Designer (Phase 2):
- Skim
00-executive_summary.md(10 min) - Follow
02-scenario_migration_guide.mdstep-by-step (60 min) - Run migration script or do manually
- Validate JSON using checklist
- Test in game
If you're a QA/Tester (All Phases):
- Read
00-executive_summary.md(20 min) - Study
04-testing_checklist.md(90 min) - Set up test environment
- Create test cases for your phase
- Execute & document results
If you're a Backend Developer (Phase 4):
- Read
00-executive_summary.md(20 min) - Study
03-server_api_specification.md(60 min) - Design database schema
- Implement API endpoints
- Create mock server for testing
📊 Plan Overview Diagram
┌─────────────────────────────────────────────────────────┐
│ Break Escape NPC Lazy-Loading Plan │
└─────────────────────────────────────────────────────────┘
│
┌─────────────┼─────────────┐
│ │ │
┌─────▼──────┐ ┌───▼──────┐ ┌──▼─────────┐
│ PLANNING │ │TECHNICAL │ │ OPERATIONAL
│ (This) │ │ DETAILS │ │
└─────┬──────┘ └───┬──────┘ └──┬─────────┘
│ │ │
┌─────▼──────────┐ │ ┌──────────▼─────────┐
│00-EXECUTIVE │ │ │03-SERVER-API │
│SUMMARY │ │ │SPEC │
│(Overview & │ │ │(Backend work) │
│timeline) │ │ └───────────────────┘
└────────────────┘ │
│
┌────▼──────┐
│01-LAZY- │
│LOAD-PLAN │
│(Technical) │
└────┬───────┘
│
┌───────────┴───────────┐
│ │
┌────▼─────────┐ ┌───────▼─────┐
│02-SCENARIO │ │04-TESTING │
│MIGRATION │ │CHECKLIST │
│(Content) │ │(QA) │
└──────────────┘ └─────────────┘
🔄 Implementation Phases at a Glance
| Phase | Duration | Focus | Output | Team |
|---|---|---|---|---|
| Phase 1 | 2 weeks | Build lazy-loader infrastructure | npc-lazy-loader.js + tests |
Frontend dev(s) |
| Phase 2 | 1 week | Migrate scenarios to new format | Updated scenarios/*.json |
Content designer |
| Phase 3 | 1 week | Refactor event/lifecycle system | Working event system | Frontend dev |
| Phase 4 | 2+ weeks | Design & implement server API | API spec + mock server | Backend dev |
Total: ~6 weeks, ~1 developer-month
✅ Quick Checklist
Before starting Phase 1:
- Read
00-executive_summary.md - Get team approval on timeline
- Assign Phase 1 developer
- Set up testing framework (Jest)
- Create feature branch:
feature/npc-lazy-loading - Share planning docs with team
Before starting Phase 2:
- Phase 1 code merged to main
- All Phase 1 tests passing
- Assign content designer
- Review
02-scenario_migration_guide.md - Create backup of scenarios
Before starting Phase 3:
- Phase 2 scenarios fully migrated
- Verify backward compatibility
- Assign event system refactorer
- Review lifecycle changes with team
Before starting Phase 4:
- Phases 1-3 complete & stable
- Assign backend developer(s)
- Design database schema
- Plan API implementation timeline
📝 File Locations
Planning Documents:
planning_notes/npc/prepare_for_server_client/
├── 00-executive_summary.md
├── 01-lazy_load_plan.md
├── 02-scenario_migration_guide.md
├── 03-server_api_specification.md
├── 04-testing_checklist.md
└── README.md (this file)
Code to be Created:
js/systems/
├── npc-lazy-loader.js (NEW - Phase 1)
Existing files to update:
├── npc-manager.js (add unregisterNPC)
├── npc-sprites.js (optional improvements)
js/core/
├── rooms.js (hook lazy-loader)
├── game.js (refactor NPC init)
Scenarios to Update:
scenarios/
├── npc-sprite-test2.json (Phase 2)
├── ceo_exfil.json (Phase 2)
├── biometric_breach.json (Phase 2)
├── cybok_heist.json (Phase 2)
└── scenario*.json (all others)
🎓 Learning Path for Team
Day 1: Orientation
- Team meeting: Review
00-executive_summary.md(30 min) - Q&A session: Discuss concerns, timeline (30 min)
- Architecture walkthrough: Review
01-lazy_load_plan.md(60 min)
Week 1: Deep Dive
- Frontend devs: Study Phase 1 in detail (2 hours)
- Content designers: Learn migration process (1 hour)
- QA team: Plan testing strategy (2 hours)
- Backend devs: Review API spec (2 hours)
Before Each Phase
- Team meeting: Phase-specific overview (30 min)
- Role-specific prep: Read relevant section (30-60 min)
- Q&A & blockers: Address concerns (15 min)
- Start implementation with confidence ✅
🚀 Success Criteria
Phase 1 Success:
- ✅
npc-lazy-loader.jscreated & tested - ✅ Backward compatibility verified (old scenarios work)
- ✅ Unit test coverage >90%
- ✅ No regressions in existing scenarios
- ✅ Code review approved
Phase 2 Success:
- ✅ All scenarios migrated to new format
- ✅ Validation script passes all scenarios
- ✅ Manual testing in game works
- ✅ No console errors related to NPCs
- ✅ Performance maintained
Phase 3 Success:
- ✅ Event lifecycle works correctly
- ✅ Timed messages fire at right time
- ✅ No regressions in NPC interactions
- ✅ Integration tests passing
Phase 4 Success:
- ✅ API spec finalized & documented
- ✅ Mock server working
- ✅ Client code supports server API
- ✅ Can fetch room data from server
- ✅ Ready for real server implementation
❓ FAQ
Q: Can we skip phases? A: Not really. Each phase builds on the previous. Phase 1 → 2 → 3 are sequential. Phase 4 is optional but recommended.
Q: What if we find bugs during Phase 1? A: That's normal and expected. The plan includes time for bugs. Lazy-loader is isolated, easy to disable.
Q: Can we do phases in parallel? A: Phase 2 can partially overlap with Phase 1 (migration script ready to go). Phases 3-4 need phases 1-2 done first.
Q: What about old browser support? A: The plan includes browser compatibility testing. Fetch API is widely supported. No IE11 support needed.
Q: Can we start with Phase 2 only? A: Not recommended. Phase 1 infra must exist first. Phase 2 is scenarios migration, only useful if lazy-loader active.
Q: How much will this cost? A: ~1 developer-month (~160 hours @ $100-150/hour = $16k-24k in dev time). Infrastructure costs depend on server setup.
📞 Support & Questions
- General questions: See
00-executive_summary.mdFAQ section - Technical questions: See
01-lazy_load_plan.mdQ&A sections - Content migration help: See
02-scenario_migration_guide.md - API design questions: See
03-server_api_specification.md - Testing questions: See
04-testing_checklist.md
🔗 Related Documents
In the same directory:
- Other NPC planning notes (if any)
In the main project:
copilot-instructions.md- Project overviewREADME.md- Project documentationjs/systems/npc-manager.js- Current NPC implementationjs/core/rooms.js- Room loading system
✨ Next Steps (TODAY)
- ✅ Read this README
- ✅ Read
00-executive_summary.md - ✅ Team meeting to discuss plan (30 min)
- ✅ Get leadership approval (sign-off form)
- ✅ Assign Phase 1 developer
- ✅ Create feature branch
- ⏭️ Begin Phase 1 implementation
📈 Progress Tracking Template
Copy this to track implementation:
# Lazy-Loading NPC Migration Progress
## Phase 1: Infrastructure
- [ ] npc-lazy-loader.js created
- [ ] Unit tests written (>90% coverage)
- [ ] Integrated into main.js
- [ ] Hooked into room loading
- [ ] Backward compatibility verified
- [ ] Code reviewed & merged
- **Status**: ⏳ Not Started | 🔄 In Progress | ✅ Complete
## Phase 2: Scenario Migration
- [ ] Migration script created
- [ ] npc-sprite-test2.json migrated
- [ ] ceo_exfil.json migrated
- [ ] All scenarios validated
- [ ] Manual testing passed
- [ ] Code reviewed & merged
- **Status**: ⏳ Not Started | 🔄 In Progress | ✅ Complete
## Phase 3: Lifecycle
- [ ] Event lifecycle refactored
- [ ] Timed messages tested
- [ ] Integration tests written
- [ ] Regressions checked
- [ ] Code reviewed & merged
- **Status**: ⏳ Not Started | 🔄 In Progress | ✅ Complete
## Phase 4: Server Integration
- [ ] API spec finalized
- [ ] Mock server created
- [ ] Client code updated
- [ ] Backend implementation started
- **Status**: ⏳ Not Started | 🔄 In Progress | ✅ Complete
## Overall
- **Started**: [Date]
- **Expected Completion**: [Date]
- **Current Phase**: [Phase]
- **Blockers**: [Any issues]
🎯 Vision Statement
Build Break Escape into a scalable, server-ready platform where game content streams on-demand as players explore. Modernize the NPC system from monolithic upfront-loading to lazy-loading architecture, enabling future features like dynamic NPCs, real-time multiplayer, and user-generated scenarios.
This plan is the first major step toward that vision. ✨
Plan Created: November 6, 2025
Status: ✅ Complete and Ready for Implementation
Next Update: After Phase 1 Completion