हमने opolyx को तेज़ बना दिया
पासे के अंक अब लगभग तुरंत दिखते हैं, आप कहीं भी हों पेज तेज़ी से लोड होते हैं, और बारियों के बीच इंतज़ार बहुत कम हो गया है.

आसान शब्दों में
रफ़्तार अपने आप में एक फ़ीचर है. हमने एक पूरी पारी opolyx को फुर्तीला बनाने में लगाई, और टेबल पर बैठते ही आपको इसका एहसास हो जाना चाहिए.
"पासा फेंकें" पर टैप करें और पासा फ़ौरन जीवंत हो उठता है — पहले अंकों को ठहरने में डेढ़ सेकंड लगता था, और अब वे पलक झपकते ही आ टिकते हैं. अपनी बारी आगे बढ़ाना, कोई संपत्ति खरीदना, किराया चुकाना: यह सब आपके कार्य करते ही जवाब देता है.
- फेंकने के बाद पासे के अंक लगभग तुरंत दिखते हैं.
- होम पेज और गाइड दुनिया में कहीं से भी तेज़ी से लोड होते हैं.
- टेबल पर खेल जमने के बाद बारियों के बीच कम इंतज़ार.
- बोर्ड खोलने पर अब "the game server is waking up" वाली रुकावट नहीं.
इनमें से कुछ भी खेलने का तरीका नहीं बदलता — वही नियम, वही बोर्ड. यह बस आपके रास्ते से तेज़ी से हट जाता है.
तकनीकी जानकारी
क्लिक से पासे के अंक तक का समय ~1.5s से घटकर लगभग 0.3–0.75s रह गया. दो चीज़ें ऊपर-नीचे जुड़ी थीं: जवाब आने के बाद ~700ms का ठहराव एनिमेशन, और एक धीमा नेटवर्क रास्ता. हमने लुढ़कने को 250ms तक छोटा किया, और कार्य करने वाला खिलाड़ी अब 0ms पर पासे को आशावादी ढंग से चला देता है, फिर daemon की प्रामाणिक स्थिति और इवेंट लौटते ही उन्हें लागू कर देता है — धीमे realtime प्रसारण का इंतज़ार किए बिना.
सबसे बड़ा फ़ायदा नेटवर्क में था. गेम सर्वर (daemon) किसी सर्वर सीक्रेट के बजाय खिलाड़ी के अपने JWT को अधिकृत करता है, इसलिए ब्राउज़र अब Vercel की server action से होकर गुज़रने के बजाय सीधे उसे कॉल कर सकता है. सीधे कॉल daemon पर ही HS256 टोकन को स्थानीय रूप से जाँचते हैं (signature, exp, audience) — प्रमाणीकरण ~40ms से घटकर ~1–5ms रह गया — और किसी भी त्रुटि पर server action रिले पर लौट आते हैं, ताकि कुछ भी कभी दो बार सबमिट न हो.
# 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>भीतर ही भीतर, daemon और डेटाबेस अब साथ-साथ बैठते हैं: हमने प्रोडक्शन Supabase को Tokyo से Singapore में स्थानांतरित किया, जो Railway के daemon के साथ एक ही जगह है, ताकि daemon↔db कॉल स्थानीय हों — प्रमाणीकरण ~200ms → ~40ms और गेम का काम ~250ms → ~45ms. एक मॉड्यूल-स्कोप वाला node:https keep-alive Agent बारियों के बीच उस कनेक्शन को गर्म रखता है (किसी बारी का पहला रोल अब ठंडा होकर दोबारा नहीं जुड़ता). और हर मार्केटिंग व कंटेंट पेज — home, how-to-play, rules, guide, क़ानूनी पेज, sign-in — अब सभी दस भाषाओं में प्रति-लोकेल प्रीरेंडर किए जाते हैं, ताकि वे edge cache से परोसे जाएँ, बिना किसी कोल्ड-स्टार्ट lambda के.
