Club Impostor
Un juego multijugador en tiempo real de deducción social con chat de voz, categorías personalizadas y sistemas de progresión.
Descripción
Descripción general
Club Impostor es un sofisticado juego multijugador basado en navegador de deducción social similar a Mafia o Licántropo, donde los jugadores asumen roles como civiles o impostores. El núcleo del juego comprende fases de discusión, rondas de votación y eliminación basada en argumentos, requiriendo sincronización en tiempo real entre múltiples clientes mientras se mantiene la consistencia del estado del juego en el servidor. La arquitectura soporta dos modos distintos: juego local en un dispositivo sin interacción con servidor y juego en red multidispositivo con orquestación completa del servidor, permitiendo una implementación flexible y garantizando que el juego funcione sin problemas ya sea que los jugadores estén en un dispositivo o distribuidos a través de internet.
Arquitectura técnica
La base técnica aprovecha una arquitectura monorepo moderna con frontend React 19 + TypeScript + Vite y backend Express + TypeScript, ambos desplegados en infraestructura Vercel. El cliente utiliza gestión de estado avanzada a través de Zustand para estado local y TanStack Query para sincronización de datos del servidor, mientras que el servidor implementa una capa Socket.io robusta para eventos de juego en tiempo real. El estado del juego se persiste en una base de datos Turso/LibSQL (compatible con SQLite, alojada en edge) con Drizzle ORM para consultas type-safe. Los componentes de infraestructura crítica incluyen Redis para limitación de velocidad distribuida (protegiendo tanto endpoints HTTP como conexiones WebSocket), gestión de sesiones basada en JWT con rotación de tokens de actualización e integración con Better Auth para flujos de autenticación de nivel empresarial incluyendo Google OAuth.
Multijugador en tiempo real y comunicación de voz
La comunicación de voz se implementa mediante mediasoup, un framework WebRTC de última generación que habilita audio entre pares sin depender de servicios VoIP de terceros. El servidor maneja funcionalidad SFU (Unidad Selectiva de Reenvío), permitiendo que múltiples jugadores hablen simultáneamente con baja latencia, mientras que el cliente maneja adquisición de micrófono, codificación/decodificación de audio y gestión de flujos en tiempo real. Esta arquitectura elimina costos de licencia de VoIP mientras proporciona flujos de audio codificados en OPUS con control de velocidad de bits adaptativa. La implementación incluye recuperación de errores sofisticada para problemas de permisos de micrófono, monitoreo de estado de permisos y fallback elegante cuando el hardware de audio no está disponible.
Contenido y sistemas económicos
El sistema de contenido del juego - categorías de palabras, generación de palabras y parámetros del juego - se potencia dinámicamente a través de la Puerta de Enlace de IA de Vercel, que proporciona generación de palabras bajo demanda para categorías personalizadas sin depender de listas de palabras estáticas. Una estrategia de caché multicapa con backend Redis y cachés de aplicación en memoria asegura recuperación de palabras en menos de 100ms para categorías comunes, crítico para mantener tiempos de carga de lobby ágiles incluso bajo conteo de jugadores alto. El servidor implementa limitación de velocidad por usuario e IP para solicitudes de generación de palabras, protegiendo contra abuso mientras mantiene inicialización de juego suave.
Los sistemas económicos y de progresión añaden profundidad a través de múltiples capas interconectadas: un sistema de logros con progreso rastreado y tiers de rareza, un sistema de rangos con cálculos al estilo ELO que persisten entre temporadas, y una economía de moneda en juego con dos tiers (moneda ganada de jugabilidad, moneda premium comprable para cosméticos). El módulo Bazaar gestiona inventario cosmético, skins de jugador, títulos en juego y pases de batalla estacionales. Los eventos de compra disparan validaciones webhook para seguridad, previniendo transacciones fraudulentas mientras se mantiene integridad transaccional a través de mutaciones type-safe de Drizzle.
Rendimiento e infraestructura
La arquitectura aborda desafíos complejos en juegos multijugador en tiempo real: reconciliación de estado del juego cuando jugadores se reconectan a mitad del juego (rehidratando temporizadores, estado de turno actual e información de rol sin desincronizar otros jugadores), procesamiento óptimo de mensajes WebSocket para reducir ancho de banda mientras se mantiene capacidad de respuesta percibida, y gestión eficiente de salas con limpieza automática de sesiones obsoletas. El desarrollo reciente se enfocó en mejorar robustez de micrófono (detectando cambios de permiso y estados de permisos de sesión), implementar mecanismos de retroalimentación de selección de palabras con deduplicación de solicitudes y optimizar flujos de inicio de sesión con Google para manejar transiciones de estado de sesión sin problemas. Las optimizaciones de rendimiento incluyen división agresiva de código vía Vite con chunks por ruta, prefetching de páginas críticas de flujo de juego al entrar en lobby, y scrolling virtual para tablas de clasificación que soportan miles de rankings concurrentes. El panel de administración proporciona monitoreo en tiempo real de juegos activos, estadísticas de jugadores, gestión de contenido y herramientas de soporte para gestión de cuentas de usuario—infraestructura esencial para mantener un servicio multijugador en producción.
Características
- Multijugador en tiempo real con sincronización WebSocket y Socket.io
- Chat de voz con mediasoup para comunicación de audio entre pares
- Autenticación basada en JWT con integración de Google OAuth mediante Better Auth
- Arquitectura dual: modo local en un dispositivo y salas multidispositivo en servidor
- Selección de palabras dinámica con generación potenciada por IA y caché
- Sistema de logros, tablas de clasificación y rangos de progresión
- Economía en juego con tienda Bazaar, moneda premium y artículos cosméticos
- Limitación de velocidad, gestión de sesiones y panel de administración integral