One board, five thousand years, every table. A premium-feel, fair-dice backgammon for the whole world — Tavla, Tawla, Tavli, Nardi and classic match play in a single Unity 2D mobile app.
Backgammon is played by hundreds of millions of people who call it different names and play it by different house rules. Every major app today serves exactly one of those audiences — or serves all of them badly with aggressive ads and dice nobody trusts. Tavla Royale serves them all, properly.
A beautifully crafted board — walnut, brass and cream — that opens in two seconds, plays offline anywhere, and knows your rules: the doubling cube for London, no cube for Istanbul, Plakoto for Athens, Long Nardi for Yerevan. Dice are cryptographically fair and the game proves it. Ads never interrupt a match.
Six authentic variants at launch with correct regional terminology, not one Western rule set with a translation layer.
Commit-reveal RNG with a visible fairness ledger. The single loudest complaint in this genre becomes our loudest feature.
Interstitials only between matches, hard-capped. Rewarded ads are opt-in and generous. Coins gate stakes, never moves.
Cold start to first roll in under 8 s; resume any match instantly. Built for the commute, the queue, the tea house.
Four difficulty tiers up to a genuinely strong evaluator, with a post-game "blunder review" that teaches instead of taunts.
The rules engine is deterministic and server-shaped from day one, so Nakama PvP (Phase 2) is a transport change, not a rewrite.
"Global" for backgammon doesn't mean one audience — it means a federation of regional audiences, each reachable with its own store listing, name and rule set.
| Region | Local name | Default variant | Localization notes |
|---|---|---|---|
| Turkey + diaspora (DE, NL) | Tavla | Tavla (no cube, 5-point matches) | tr-TR strings, tea-house table themes, "Mars/Backgammon" = double win terminology |
| Gulf & Levant | Tawla / طاولة | Mahbusa (Plakoto-family) + 31 | Full RTL (reuse Baloot pipeline), ar-SA / ar-EG strings, Ramadan events |
| Greece + Cyprus | Tavli | Portes · Plakoto · Fevga rotation | el-GR; the 3-game rotation IS the product here — ship it as one mode |
| Iran, Armenia, Caucasus, RU | Nardi / Narde | Long Nardi | fa-IR, hy-AM, ru-RU; no hitting in Long Nardi — a genuinely different game |
| Western EU, US, IL | Backgammon | Match play + doubling cube, Crawford | en, fr, de, he; competitive framing, ELO, blunder review |
| South Asia (secondary) | Backgammon | Classic, money game | Low-end device performance target; en-IN, si-LK 🇱🇰 as a personal touch |
Learned at a physical table from family. Wants *their* rules, big readable checkers, no clutter. Highest retention, sensitive to dice fairness.
Plays 3-minute sessions vs AI. Wants instant resume, one-hand portrait play, satisfying feel. Primary rewarded-ad consumer.
Watches backgammon YouTube, knows what a blunder is. Converts on the blunder-review IAP and hard AI. Vocal in reviews — win them, win ASO.
Launch ships six variants against AI, all driven by one rules engine with variant descriptors. Online PvP, tournaments and friend tables arrive in Phase 2.
| Variant | Cube | Hitting | Start layout | Win conditions | Launch |
|---|---|---|---|---|---|
| Backgammon (Match) | Yes + Crawford + Jacoby(money) | Yes | Standard 24/13/8/6 | Single ×1 · Gammon ×2 · Backgammon ×3 | ✔ v1.0 |
| Tavla | No | Yes | Standard | Single 1p · Mars 2p (first to 5) | ✔ v1.0 |
| Portes (Tavli #1) | No | Yes | Standard | 1p / 2p (diplo) | ✔ v1.0 |
| Plakoto (Tavli #2) | No | Pin instead of hit | All 15 on opponent's 1-point | 1p / 2p; pinned mother checker = 2p | ✔ v1.0 |
| Fevga (Tavli #3) | No | No hits, single checker blocks | All 15 on far corner | 1p / 2p | ✔ v1.0 |
| Long Nardi | No | No hitting at all | All 15 on point 24 (head) | Oyn 1p · Mars 2p · Home Mars 3p (variant toggle) | ✔ v1.0 |
| Mahbusa (Tawla) | No | Pin (imprison) | Regional | 1p / 2p | ◔ v1.1 |
| Online PvP · Tournaments | Per variant | — | — | Nakama authoritative | ◯ Phase 2 |
VariantDef ScriptableObject: start layout, hit mode (hit / pin / none), cube enabled, movement direction (both CCW in Fevga/Long Nardi), first-move rules, gammon terminology, scoring table. The engine consumes the descriptor; adding Mahbusa in v1.1 is content, not engineering.The engine is a pure C# library (no UnityEngine references) — deterministic, unit-testable, and reusable verbatim inside a Nakama match handler in Phase 2.
int[26] points (signed: +n = n white checkers, −n = black; [0] and [25] = bars), int[2] borneOff, CubeState, turn, dice[2], movesRemaining.Apply(state, Move) → state'. Enables undo, AI search, replay, and server verification with zero extra code.| State | Legal actions | Transition |
|---|---|---|
| Centered (64) | Either player may double before rolling | → Offered |
| Offered | Opponent: Take / Drop | Take → Owned(opponent), value ×2 · Drop → match point(s) to doubler at pre-double value |
| Owned(P) | Only P may redouble before rolling | → Offered (beavers off by default; money-game option) |
| Crawford game | Cube dead for exactly one game when leader reaches match−1 | Post-Crawford: cube live again |
Classic: single ×1, gammon ×2 (opponent bore off none), backgammon ×3 (none borne off + checker on bar/opponent home), all × cube value; Jacoby rule optional in money games. Tavla: win 1, Mars 2 (opponent bore off none). Plakoto: pinning the opponent's mother checker (their last checker on their start point) scores a double win immediately. Long Nardi: Oyn 1 / Mars 2, optional Koks 3. All values live in the variant descriptor.
System.Security.Cryptography) with rejection sampling — never Random.Range % 6.Launch AI is a tuned heuristic evaluator — cheap, instant on low-end devices, and adjustable to four believable difficulty tiers. A neural evaluator is a v1.2 upgrade, not a launch dependency.
| Feature | Signal | Notes |
|---|---|---|
| Pip count differential | Race position | Dominant term in bear-off/race phases |
| Blot exposure | Σ P(hit) per blot × pip cost | Exact 1–2 die hit probabilities from lookup table |
| Prime strength | Consecutive made points (2–6 length, position-weighted) | Zeroed in Fevga/Long Nardi variants, replaced by block chains |
| Anchor quality | Advanced anchors (20/21/18-pt) | Classic + Portes only |
| Home board strength | Made home points when opponent has blots/bar | Attack timing |
| Checkers back / trapped | Escape difficulty; pinned checkers in Plakoto weighted heavily | Per-variant weight set |
| Bear-off efficiency | Wastage minimization | Endgame table for last 2–3 rolls |
1-ply eval, top-3 move sampled with temperature, cube logic off/naive. Beatable by a first-day player.
Best move 80% of the time; occasional "human" second-best picks. Default tier.
Full 21-roll opponent reply distribution, pruned to top-6 candidate moves per node. Sound cube decisions via match-equity table.
Monte-Carlo rollouts (64–128 games) to break near-ties in critical positions; async so UI never stalls. Target: crushes 95% of players.
Post-match, replay any move; the evaluator marks moves losing >0.08 equity as blunders and shows the better play with a one-line reason ("leaves 2 blots under direct shots"). Three free reviews daily; unlimited via Royale Pass. This is the feature the hobbyist segment pays for and reviews well.
Portrait-first is a deliberate bet: the heritage and commuter segments play one-handed. The board rotates 90° — points run horizontally from the left and right rails, the bar becomes a horizontal beam. Landscape remains supported on tablets.
Splash → Home ─┬→ Quick Match → Match → Result ─┬→ Rematch ↺
├→ Variant Select → Stake Select → Match └→ Blunder Review → Home
├→ Daily Gauntlet (3-match ladder)
├→ Bazaar · Codex · Profile/Settings
└→ Pass & Play
The fantasy is a beautiful physical board in a warm, dim tea house — wood, brass and felt, not neon and confetti. Deliberately distinct from Baloot's navy/gold so the studio portfolio reads as two brands.
| Slot | Launch sets | Examples |
|---|---|---|
| Boards | 6 | Walnut Classic (default) · Bosphorus Night · Damascus Mother-of-Pearl · Aegean Marble · Yerevan Felt · Ceylon Teak 🇱🇰 |
| Checkers | 5 | Cream & Umber (default) · Brass & Obsidian · Sea Glass · Ottoman Ceramic · Amber Resin |
| Dice | 5 | Ivory (default) · Bone Rustic · Smoked Glass · Lapis · Gold Leaf |
| SFX / ambience | 3 | Tea House (murmur + glasses) · Seaside Taverna · Silent Focus |
| Frames & titles | 8 | Profile flair earned via achievements (not sold) — "Mars Hunter", "Prime Architect" |
All board/checker/dice sets ship through the same equippable-cosmetic pipeline as Baloot's inventory system — atlas per theme, addressable bundles, one ThemeDef ScriptableObject each.
Dual currency, stake-loop coins, and ads that never touch the board. The economy borrows Baloot's proven structure and softens the social-casino edges the genre is hated for.
Earned: match stakes, daily bonus, gauntlet, missions, rewarded ads. Spent: table stakes (500 → 100k tiers) and coin-priced cosmetics. Sink = stake losses; source-sink tuned to a slow-rising balance for a break-even player.
IAP-primary, trickled via achievements (~30/month F2P). Spent: premium boards/dice, gauntlet retry, profile flair. Never required to play any mode.
| SKU | Price | Contents | Role |
|---|---|---|---|
| Coin Pouch | $0.99 | 5,000 🪙 | Entry conversion |
| Coin Chest | $4.99 | 30,000 🪙 (+10% bonus) | Anchor "most popular" |
| Coin Vault | $19.99 | 150,000 🪙 (+25%) | Whale tier |
| Gem Set / Trove | $1.99 / $9.99 | 40 ♦ / 260 ♦ | Cosmetic currency |
| Starter Bundle | $2.99 · once | 15,000 🪙 + 40 ♦ + Bosphorus board | D1–D3 conversion, 80% off framing |
| Remove Ads | $3.99 · once | No interstitials forever (rewarded stays) | The goodwill SKU — genre reviews prove demand |
| Royale Pass | $4.99/mo | No interstitials · unlimited blunder review · monthly exclusive board · +20% mission coins | Subscription, improver segment |
| Format | Placement | Caps & rules |
|---|---|---|
| Rewarded | 2× stake on win · +400 coins in Bazaar · gauntlet retry · daily bonus doubler | User-initiated only; 8/day soft cap |
| Interstitial | After result screen only | Max 1 per 3 matches, never before 3 min of session, never in Pass & Play, disabled first 5 sessions (onboarding grace) |
| Banner | None. | Banners on a board game read as cheap; the premium feel is the strategy |
Escalating 7-day coin calendar (day 7 = gem drop). Gauntlet: 3 AI matches, rising tier, lose = retry with gems/ad or wait for tomorrow. One appointment per day, ~10 minutes.
3 rotating dailies ("win with a Mars", "bear off 15 in under 6 turns", "play Fevga") + weekly meta-mission. Missions steer players into variants they haven't tried — cross-variant discovery is retention.
XP per match (win-weighted). Levels gate stake tables (prevents new players losing their balance at high stakes) and drip gems. 40 achievements at launch incl. variant mastery tracks with titles/frames.
Per-variant rating vs AI tiers and an error-rate graph over time. Improvement made visible is the strongest hook for the hobbyist segment — and it seeds matchmaking data for Phase 2 PvP.
Royale.Core — pure C# rules engine, AI, RNG (no UnityEngine)Royale.Game — presentation, input, VFXRoyale.Meta — economy, save, missions, shopRoyale.Services — ads, IAP, analytics wrappers
Core has 100% unit-test coverage target; it becomes the Nakama match handler later.
Boot (services init) → Home → Match (additive) — 3 scenes total. A GameStateMachine (plain C#) drives match flow: Idle → Roll → SelectChecker → MoveStaged → Confirm → CubeOffer? → TurnEnd → GameEnd.
URP 2D, one atlas per board theme via Addressables. Checkers = pooled sprites; movement via DOTween paths; dice = flipbook + squash tween. Target 60 fps on 2 GB Android; total install < 120 MB, base APK < 60 MB with themes on demand.
JSON save (profile, economy, settings, in-progress match snapshot) — encrypted, versioned migrations, atomic write. Mid-match kill/resume is a launch requirement, not a nice-to-have. Cloud save via play-services/GameCenter in v1.1.
AdMob Next Gen SDK (reuse Baloot migration work) · Unity IAP with server-less receipt validation at launch · Firebase Analytics + Crashlytics · Remote Config for economy tuning (stake tables, ad caps, mission rewards).
All match mutations flow through IMatchDriver — launch binds LocalAIDriver; Phase 2 adds NakamaDriver implementing the same interface with the server running Royale.Core authoritatively. UI code does not change.
| Milestone | Duration | Scope | Exit criteria |
|---|---|---|---|
| M1 · Engine | 3 wks | Rules engine all 6 variants, RNG + commit-reveal, full test suite | Fuzz + golden tests green; CLI plays legal full games |
| M2 · Playable | 3 wks | Match scene, input, board rendering, Tier 1–2 AI, Tavla + Classic | Full match on device, resume works |
| M3 · Product | 4 wks | Home/Bazaar/Codex, economy, missions, gauntlet, save, remaining variants + Tier 3–4 AI | Feature-complete build |
| M4 · Polish & soft launch | 3 wks | SFX/haptics/VFX, localization (en, tr, ar, el, ru), ads + IAP live, store assets | Soft launch: LK + TR + GR |
| v1.0 Global | 2 wks tuning | Remote-config economy tuning from soft-launch data | Crash-free ≥ 99.5%, D1 ≥ 32% |
| v1.1 | +4 wks | Mahbusa, cloud save, board theme drop #2, Ramadan/seasonal event system | — |
| v1.2 | +6 wks | Neural AI (Sentis), replay sharing, tournaments vs AI | — |
| Phase 2 | Q1 '27 | Nakama PvP, friend tables, chat, leagues — Baloot backend playbook | — |
Solo-dev calibrated: ~15 weeks to global v1.0. M1 is deliberately front-loaded — every later system stands on a provably correct engine.
D1 ≥ 32% · D7 ≥ 12% · D30 ≥ 5% (board-game genre benchmarks; heritage audience should over-perform D30)
≥ 3.5 matches/DAU · median session ≥ 7 min · gauntlet participation ≥ 35% of DAU
Rewarded engagement ≥ 30% DAU · payer conversion ≥ 1.5% by D30 · ARPDAU ≥ $0.035 blended at soft launch
| Risk | Severity | Mitigation |
|---|---|---|
| UA walls in TR/MENA (incumbent spend) | High | Organic-first: per-region ASO listings, variant keywords ("tavla", "طاولة", "τάβλι"), fairness as review-bait, creator seeding in TR backgammon YouTube |
| Variant rule disputes | Medium | Rules Codex cites sources; house-rule toggles (e.g., Nardi Koks on/off); community feedback channel in-app |
| AI feels "rigged" despite fair dice | Medium | Fairness ledger + roll histogram + publish AI-never-sees-future-rolls statement in Codex; separate RNG streams for player/AI |
| Scope creep on 6 variants | Medium | Descriptor-driven engine (M1 exit gate covers all six); Mahbusa already deferred to v1.1 |
| Ad revenue below plan due to caps | Low | Remote Config caps allow tuning without releases; Remove Ads + Pass offset; premium feel raises LTV ceiling |