Tus listas, tu partida
Pegas el enlace de una playlist pública de Spotify y ya hay partida, hasta cien canciones por lista. Si entras con Google o con Apple, tus listas y tu racha te siguen a cualquier aparato.
Demo jugable · Juego web
Adivina la canción con lo mínimo que aguantes
Sonatch es un juego de adivinar canciones. Empieza con dos décimas de segundo y cada fallo te compra un trozo más largo, hasta veinte. Gana quien menos tiempo necesita. Se juega solo, contra la canción que le toca ese día a todo el mundo, o en una sala con código de cinco letras donde cada cual aporta sus listas de Spotify.
Todo lo que hay aquí sale de la aplicación funcionando. Las capturas son de una partida de verdad fotografiada según iba, y el fragmento de abajo suena de verdad, cortado como lo corta el juego.
Pruébalo aquí
Esto es la escalera de Sonatch, funcionando. Dale al botón y tienes dos décimas de segundo. Busca la canción en la caja y elígela, igual que en la aplicación. Si no te dicen nada, falla o salta y el escalón siguiente te dará más. Con la barra de debajo del número vuelves a cualquier punto de lo que ya está abierto.
0.2 s es todo lo que suena ahora
0.0 s 0.2 s
Por ahí no hay nada. Es una de cuatro.
Aquí hay cuatro canciones y en el juego de verdad está Spotify entero. Lo que suena es el avance de 30 s que publica Apple, pedido por tu propio navegador: esta web no aloja ni un segundo.
La escalera es siempre la misma. Lo que cambia es quién más la sube y de qué móvil sale la canción, y ahí está la diferencia entre un juego para el autobús y un juego para cinco personas alrededor de una mesa.
Eliges una lista y las rondas van saliendo sin esperar a nadie. Los fallos se te van amontonando al lado de la escalera, cada uno con el escalón en el que cayó.
No hay nadie más en la pantalla: la escalera es solo tuya.
En la misma habitación o a tres ciudades. La canción es la misma para todos y suena en todos los móviles, pero cada uno abre los segundos que necesita, así que quien la tiene clara pronto paga menos por ella.
Tres jugadores, tres escalones: cada uno va por donde va.
Para cuando estáis todos en el mismo sitio: la canción suena solo en el aparato del anfitrión y cada cual adivina desde el suyo. La escalera es de la sala, así que sube cuando no queda nadie por responder, o cuando el anfitrión la sube a la fuerza.
Una escalera y una votación para moverla: aquí no sube nadie por su cuenta.
Pegas el enlace de una playlist pública de Spotify y ya hay partida, hasta cien canciones por lista. Si entras con Google o con Apple, tus listas y tu racha te siguen a cualquier aparato.
Darle a jugar todavía no empieza nada: antes dices si vas por tu cuenta o si abres una sala. De esa bifurcación cuelgan los tres modos.
La misma para todo el mundo y una sola oportunidad. Cada escalón que abres suma segundos a tu cuenta y rendirse cuesta treinta, así que la buena partida es la corta.
Al acertar aparece la canción entera, con su portada y por dónde escucharla completa. Los fallos se quedan apuntados al lado, cada uno con el escalón en el que cayó.
Cada cual entra desde su móvil y aporta sus propias listas, así que lo que se juega es la mezcla de los tres. Aquí es también donde el anfitrión dice cómo va a sonar, cada uno en el suyo o todos alrededor de un aparato, y cuánto dura cada ronda.
Al final se suman los segundos que ha gastado cada uno y se lleva la partida el número más pequeño. La partida no se archiva en ningún sitio: cuando la sala se cierra, se acabó.
Al navegador no se le dice nunca qué está sonando. La respuesta se queda en el servidor, que reparte solo el audio detrás de una dirección opaca y compara él mismo lo que se le manda. El título viaja cuando la ronda ya está resuelta, que es cuando deja de importar. En las salas pasa igual con lo que hacen los demás: lo que ves en tu móvil es lo que el servidor ha decidido contarte, así que nadie gana una ronda mirando el tráfico.
el título sale cuando la ronda se resuelve
De qué playlist sale la canción diaria no está ni en el código ni en la web. Vive en una variable del servidor, porque saber la lista es saber de qué canciones puede salir la de hoy.
Next.js con React por delante y un servidor que es la autoridad de todas las partidas. Las salas van en tiempo real con eventos del servidor al cliente, sin preguntar cada poco. El corte exacto de un fragmento es cosa de Web Audio: un temporizador se pasa de largo, y a dos décimas pasarse es doblar el trozo. PostgreSQL guarda lo mínimo, dos tablas. Una con las cuentas, que son opcionales y de cada cual solo saben sus listas, su racha y el nombre que da Google o Apple, nunca el correo. La otra, con el sorteo del día. Se despliega en contenedores detrás de un Caddy que termina el TLS, con un cupo de peticiones por IP en cada ruta.