MVP de minijuego skill-based con arquitectura Game Service preparada para Web3.
- Minijuego Skill-based: Timing game donde debes hacer clic cuando el auto está en la zona correcta
- Game Service Architecture: Capa de abstracción para progreso y cofre
- Preparado para Web3: Stub de Web3GameService listo para integración futura
- Máquina de Estados: Flujo completo del juego (IDLE → PLAYING → CHEST_FULL → OPENING_REQUESTED)
npm installnpm run devAbre http://localhost:3000 en tu navegador.
npm run build
npm start- Haz clic en "Iniciar Robo"
- Observa el auto moviéndose de izquierda a derecha
- Haz clic en "¡CLICK AHORA!" cuando el auto esté en:
- Zona Verde = PERFECT (+1)
- Zona Azul = GOOD (+1)
- Fuera de zona = FAIL (0)
- Repite hasta llenar el cofre (10/10)
- Cuando esté lleno, aparece el botón "Open Chest"
├── app/
│ ├── layout.tsx # Layout principal
│ ├── page.tsx # Página principal
│ └── globals.css # Estilos globales
├── components/
│ └── minigame/
│ └── AutoHeistGame.tsx # Componente del minijuego
└── lib/
└── game/
├── types.ts # Tipos del dominio
├── IGameService.ts # Interfaz del servicio
├── LocalGameService.ts # Implementación local
├── Web3GameService.ts # Stub para Web3
├── gameEvents.ts # Sistema de eventos
└── index.ts # Exportaciones
El IGameService abstrae toda la lógica del juego:
- LocalGameService: Implementación local funcional (MVP actual)
- Web3GameService: Stub preparado para integración on-chain
IDLE → PLAYING → CHEST_FULL → OPENING_REQUESTED
- Integrar Web3 (wallet, contratos, VRF)
- Sistema de reveal del cofre
- Mejoras visuales y animaciones
- Sonidos y efectos
- El juego funciona 100% local sin dependencias Web3
- La arquitectura está preparada para intercambiar
LocalGameServiceporWeb3GameServicesin cambios en la UI - Todos los eventos se emiten vía
console.log(extensible a event bus)