Saltar al contenido

Determinismo y semillas

Por qué la misma semilla da la misma noche en cualquier dispositivo en SysAdmin Crisis: cómo se mantiene determinista la simulación y qué ganas tú.

Última actualización:

Nada en la simulación es verdaderamente aleatorio. Cada decisión que toma la noche —qué incidente llega, cuándo, contra qué máquina, si una inundación es distribuida— sale de un generador pseudoaleatorio con semilla. Dale la misma semilla y obtendrás la misma noche, siempre, en cualquier dispositivo.

Cómo se sostiene

Dos propiedades lo hacen funcionar. La simulación avanza en pasos fijos de 250 ms, de modo que el resultado nunca depende de la tasa de fotogramas ni de lo rápida que sea tu máquina. Y al motor se le prohíbe —mediante reglas de lint, no por convención— llamar al reloj del sistema o al generador de números aleatorios de la plataforma.

Los sorteos aleatorios también se reparten en flujos separados por consumidor. Eso significa que añadir una función que consume aleatoriedad en un lugar no desplaza la secuencia en todos los demás, de modo que las noches antiguas siguen reproduciéndose correctamente.

Qué te da

La misma noche dos veces. Puedes repetir un turno que perdiste y encontrarte exactamente los mismos incidentes en el mismo orden, que es la diferencia entre practicar y simplemente volver a jugar.

Partidas guardadas que se reanudan con honestidad. Como una partida guardada registra la posición de cada flujo aleatorio, reanudar no es una aproximación. La noche continúa donde estaba, no en algún punto verosímil.

Turnos que se pueden compartir. En la web la semilla se puede indicar en la dirección como ?seed=, de modo que una noche concreta se puede entregar a otra persona exactamente como tú la jugaste.

De dónde vienen las semillas

En la campaña, cada noche deriva su semilla de la partida, así que la noche cuatro de una campaña no es la noche cuatro de otra. El modo infinito toma una semilla nueva en cada partida a menos que aportes una.