Chúng tôi đã làm opolyx nhanh hơn
Số xúc xắc giờ hiện ra gần như tức thì, các trang tải nhanh dù bạn ở đâu, và đỡ phải chờ hơn nhiều giữa các lượt.

Nói đơn giản
Tốc độ là một tính năng. Chúng tôi đã dành trọn một đợt làm việc để opolyx trở nên nhanh nhạy, và bạn sẽ nhận ra điều đó ngay khi ngồi vào bàn.
Chạm "Đổ xúc xắc" và xúc xắc bừng sống ngay lập tức — trước đây các con số phải mất một giây rưỡi mới ổn định, còn giờ chúng đáp xuống trong chớp mắt. Tiếp tục lượt của bạn, mua tài sản, trả tiền thuê: tất cả đều phản hồi ngay khoảnh khắc bạn ra tay.
- Số xúc xắc hiện ra gần như tức thì sau khi bạn đổ.
- Trang chủ và hướng dẫn tải nhanh từ bất cứ đâu trên thế giới.
- Đỡ phải chờ giữa các lượt một khi ván trên bàn đã vào guồng.
- Không còn cảnh kẹt "the game server is waking up" khi bạn mở bàn cờ.
Chẳng điều nào trong số này thay đổi cách chơi — vẫn luật ấy, vẫn bàn cờ ấy. Nó chỉ tránh đường cho bạn nhanh hơn mà thôi.
Cho người thích chi tiết kỹ thuật
Thời gian từ lúc nhấp đến khi số xúc xắc hiện ra giảm từ ~1.5s xuống còn khoảng 0.3–0.75s. Có hai thứ chồng lên nhau: một hoạt ảnh ổn định ~700ms sau khi phản hồi về tới, và một đường mạng chậm. Chúng tôi rút ngắn pha lăn xuống 250ms, và người chơi đang hành động giờ chạy xúc xắc theo kiểu lạc quan ở 0ms, rồi áp dụng trạng thái và sự kiện có thẩm quyền từ daemon ngay khi chúng trả về — không phải chờ bản phát realtime chậm hơn.
Cú thắng lớn hơn nằm ở mạng. Máy chủ trò chơi (daemon) cấp quyền cho chính JWT của người chơi thay vì một secret của máy chủ, nên trình duyệt giờ có thể gọi thẳng đến nó thay vì nảy qua một server action của Vercel. Các lệnh gọi trực tiếp xác thực token HS256 cục bộ trên daemon (signature, exp, audience) — phần xác thực đi từ ~40ms xuống ~1–5ms — và lùi về dùng relay server action khi có bất kỳ lỗi nào, nên không gì bị gửi trùng hai lần.
# 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>Bên dưới, daemon và cơ sở dữ liệu giờ ngồi cạnh nhau: chúng tôi đã chuyển Supabase production từ Tokyo sang Singapore, đặt chung chỗ với daemon trên Railway, nên các lệnh gọi daemon↔db là cục bộ — xác thực ~200ms → ~40ms và xử lý ván ~250ms → ~45ms. Một node:https keep-alive Agent ở phạm vi module giữ cho kết nối đó luôn ấm giữa các lượt (lần đổ đầu tiên của một lượt không còn phải kết nối lại từ trạng thái nguội). Và mọi trang tiếp thị lẫn nội dung — home, how-to-play, rules, guide, các trang pháp lý, sign-in — giờ đều được prerender theo từng ngôn ngữ trên cả mười ngôn ngữ, nên chúng được phục vụ từ edge cache mà không cần lambda khởi động nguội.
