AI Systems
Sudoku: Competitive Multiplayer Mobile Game — ELO Ratings, Head-to-Head Challenges & Live Tournaments
Play competitive Sudoku with real ELO ratings, head-to-head challenges, and live real-time tournaments on iOS and Android. Custom puzzle engine, social friends list, and instant push notifications.
Django
Expo
PostgreSQL
Python
React Native
Redis
4
Difficulty Levels — 30 to 60 Cells Removed Per Puzzle
ELO
K=32 Standard Rating Formula — True Skill Progression Tracked
WebSocket
Simultaneous Game Launch Pushed to Both Players on Challenge Accept
The Problem
Every Sudoku App Is a Solo Puzzle Timer — There Is No Real Competitive Multiplayer
Every existing Sudoku app offers solo puzzle solving with a timer. None offered head-to-head challenges where two players race on the same grid, or ELO-rated competitive play that tracks skill level over time, or real-time tournament brackets with social friend invites and live notifications.
Building competitive multiplayer required solving several technical challenges simultaneously: shared puzzle state between two players, simultaneous navigation triggers on challenge acceptance, a fair matchmaking system for tournament brackets, and a persistent social graph with bidirectional friend relationships — all delivered in real time to a mobile app.
Our Solution
Backtracking Puzzle Engine + ELO System + WebSocket Challenge Architecture
We designed Sudoku as a full-stack platform: a custom puzzle engine and real-time WebSocket backend, paired with a polished React Native mobile app with full game UI.
The advanced puzzle generation algorithm guarantees a valid, solvable puzzle at every difficulty level. The SudokuGridMoves model stores grid state as JSON — the default=True record holds the initial puzzle, and additional records capture history. GameProgress stores ELO and XP per completed game, with the ELO formula applied at game save time.
The InvitationStatus WebSocket consumer connects each user to a personal room identified by their user ID (wss://{host}/invite/{user_id}/). A single consumer handles all event types: friend invites, challenge sent, challenge accepted, tournament updates. The channel_call(cid, event, data) utility sends to any group from anywhere in the Django codebase — enabling challenge acceptance to fire WebSocket pushes to both player rooms simultaneously.
The social friend system tracks both pending and accepted relationships — surfacing the connection regardless of who sent the original invite. Tournament2 supports named scheduled tournaments with organiser-only controls, player caps, start/duration scheduling, and winner tracking.
Architecture
Django 5 + DRF API. Django Channels WebSockets (InvitationStatus consumer, per-user rooms). JWT authentication with email + Google + Facebook OAuth. Celery + Redis async tasks. PostgreSQL + JSONField for grid state. Custom backtracking Sudoku algorithm. ELO formula (K=32) and two-phase XP level curve. React Native (iOS + Android) + React Navigation. Dark theme with Quicksand font and brand green (#50A65D).
The Result
Competitive Social Sudoku — ELO Rankings, Real-Time Challenges, and Live Tournaments
Sudoku transformed a traditionally solo puzzle experience into a competitive social platform with real ELO-rated skill progression, head-to-head challenges with simultaneous game-start synchronisation, and scheduled live tournament brackets with WebSocket real-time updates.
The custom puzzle generation algorithm guaranteed valid, solvable grids at every difficulty level — no pre-generated puzzle library required. Head-to-head challenges fire WebSocket pushes to both players simultaneously on acceptance, navigating both apps to the same shared puzzle board at the exact same moment. The two-phase XP curve gave players rewarding early progression that naturally steepened at higher levels — creating long-term engagement loops that solo timers cannot replicate.
The bidirectional friends system let players challenge their network directly, and the ELO rating visible on every player's profile created genuine competitive motivation to improve. Named tournaments with organiser controls, player caps, and prize tracking gave the platform a structured competitive season format that solo puzzle apps cannot offer.
Want scalable architecture and measurable results like this?
Book an Architecture Audit
Build Something Like This
// free scoping call · senior engineers · no commitment
Project scope, timelines, and architecture options in one 45-minute session.
More Work