← Nesim Apps

Cómo dar el mismo puzle diario a todos sin un servidor

Por Nesim Razon, desarrollador Android independiente · 2026-11-10

Muchos juegos de puzles ofrecen un reto diario idéntico para todos los jugadores, de modo que puedes comparar tu puntuación con tus amigos. Parece que haría falta un servidor que reparta el puzle. No hace falta. Aquí explicamos cómo lo hacemos en nuestros propios juegos y dónde están los límites.

La idea: la fecha es el puzle

Un ordenador no puede producir por sí solo números realmente aleatorios. Un generador de números aleatorios es una receta: le das un número inicial, llamado semilla, y produce una secuencia larga que parece aleatoria. Lo importante es que la misma semilla siempre produce exactamente la misma secuencia.

Ahí está todo el truco. Si cada móvil convierte la fecha de hoy en un número y lo usa como semilla, todos los móviles construyen la misma mezcla, las mismas piezas o la misma disposición. Nadie tiene que enviar nada. La fecha funciona como un secreto compartido que todos ya tienen.

En la práctica, los juegos no usan la fecha sola. La mezclan con algunos números más, como el tipo de puzle o el tamaño del tablero, para que los distintos puzles del mismo día no sean copias unos de otros.

Qué hacen realmente nuestros juegos

Cubbles convierte la fecha local en un solo número con el formato año, mes, día, por ejemplo 20261110, y lo usa como semilla de las piezas. Cada grupo de tres piezas sale de un generador que parte del número del día, el número del grupo y un contador de intentos. Así, el primer grupo del día es siempre el mismo, y también el segundo, y así sucesivamente.

Cardles usa el número del día como semilla de sus repartos. El código que baraja es un pequeño generador aleatorio propio y portátil, escrito para que la misma semilla dé el mismo reparto en cualquier dispositivo y versión de Android. El tipo de juego también rota con el calendario, de modo que el reto diario recorre cuatro solitarios distintos.

Logiclings arma cada día un paquete de tres puzles. Su semilla combina el número del día con el tipo y el tamaño del puzle, y el tipo rota entre las cinco clases de puzle para que cada una vuelva con regularidad. Pentolings elige el puzle diario de encaje entre un grupo fijo de niveles medios según el número del día, y su ronda diaria de bloques que caen usa una semilla derivada del día.

Por qué basta la aleatoriedad determinista

Determinista significa que el resultado depende únicamente de los datos de entrada. Una mezcla que parte de la misma semilla y sigue los mismos pasos no puede salir distinta. Mientras el código que construye el puzle sea idéntico en todos los móviles, el puzle también lo será.

Esto también demuestra que un buen puzle diario depende sobre todo del constructor y no de la entrega. En Cardles, por ejemplo, un reparto no se acepta a ciegas. Algunos repartos son imposibles de ganar, así que el juego comprueba el reparto diario y, si está atascado o no se puede ganar, prueba la siguiente semilla cercana en un orden fijo. Todos los móviles siguen el mismo orden, así que todos acaban en el mismo reparto.

Cubbles hace algo parecido. Las tres piezas deben poder colocarse juntas, así que el juego prueba hasta cuarenta intentos con semilla y usa el primero que funciona. Enseguida veremos qué significa eso para la equidad.

Husos horarios: ¿la medianoche de quién?

Sin servidor no existe un reloj único que decida cuándo empieza un día nuevo. Nuestros juegos usan la fecha de tu propio móvil. Cuando en Sídney ya es mañana, un jugador de Los Ángeles sigue en el puzle de hoy. Ambos tienen razón según su calendario.

Para un jugador individual es la opción más amable. El puzle nuevo aparece en tu medianoche y tu racha sigue tus propios días. El coste es que una comparación diaria global resulta algo difusa: dos personas pueden estar jugando días distintos en el mismo instante.

La racha se calcula igual. Cuenta días locales consecutivos y el juego es indulgente: si hoy todavía no has jugado, el día de ayer mantiene viva la racha hasta que termine el día.

El mismo puzle, casi siempre

En sentido estricto, un puzle con semilla es idéntico solo si cada paso depende de la semilla y de nada más. Cubbles es un ejemplo honesto de que no siempre es así. La comprobación de que cada grupo de piezas se puede colocar depende del estado de tu tablero. Si un intento no encaja en tu tablero, el juego pasa al siguiente, así que dos jugadores pueden ver de vez en cuando grupos de piezas distintos. Casi siempre funciona el primer intento y todos ven las mismas piezas, por eso decimos que el juego diario es igual para casi todos y no para todos.

Hay otra pequeña salvedad en los puzles que se eligen de una lista. Si una actualización cambia la lista de niveles, la elección de un día concreto puede cambiar. Jugadores con versiones distintas podrían ver puzles diferentes durante unos días.

Son detalles que conviene decidir a propósito. O bien el puzle no depende más que de la semilla, o bien se acepta una pequeña diferencia y se dice con claridad.

Trampas, relojes y lo que cuesta no tener servidor

El precio de prescindir del servidor es la confianza. El juego se fía de la fecha de tu móvil. Si cambias el reloj, puedes abrir el puzle de otro día. En un juego para divertirse, donde las puntuaciones se comparten como un reto entre amigos, nos parece un trato aceptable. Un servidor que verificara cada puntuación exigiría cuentas, almacenamiento y cuidado con los datos de las personas, y sería una cosa más que puede fallar.

Las puntuaciones que llegan a una clasificación las comunica la aplicación. Una persona decidida puede enviar una cifra que el juego no ha logrado, y la aplicación no puede impedirlo del todo. Por eso vemos las clasificaciones como un juego entre amigos y no como un concurso con premios.

Si alguna vez haces uno, decide pronto de qué no debe depender nunca el puzle diario. Que dependa solo de la semilla, comprueba que dos dispositivos dan el mismo resultado y mantén congelada la regla que construye el puzle. Si tienes que cambiar el constructor, hazlo con una nueva versión del reto diario y no en silencio, o el puzle de ayer dejará de coincidir.

Preguntas frecuentes

¿Un reto diario necesita conexión a internet?

En nuestros juegos, no. El puzle se construye en tu móvil a partir de la fecha, así que funciona sin conexión.

¿Mi amigo de otro país recibirá hoy el mismo puzle?

Normalmente sí, pero el día nuevo empieza en la medianoche de cada jugador, así que alguien lejano puede ir un día por delante o por detrás.

¿Se puede hacer trampa cambiando el reloj del móvil?

Se puede abrir el puzle de otro día. Sin servidor, el juego se fía de la fecha del móvil, por eso vemos el reto diario como un desafío entre amigos.

¿Qué es una semilla?

Es el número inicial de un generador de números aleatorios. La misma semilla da siempre la misma secuencia, y así distintos dispositivos construyen el mismo puzle.

Más del blog