
ROYAL ROULETTE
A real-time gaming ecosystem.
A full casino platform — 15 server-authoritative games, live video and voice rooms, a TikTok-style gift economy, multi-chain crypto wallet and an operator back-office — on ASP.NET Core .NET 10, PostgreSQL, Redis, SignalR and Next.js 16.
Royal Roulette is a multiplayer casino platform with a live-streaming social layer. The .NET 10 API is layered — API, Application, Domain, Infrastructure — with 55 controllers, four SignalR hubs and 27 EF Core migrations. Fifteen game modules (roulette, aviator crash, blackjack, baccarat, slots, video poker, dice, keno, mines, plinko, hi-lo, coin flip, chicken cross, wheel of fortune, western slot) draw randomness from System.Security.Cryptography.RandomNumberGenerator behind an ISecureRandom abstraction; continuous-round games run as background workers pushing rounds to hubs.
Live rooms publish and subscribe over LiveKit WebRTC with a mock provider for offline development; voice rooms have speaker seats and a raise-hand queue; a 14-gift catalogue with six rarity tiers is queued server-side and rendered with full-motion video and SVG fallbacks. The wallet handles multi-chain deposits and withdrawals with row-versioned balances and idempotent client operation keys. The frontend is Next.js 16 with the React Compiler, a strict CSP, three.js, GSAP and Framer Motion.
Overview
Dark luxury, tables, live rooms, game systems, wallet and admin — one ecosystem where every round is authoritative on the server and every gift is queued, idempotent and animated.
Architecture
Engineering
Game systems
- 01Roulette and Aviator run as server background workers with rounds broadcast on dedicated hubs
- 02Volatile game state for Aviator, Mines, Chicken Cross, Slot, Hi-Lo, Blackjack and Video Poker lives in Redis; production refuses the in-memory fallback
- 03Every adapter draws from System.Security.Cryptography.RandomNumberGenerator behind ISecureRandom
- 04Wallet concurrency: row versions, financial integrity constraints and client operation keys for idempotent deposits and withdrawals
- 05Strict CSP with camera and microphone limited to self; SignalR query tokens disabled in production

Live rooms & gifts


- 01
Publish over LiveKit
Hosts go live through a LiveKit media provider; a mock provider keeps the whole flow testable offline.
- 02
14 gifts, 6 rarity tiers
Common to Mythic. Display duration runs 5.0 s → 12.0 s and particle count 15 → 100 by rarity; six gifts ship as 720×1280 full-motion video, the rest use SVG fallbacks.
- 03
Server-authoritative queue
Gifts are idempotent and queued on the server before the client renders them, so a burst of taps never double-charges or desynchronises viewers.
- 04
Live credits
A separate gift currency with user top-up requests and an admin approval queue.
Design
Every game received a cinematic pass: a composited 3D roulette wheel and table, an obsidian-vault Mines, a Royal Plinko observatory, an Aviator crash grid with its own 4K materials atlas. Nineteen game covers share one 960×540 language.
Results
- 2026-03First EF migration — wallet row versions
- 2026-04KYC, challenges, support tickets, responsible gaming
- 2026-05Book of Golden Sheba deployed
- 2026-06Thunder Reels deployed
- 2026-07Live system schema
- 2026-08Live rooms complete — 88/100; git baseline and CI gates

