Ir al contenido
Benjamín Díaz
Volver a proyectos
OsoParty

OsoParty

Juegos multijugador para compartir en el navegador

Cuatro juegos de navegador para compartir en grupo, cada persona desde su teléfono: trivia, categorías, dibujo y roles ocultos, con multijugador en tiempo real y contenido en español, inglés y portugués de Brasil.

Creado

  • TypeScript
  • React
  • Cloudflare Workers
  • Durable Objects
  • WebSockets
  • Vite
  • Game Dev
  • Web Audio
  • i18n

Construí OsoParty alrededor de una idea sencilla: un grupo de personas reunidas, cada una con su teléfono. Alguien abre una sala, comparte un código de seis caracteres o un enlace de invitación y el resto entra desde su navegador. No hay que crear cuentas ni instalar aplicaciones.

Jugar OsoParty

Abre el juego y crea una sala para tu grupo

Cuatro Juegos, Una Sala

El mismo grupo puede ir cambiando entre cuatro juegos:

  • CapyTrivia: elige temas y responde preguntas de alternativas; después se revela quién eligió cada respuesta.
  • LoroStop: completa categorías con una letra compartida, di Stop y vota sobre las respuestas del grupo.
  • DibuPudú: por turnos, dibuja una palabra secreta mientras el resto intenta adivinarla. Las respuestas correctas más rápidas ganan más puntos.
  • MichiSus: comparte pistas, conversa sobre quién parece sospechoso y vota para encontrar al impostor sin revelar la palabra secreta.

Quien organiza puede proteger la sala con una contraseña u ocultar el código al transmitir. El chat acompaña las partidas y el modo Infinito permite votar qué jugar después. Un editor de packs admite contenido propio, importación y exportación, para jugar con las preguntas y palabras del grupo.

Reglas Compartidas, Salas en Tiempo Real

Mi trabajo abarca el cliente en React, TypeScript y Vite, los motores de juego compartidos y el servicio multijugador en Cloudflare Workers. Cada sala tiene su propio Durable Object, al que se conectan los jugadores mediante WebSockets.

Las reglas viven en paquetes deterministas de TypeScript que se ejecutan tanto en el navegador como en el servidor. No acceden al DOM, no abren conexiones y no manejan sus propios relojes. La aplicación se encarga de esos efectos, lo que permite probar las reglas sin un navegador y evita mantener una implementación distinta para cada entorno.

El servidor aplica las acciones y envía a cada persona solamente su propia vista del juego. Un rol secreto o una respuesta todavía no revelada no deben llegar a la conexión de otro jugador; no basta con ocultarlos en su interfaz. El dibujo agrega otro flujo en tiempo real: los trazos deben llegar al grupo mientras las respuestas, los temporizadores y los puntajes siguen funcionando.

Una Sala en Tres Idiomas

OsoParty admite español, inglés y portugués de Brasil. Cada persona elige el idioma de su interfaz, mientras quien organiza selecciona por separado el idioma de las preguntas y palabras. Así se puede compartir una sala sin exigir que todos los teléfonos usen la misma interfaz.

Las partidas, los dibujos y el chat se mantienen en la memoria de la sala, sin convertirse en un historial guardado. El dispositivo puede recordar un nombre y un borrador del editor de packs; esas preferencias están separadas del estado de la partida.

Animación, Sonido y Pruebas

La interfaz usa Motion con soporte para movimiento reducido, dibujo en canvas y efectos mediante Web Audio. Creé los sonidos con Nielo SFX, conectando una de mis herramientas creativas con un proyecto jugable.

Vitest prueba las reglas, Playwright cubre los flujos multijugador y axe comprueba aspectos de accesibilidad. El foco técnico está en mantener un estado consistente entre los teléfonos y proteger la información que cada jugador debe conservar en secreto.