Files
Ajedrez_Purgatorio/BLOQUEADORES_JUGABILIDAD.md
T
jimmyabv b539aa403e fix: resolve compilation errors, add tests, fix configs, update docs
- Fix 9 CS0101 duplicate classes between Mono/ and Mono/Classic/
  - BoardManager -> ClassicBoardManager, SquareClick -> ClassicSquareClick
  - Delete duplicate Piece/Pawn/King/Queen/Rook/Bishop/Knight from Classic/
  - Merge GetAttackSquares into Piece base class with overrides
- Fix King castling: reject castling through/while in check
- Assign URP pipeline to QualitySettings (6 levels) and GraphicsSettings
- Fix template identifiers (DefaultCompany -> EarthGenesisGames)
- Delete orphaned SampleScene.unity and duplicate URP assets
- Fix test assembly reference (Assembly-CSharp -> AjedrezPurgatorio.Runtime)
- Remove 11 unused packages (multiplayer, visualscripting, terrain, etc.)
- Update BoardInputSystemSpike for ClassicSquareClick
- Write unit tests: CheckDetector, DrawDetector, MoveValidator
- Fix BalanceConfig JSON structure to match C# class fields
- Update stale documentation (~30 files)
  - architecture.md, ADR-0001, roadmap, gate-check, EPIC.md
  - PROJECT_STATUS.md, BLOQUEADORES_JUGABILIDAD.md
  - tech-debt-register.md
- Add Unity Editor setup guide (production/UNITY_EDITOR_SETUP.md)
2026-08-17 20:40:02 -03:00

6.1 KiB

Bloqueadores Críticos para Jugabilidad

Fecha de última actualización: 17 de agosto de 2026 Estado del Código: Compilando, 0 errores, 0 warnings de compilación Estado del Proyecto: Vertical Slice — MainMenu + Chapter1 ensambladas y en Build Settings


BLOQUEADORES RESUELTOS

Los siguientes problemas fueron resueltos durante la revisión de código del 17 de agosto:

  1. CS0101 duplicados — 9 clases tenían definiciones duplicadas entre Mono/ y Mono/Classic/
    • Piece, Pawn, King, Queen, Rook, Bishop, Knight eliminados de Mono/Classic/Pieces/
    • BoardManagerClassicBoardManager, SquareClickClassicSquareClick
    • GetAttackSquares añadido a Piece base + overrides en Pawn y King
  2. ProjectSetup.cs no compila — CameraFollow eliminado; SceneSetupStructs/PieceSetupStructs generados
  3. SampleScene.huérfana — Eliminada junto con su .meta
  4. URP pipeline no asignado — QualitySettings (6 niveles) y GraphicsSettings ahora apuntan al URP correcto
  5. Template identifiers — Company y app IDs actualizados (DefaultCompany → EarthGenesisGames)
  6. URP assets duplicados — Eliminados (Assets/Scenes/Settings/)
  7. Test assembly ref rotta — tests asmdef ahora apunta a AjedrezPurgatorio.Runtime

🔴 BLOQUEADORES ACTUALES (Impiden juego completo)

1. Chapter2/3 no existen ⚠️ CRÍTICO

Problema:

  • Solo MainMenu.unity y Chapter1.unity existen en Build Settings
  • CampaignManager intenta cargar "Chapter2", "Chapter3" → Scene not found

Impacto:

  • Campaña no puede continuar más allá del capítulo 1
  • Dead King spawn solo funciona en chapter 1

Solución: Crear Chapter2.unity y Chapter3.unity (copiar estructura de Chapter1, cambiar contenido narrativo)

Prioridad: 🔴 BLOQUEANTE


2. GameStateManager no instanciado ⚠️ CRÍTICO

Problema:

  • GameStateManager.cs existe pero no hay instancia en ninguna escena
  • GameManager tiene null-checks para GameStateManager (no crashea, pero no funciona)

Impacto:

  • Transiciones de estado del juego no están protegidas
  • No hay flujo de estados formally controlado

Solución: Añadir GameStateManager a Chapter1.unity (y a Chapter2/3 cuando existan)

Prioridad: 🔴 BLOQUEANTE


3. AIController no instanciado ⚠️ CRÍTICO

Problema:

  • AIController.cs existe pero no está en la escena
  • GameManager usa AIController.Instance → null → IA no juega

