Saltar al contenido principal
Índice

Web · 2025

El Impostor Futbolero

Juego de deducción social multijugador donde el impostor no sabe qué futbolista es el secreto.

Stack
Next.js 15 · React 18 · TypeScript · Firebase · Tailwind CSS 3 · Shadcn UI
El Impostor Futbolero
01

Contexto

El Impostor Futbolero es una aplicación web multijugador basada en el juego de deducción social "El Impostor", orientada a fanáticos del fútbol. El juego propone partidas donde un grupo de jugadores conoce a un futbolista secreto mientras que un "impostor" asignado al azar debe disimular su ignorancia y deducir la identidad del jugador sin ser descubierto durante las rondas de pistas y votación.

02

Motivación

La motivación principal para llevar a cabo el proyecto nació de resolver el "dilema del moderador" en las partidas físicas presenciales. En la versión tradicional con papel y lápiz, uno de los participantes debía sacrificarse para actuar como moderador (repartir los papeles, anotar el futbolista secreto y llevar los tiempos), quedando excluido del juego.

El desarrollo de esta plataforma web se concibió para automatizar el rol del moderador mediante software: el sistema distribuye automáticamente los roles de forma secreta en las pantallas de los usuarios, gestiona los turnos, valida las votaciones en tiempo real y permite que el 100% de los participantes jueguen sin interrupciones.

03

Qué hice

Para automatizar el flujo de juego y garantizar partidas fluidas sin necesidad de moderador, diseñé e implementé una arquitectura basada en sincronización en tiempo real:
  • Sincronización en Tiempo Real (Firebase Cloud Firestore): Escuchadores reactivos (onSnapshot) para actualizar instantáneamente el estado de las salas de espera, la asignación secreta de roles, los turnos de pistas y el escrutinio de votos en todos los dispositivos conectados sin requerir recargas de página.
  • Transacciones Atómicas de Estado (Server Actions): Validaciones en servidor que previenen condiciones de carrera durante la emisión de votos y garantizan la asignación imparcial de roles en cada ronda.
  • Filtros Configurables de Futbolistas: Motor de selección que filtra la base de datos de futbolistas (players.json) según liga, nacionalidad, estado (activo/retirado) y dificultad elegidos por el anfitrión para asignar la palabra secreta de la partida de forma aleatoria.
  • Interfaz Responsiva e Integración Móvil (Tailwind CSS & Shadcn UI): Diseño pensado para dispositivos móviles (mobile-first) que permite a los participantes jugar directamente desde sus teléfonos en reuniones presenciales o salas remotas.
05

Galería

Vistas de Escritorio (8)

Vistas Móviles (4)