Resistencia Dev 59d2dd56bc Release v1.0 - Primera versión estable de Francia Ocupada
- Implementación completa del juego La Resistencia
- Sistema de roles: Aliados y Nazis (incluyendo Francotirador)
- Fases del juego: Selección de equipo, votación, misión, asesinato
- Interfaz de usuario con imágenes temáticas
- Sistema de WebSockets para multijugador en tiempo real
- Configuración Docker para desarrollo y producción
- Dockerfiles optimizados para cliente y servidor
- docker-compose.yml para desarrollo local
- docker-compose_prod.yml para despliegue en producción con Nginx Proxy Manager
- Base de datos PostgreSQL integrada
- Documentación de cambios y fases del juego
2025-12-10 12:58:00 +01:00
2025-12-05 22:23:20 +01:00

La Resistencia - Estado del Proyecto

🎮 Estado Actual: FUNCIONAL (Parcial)

Funcionalidades Implementadas

Backend (100% Completo)

  • Sistema de salas y jugadores
  • Asignación de roles (Resistencia/Espías)
  • Fases del juego: LOBBY, INTRO, REVEAL_ROLE, ROLL_CALL, VOTE_LEADER, TEAM_BUILDING, VOTE_TEAM, MISSION
  • Nuevas fases: MISSION_REVEAL, MISSION_RESULT (lógica completa)
  • Votación de líder con sistema de aprobación/rechazo
  • Selección y votación de equipos
  • Votación de misiones (éxito/sabotaje)
  • Barajado aleatorio de votos de misión
  • Histórico de misiones (MissionRecord)
  • Reglas correctas de éxito/fracaso (misión 4 con 7+ jugadores requiere 2 fallos)
  • Sistema de victoria (3 misiones exitosas o 3 fallidas)
  • Fase de asesinato (ASSASSIN_PHASE)

Frontend (Funcional hasta MISSION)

  • Lobby con creación/unión de partidas
  • Intro con música y animaciones
  • Revelación de roles con cartas
  • Roll call con avatares
  • Votación de líder con timer de 10 segundos
  • Selección de equipo por el líder
  • Votación de equipo
  • Votación de misión (éxito/sabotaje solo para espías)
  • Componente VotingTimer funcionando

Pendiente de Implementar (Solo UI)

  1. Fase MISSION_REVEAL: Pantalla que muestra las cartas de votación una a una (backend listo)
  2. Fase MISSION_RESULT: Pantalla resumen con resultado de la misión (backend listo)
  3. Histórico de Misiones: Componente visual en esquina mostrando misiones completadas (backend listo)

🚀 Cómo Ejecutar

# Iniciar todos los servicios
docker compose up -d

# Ver logs
docker compose logs -f

# Detener servicios
docker compose down

🌐 URLs

📝 Git

Ramas

  • master: Estado inicial con errores
  • fix-gameboard: Estado actual funcional

Commits Importantes

  1. 8d423ac - Estado inicial con errores de sintaxis
  2. 44d7418 - GameBoard limpio y funcional
  3. 5bb1b17 - VotingTimer agregado correctamente

🐛 Problemas Conocidos

  1. CPU Alta en Servidor: El servidor puede consumir mucha CPU. Si ocurre, reiniciar con docker compose restart server
  2. Fases MISSION_REVEAL y MISSION_RESULT: No tienen UI implementada. El juego se quedará en esa fase si se completa una misión.

📋 Próximos Pasos

  1. Implementar UI para MISSION_REVEAL (mostrar cartas una a una con animación)
  2. Implementar UI para MISSION_RESULT (pantalla resumen)
  3. Agregar histórico de misiones visual
  4. Optimizar rendimiento del servidor

🎯 Reglas del Juego Implementadas

  • Votación de líder: mayoría simple aprueba
  • 5 rechazos consecutivos: victoria de espías
  • Misiones: 1 fallo = fracaso (excepto misión 4 con 7+ jugadores que requiere 2 fallos)
  • 3 misiones exitosas: victoria de resistencia (con fase de asesinato)
  • 3 misiones fallidas: victoria de espías

🔧 Tecnologías

  • Frontend: Next.js 14, React, TypeScript, Framer Motion, TailwindCSS
  • Backend: Node.js, Express, Socket.IO, TypeScript
  • Base de Datos: PostgreSQL 15
  • Containerización: Docker, Docker Compose
Description
Repositori amb el joc Web: Francia Ocupada
Readme 124 MiB
Languages
TypeScript 92%
Shell 7.1%
Dockerfile 0.5%
CSS 0.3%