QUBU GAMES
QUBU PAGE

Taht ve Kan — Asynchronous Strategy Game Case Study

Taht ve Kan is a turn-based asynchronous medieval strategy game that never requires both players to be online at the same time. It runs instantly in a browser and as a native Android application.

Explore the game Android v1.8.1

Taht ve Kan region management panel and strategy map
A real AI match showing the strategy map and region management panel.

The gap: strategy depth without a second job

Heavy mobile MMOs provide depth but often demand hours every day and months of commitment. Lightweight browser games start instantly but frequently fail to sustain meaningful decisions. Taht ve Kan targets the space between them: genuine strategic consequence in sessions measured in minutes.

The solution: asynchronous 1v1 turns

A player receives a notification when their turn begins, spends three action points and ends the turn. A match can unfold across several days; the opponent does not need to be present. Turn windows can be set to 30 minutes, two hours or four hours, and an expired turn advances automatically so a match cannot remain locked forever.

Player friction Product response
I cannot find an opponent MMR matchmaking plus an AI opponent when the queue is empty.
I do not know what to do An interactive first-match tutorial with coach marks and a scripted victory.
My opponent stopped playing Turn deadlines, automatic advancement and AI takeover for abandoned matches.
I lost interest after a week Monthly seasons, league divisions, daily and weekly objectives, a battle pass and rotating events.
I am playing alone Guilds, friends, duel invitations, match chat and guild chat.
Paying players win Nothing purchased with premium currency changes combat power; monetization is cosmetic only.
Taht ve Kan in-game map view
Real product screenshot from Taht ve Kan.

Product systems

  • World: 22 asymmetric regions that follow the terrain rather than a visible square or hex grid.
  • Economy: gold, food, prestige and population, with regional income, taxes, starvation, campaign and logistics costs.
  • Army: six unit types—spearmen, swordsmen, archers, heavy cavalry, guards and catapults—with counters and synergies.
  • Combat: unit power, fortification, technology, general bonuses, chance and a siege mini-game multiplier from 0.85× to 1.35×.
  • Depth: a three-branch, nine-tier technology tree, espionage, random events and comeback cards.
  • Competition: Elo-based MMR after five placement matches, Bronze-to-Legend divisions and monthly season finalization.
  • Social: guilds, friends, chat, dynasty crest creation, profiles and a hall of fame.
  • Operations: admin/mod/helper roles, reasoned timed bans, a report queue, match spectating and bulk announcements.

What makes it different?

  1. Asynchronous play: removes the requirement to coordinate online time.
  2. Fair monetization: every paid item is visual rather than a power upgrade.
  3. No empty queue: AI keeps the product loop alive while the community is still small.
  4. Two real clients: the web client uses Next.js; Android uses Kotlin and Jetpack Compose with a native game engine rather than a WebView wrapper.

Technology

Web client Next.js 15 App Router, TypeScript, Tailwind and a hand-built UI library
Server logic Next.js Server Actions with all validation performed server-side
Database Supabase / PostgreSQL with RLS enabled and server-only access
Deployment Vercel in the fra1 region
Notifications Web Push, VAPID and a service worker
Android Kotlin, Jetpack Compose, a native game engine and signed APK/AAB builds
Email Resend

Production scale

~21,800TypeScript/TSX lines
207web files
~4,850Kotlin lines
32Android files
30database migrations
22asymmetric regions

Engineering decisions that mattered

Geography is part of performance

The database was in Frankfurt while server functions initially ran across the Atlantic. Roughly 90 ms of network latency multiplied across sequential requests. Pinning functions to fra1 and reducing account loading from seven round trips to two removed the actual cause of the perceived slowness.

Deployment and migration are not one atomic event

Queries that read new columns are isolated and guarded. When a migration has not yet been applied, the feature remains quietly disabled instead of taking down the game.

Server cost follows active turns

Completed matches skip heavy records, polling stops in background tabs and the expensive map is separated from the one-second countdown component. Cost scales closer to active turns than registered accounts.

Taht ve Kan mobile game map
A real Taht ve Kan mobile gameplay screen.