Juego web y de teléfono · políticas sociales
The Veil · El Velo
Un juego en español primero: decides seis políticas sociales sin saber quién vas a ser y después vives quince vidas al azar bajo esas reglas.
- Rol
- Tiempo
- Stack
En números
55
pruebas en 6 archivos, incluidas las que prueban la premisa del juego
15
vidas por partida bajo las reglas que decides
48
lotes con semillas pareadas detrás de cada vista previa de políticas
La idea
El Velo te pide que decidas las reglas de una sociedad antes de saber quién vas a ser en ella. Escoges seis políticas sociales, después vives quince vidas asignadas al azar bajo esas reglas, y la puntuación depende de cómo salen esas vidas, incluida la peor.
Lo que construí
La simulación es TypeScript puro sin imports de la interfaz ni de la capa de estado, así corre sin interfaz en Node para un arnés de ajuste. El arnés explora las seis políticas con lotes Monte Carlo y verifica que las reglas balanceadas sacan más puntos que la igualdad pura y que el laissez-faire puro, y que las mejores reglas quedan entre los dos extremos. Eso valida este modelo, no una idea general sobre sociedades reales.
Hay dos formas de puntuar: Velo usa el promedio menos una penalidad por la distancia a la peor vida, y Velo de Hierro solo cuenta la peor vida. React y Zustand mueven una interfaz hecha primero en español, y la tarjeta de la Constitución para compartir se dibuja como SVG con las fuentes de la app incluidas y después se convierte en PNG.
Lo difícil
-
Probar la premisa en código
El juego plantea que las reglas balanceadas les ganan a los dos extremos. Las pruebas unitarias verifican eso mismo en las dos formas de puntuar, y verifican que la peor vida sale mejor con un nivel medio de redistribución, no en ninguno de los extremos.
-
Una vista previa que no se contradice
Mientras mueves un control, la pantalla muestra cómo cada política cambia la peor vida. La vista previa corre 48 lotes con las mismas semillas en los dos lados, así los nacimientos se cancelan y solo cambian las leyes, y una sola muestra alimenta los dos medidores y las seis políticas.
-
Un reto diario que no toca los nacimientos
El reto diario usa tu fecha local como semilla y agrega una recesión o una pandemia. Ese modificador sale de su propio stream de azar, así no cambia quién nace.
Antes y después
| Antes | Después | Fuente | |
|---|---|---|---|
| Costo de la vista previa por tick | 13.5 ms | 8 ms | Dicho en el commit 7425eda, después de guardar en caché las cohortes de ciudadanos; no lo volví a medir. |
Lo próximo
Escoger un dominio y publicar la versión web.
Relacionados por idea
Azar con semilla, para repetir cualquier partida
SWARMGEDDON, Invicto, Flawless, Conuco, Coherente, Este sitio
Reglas en un módulo sin imports de la interfaz
Dificultad verificada con simulación antes de publicar
Invicto, Flawless, Coherente, SWARMGEDDON