Hicimos que opolyx sea más rápido
Los números de los dados ahora aparecen casi al instante, las páginas cargan rápido estés donde estés y se espera mucho menos entre turnos.

En palabras sencillas
La velocidad es una función en sí misma. Dedicamos toda una tanda de trabajo a que opolyx se sienta ágil, y deberías notarlo en cuanto te sientes a una mesa.
Pulsa "Tirar dados" y los dados cobran vida de inmediato: antes los números tardaban un segundo y medio en asentarse, y ahora caen en un parpadeo. Continuar tu turno, comprar una propiedad, pagar alquiler: todo responde en el instante en que actúas.
- Los números de los dados aparecen casi al instante después de tirar.
- La página de inicio y la guía cargan rápido desde cualquier parte del mundo.
- Menos espera entre turnos una vez que la mesa se pone en marcha.
- Se acabó el parón de "the game server is waking up" al abrir un tablero.
Nada de esto cambia cómo se juega: las mismas reglas, el mismo tablero. Simplemente se aparta de tu camino más rápido.
Para los más técnicos
El tiempo del clic a los números de los dados bajó de ~1.5s a aproximadamente 0.3–0.75s. Había dos cosas acumuladas: una animación de asentamiento de ~700ms después de que llegara la respuesta, y una ruta de red lenta. Recortamos el volteo a 250ms, y el jugador que actúa ahora reproduce los dados de forma optimista a 0ms y luego aplica el estado y los eventos autoritativos del daemon en cuanto regresan, sin esperar a la difusión realtime más lenta.
La mayor mejora fue la red. El servidor del juego (el daemon) autoriza el propio JWT del jugador en lugar de un secreto del servidor, así que el navegador ahora puede llamarlo directamente en vez de rebotar por una server action de Vercel. Las llamadas directas verifican el token HS256 localmente en el daemon (signature, exp, audience) —la autenticación pasó de ~40ms a ~1–5ms— y recurren al relé de la server action ante cualquier error, de modo que nada se envía nunca dos veces.
# Browser → daemon directly (with a verified server-action fallback)
NEXT_PUBLIC_DAEMON_URL=https://opolyxgame-daemon-production.up.railway.app
# Daemon verifies the player's token locally (HS256), ~40ms → ~1-5ms
SUPABASE_JWT_SECRET=<legacy HS256 secret from Supabase → Settings → API>Por debajo, el daemon y la base de datos ahora están juntos: migramos el Supabase de producción de Tokyo a Singapore, ubicado junto al daemon de Railway, así que las llamadas daemon↔db son locales: la autenticación pasó de ~200ms a ~40ms y el trabajo del juego de ~250ms a ~45ms. Un node:https keep-alive Agent con alcance de módulo mantiene esa conexión caliente entre turnos (la primera tirada de un turno ya no reconecta en frío). Y cada página de marketing y de contenido —home, how-to-play, rules, guide, las páginas legales, sign-in— ahora se prerrenderiza por idioma en los diez idiomas, de modo que se sirven desde la edge cache sin lambda de arranque en frío.