Impacto:

  • El jugador juega contra nadie (piezas negras no se mueven)

Solución: Añadir AIController a Chapter1.unity; CampaignManager.ApplyChapterAIConfiguration() ya está implementado

Prioridad: 🔴 BLOQUEANTE


🟡 PROBLEMAS IMPORTANTES (Afectan experiencia pero no bloquean)

4. Audio mudo

Problema:

  • AudioManager tiene campos para clips, todos null en ambas escenas

Impacto: Juego funciona pero sin audio

Solución: Importar audio clips y asignar en Inspector

Prioridad: 🟡 MEDIO


5. GameHUD incompleto

Problema:

  • _pauseButton y _capturedPieceIconPrefab null en Chapter1
  • Eventos OnPieceCaptured/OnCheckResolved no están en GameManager

Impacto: HUD no muestra piezas capturadas ni indicador de check

Solución: Añadir eventos a GameManager; crear y asignar prefabs de iconos

Prioridad: 🟡 MEDIO


6. DialogueUI incompleto

Problema:

  • _speakerPortrait, _speakerDatabase, _advanceDialogueAction null en Chapter1

Impacto: Diálogos se muestran pero sin retratos ni base de speakers

Solución: Crear SpeakerDatabase, asignar retratos de personajes

Prioridad: 🟡 MEDIO


7. PauseMenuController sin cablear

Problema:

  • _canvasGroup null en Chapter1

Impacto: No hay menú de pausa funcional

Prioridad: 🟡 MEDIO


8. DeadKingInputUI/RevealUI no instanciadas

Problema:

  • Scripts existen pero no están en escenas
  • CampaignManager.ShowDeadKingReveal() tiene TODO

Impacto: Dead Kings se guardan al perder pero no hay UI de inscripción ni revelación

Prioridad: 🟡 MEDIO


9. SaveSystem restore parcial

Problema:

  • TotalPiecesLost/LastChapterWasVictory no se restauran (props read-only en CampaignState)

Impacto: Al cargar partida, stats pueden no estar correctos

Prioridad: 🟡 MEDIO


🟢 POLISH (Nice to have)

10. Escenas sin commitear

  • MainMenu.unity y Chapter1.unity están en el working tree pero no commiteadas

11. UI feedback faltante

  • PieceSelectionFeedback no tiene prefab de MoveIndicator asignado

📊 RESUMEN EJECUTIVO

PARA TENER CAMPAÑA JUGABLE (Chapter 1 completo):

  1. Código compilando
  2. Chapter1.unity ensamblada con BoardManager, GameManager, PurgatoryManager
  3. MainMenu.unity ensamblada con CampaignManager, SaveSystem, AudioManager
  4. Build Settings con MainMenu + Chapter1
  5. BoardManager tiene prefabs asignados
  6. Añadir AIController a Chapter1 (sin esto, no hay oponente)
  7. Añadir GameStateManager a Chapter1

PARA CAMPAÑA COMPLETA (3 capítulos):

  1. Crear Chapter2.unity y Chapter3.unity
  2. Cablear DeadKingInputUI/RevealUI
  3. Completar DialogueUI (speakerDatabase, portraits)
  4. Añadir eventos OnPieceCaptured/OnCheckResolved a GameManager

PARA POLISH:

  1. Audio clips
  2. GameHUD completeness
  3. PauseMenu
  4. SaveSystem restore completo

🎯 PLAN DE ACCIÓN RECOMENDADO

Fase 1: Hacer Chapter 1 jugable (30 minutos)

  1. Añadir AIController a Chapter1.unity
  2. Añadir GameStateManager a Chapter1.unity
  3. Test: MainMenu → New Campaign → Chapter 1 → Jugar contra IA

Fase 2: Campaña funcional (2-3 horas)

  1. Crear Chapter2.unity y Chapter3.unity
  2. Añadir a Build Settings
  3. Cablear DeadKingInputUI/RevealUI
  4. Test: New Campaign → Chapter 1 → Ganar → Chapter 2 → Completar campaña

Fase 3: Polish (1-2 horas)

  1. Audio clips + asignación
  2. GameHUD: eventos + prefabs
  3. DialogueUI: speaker database + portraits
  4. PauseMenu

Tiempo total estimado: 4-6 horas para campaña completamente funcional