Date: 2026-05-27 | Status: Ready to Implement | Prepared by: Análisis & Diseño
Crear una feature de muros con puertas/ventanas que permita:
- Definir ranuras en muros por donde pasan colisiones
- Asignar texturas visuales a los muros (paralelas a la cámara como el background)
- Editar todo desde el debug mode con live preview
Status: ✅ Completado
docs/_archive/*— Correctamente archivados, no generan ruido- Sin documentación core que esté desactualizada
- Ninguna. Los 32 tasks de Phase 2-5 están correctamente marcados
[x].
- Funcional y estable post-refactorización
- 4 paneles editores operacionales: walls, ground, items, targets
- Architecture limpia: editor local → core store → rendering
Reporte: docs/DEBUG_MODE_REVIEW.md ✅
Status: ✅ Completado
Paredes actuales = solid boxes
NECESITA: puertas/ventanas (openings) + texturas visuales
CONSTRAINT: texturas deben estar paralelas a cámara (sin distorsión)
-
Core (agnóstico):
- Extender
GameSceneWallconopenings[]+textureUrl+texturePosition - Actualizar pathfinding para restar openings de obstáculos
- Backward compatible: campos opcionales
- Extender
-
Renderer (R3F):
SceneWallPlane.tsx→ renderiza textura siguiendo cámara- Similar a
SceneBackgroundPlane(camera-parallel, no distortion) - Integración en game loop
-
Demo/Debug UI:
- Extender
WallEditorPanelpara CRUD de openings - File picker para texturas
- Live preview 3D mientras editas
- Extender
Documentación Completa: docs/architecture/07-walls-with-openings.md ✅
Status: ✅ Completado
docs/phases/phase-6-walls-with-openings/
├─ README.md ✅ Plan ejecutivo
├─ tracking.md ✅ Progress tracker (0/8)
└─ tasks/
├─ _template.md ✅ Template reutilizable
└─ 01-extend-core-types.md ✅ Primera tarea lista para ejecutar
| Week | Task | Descripción |
|---|---|---|
| W1 | 01-extend-core-types | Agregar GameSceneWallOpening interface |
| W1 | 02-update-pathfinding | isPointInWallOpening() logic |
| W2 | 03-create-scene-wall-plane | SceneWallPlane.tsx renderer |
| W2 | 04-integrate-wall-plane | Integrar en game loop |
| W3 | 05-extend-wall-editor-panel | CRUD de openings en UI |
| W3 | 06-extend-scene-editor-store | Store methods |
| W4 | 07-integration-testing-and-docs | E2E tests + guía |
| W4 | 08-validation-gate | Final checks |
Estimación: ~10 días de esfuerzo distribuido
Opción A: En GameSceneWall (core)
- ✅ Elegida: openings es parte del modelo de datos, core debe saber de ellos
- Core usa openings en pathfinding
- Renderer usa openings para ajustar raycast visualization
Opción B: En demo store local (descartada)
- ❌ Rompe el contrato de core (core debe saber de estructura completa)
- Pathfinding no podría validar openings sin acoplar a demo
Opción A: Vertex shader con deformación 3D (descartada)
- ❌ Distorsiona con cámara, es lo que NO queremos
Opción B: Plano 2D paralelo a cámara + mesh 3D wireframe (✅ elegida)
- ✅ Textura sigue cámara (como background)
- ✅ Colisión sigue 3D (CuboidCollider)
- ✅ Alineación manual via
texturePosition
Decisión: Todos los campos nuevos opcionales
openings?: []→ si no existe o vacío = muro sólido actualtextureUrl?: string→ si undefined = sin texturatexturePosition?: Vec3→ si undefined = defaults a [0,0,0]
Por qué: No quiero romper escenas existentes. Transición suave a v0.2.0.
- ✅ Phase 2-5 completadas (v0.1.0 stable)
- ✅ Tests CI/CD funcionando
- ✅ Monorepo structure estable
1. Leer task file (NN-description.md)
2. Seguir instrucciones autocontenidas
3. Ejecutar validations (tests, visual checks)
4. Marcar [x] en tracking.md
5. Commit atomic: "feat(phase-6): NN-description"
6. Pasar a siguiente task
- Core no importa React/R3F
- Types demo no contaminan core
- Tests pasan (npm test)
- Backward compatible
- Mensaje de commit referencia task
-
GameSceneWall.openings[]soportado en core (agnóstico) - Pathfinding respeta openings (NPCs pueden pasar por puertas)
-
SceneWallPlanerenderiza sin distorsión de cámara -
WallEditorPanelpermite CRUD de openings + texturas - Live preview en 3D mientras editas
- 100% backward compatible
- Tests: 100% passing
- Documentación + ejemplos
- ✅
docs/DEBUG_MODE_REVIEW.md— Status del debug mode (5 págs) - ✅
docs/architecture/07-walls-with-openings.md— Design doc completo (8 págs)
- ✅
docs/phases/phase-6-walls-with-openings/README.md— Plan ejecutivo (6 págs) - ✅
docs/phases/phase-6-walls-with-openings/tracking.md— Progress tracker - ✅
docs/phases/phase-6-walls-with-openings/tasks/_template.md— Task template - ✅
docs/phases/phase-6-walls-with-openings/tasks/01-extend-core-types.md— Task 1 lista
- ✅
memory/phase6-planning.md— Resumen de decisiones
Total: 10 documentos nuevos, 0 rotos, 100% backward compatible.
- Revisar este documento ✓ (estás aquí)
- Revisar
docs/architecture/07-walls-with-openings.md(10 min) - Revisar
docs/phases/phase-6-walls-with-openings/README.md(10 min)
- Comenzar Task 01:
docs/phases/phase-6-walls-with-openings/tasks/01-extend-core-types.md - Seguir flujo modular: 1 task → validation → commit → siguiente
- Usar template para crear tasks 02-07 bajo demanda
- Tests CI/CD para cada task
- Backward compatibility checks
- Debug mode live testing
- Documentation updates
| Semana | Tasks | Milestone |
|---|---|---|
| Semana 1 | 01-02 | Core types + pathfinding ✓ |
| Semana 2 | 03-04 | Renderer texture planes ✓ |
| Semana 3 | 05-06 | Editor UI + stores ✓ |
| Semana 4 | 07-08 | Integration + validation ✓ |
| Total | 8/8 | v0.2.0 ready |
- Audit completado (doc obsoleta revisada)
- Arquitectura diseñada (design doc completo)
- Tasks planificadas (8 tasks modulares)
- Documentación lista (7 docs nuevos)
- Backward compatibility verificada (campos opcionales)
- References creadas (en cada doc)
- READY TO IMPLEMENT: Start Task 01
Si algo no está claro:
- Revisar
docs/architecture/07-walls-with-openings.md(design completo) - Revisar
docs/phases/phase-6-walls-with-openings/README.md(fase overview) - Revisar task file específico (instrucciones autocontenidas)
- Abrir issue si hay bloqueo arquitectónico
Documento: Este resumen ejecutivo Última actualización: 2026-05-27 Estado: ✅ READY TO IMPLEMENT