QUBU GAMES
QUBU PAGE

Taht ve Kan — Asenkron Strateji Oyunu Vaka Çalışması

Taht ve Kan, iki oyuncunun aynı anda çevrimiçi olmasını gerektirmeyen, sıra tabanlı asenkron bir ortaçağ strateji oyunu. Tarayıcıda anında oynanır; Android’de yerel uygulama olarak çalışır.

Oyunu incele Android v1.8.1

Taht ve Kan bölge yönetim paneli ve strateji haritası
Gerçek bir yapay zekâ maçından strateji haritası ve bölge yönetimi.

Problem: derinlik ile zaman maliyeti arasındaki boşluk

Mobil strateji pazarında ağır MMO’lar derinlik sunuyor fakat günlük saatler ve aylarca bağlılık istiyor. Hafif tarayıcı oyunları hemen başlıyor fakat çoğu uzun vadeli karar derinliği üretmiyor. Taht ve Kan, günde birkaç dakikayla oynanabilen fakat gerçek stratejik sonuçlar üreten bir orta alan hedefliyor.

Çözüm: asenkron 1v1 düello

Oyuncu sırası geldiğinde bildirim alır, üç eylem puanını kullanır ve turu bitirir. Maç günlere yayılabilir; rakibin aynı anda ekran başında olması gerekmez. Tur süreleri 30 dakika, 2 saat veya 4 saat olarak seçilebilir. Süre dolduğunda sıra otomatik geçer ve maç kilitlenmez.

Oyuncu sorunu Ürün cevabı
Rakip bulamıyorum MMR tabanlı otomatik eşleştirme ve kuyruk boşsa yapay zekâ rakip.
Ne yapacağımı bilmiyorum Coach-mark kullanan interaktif ilk maç eğitimi ve senaryo zaferi.
Rakibim oynamıyor Tur zaman aşımı, otomatik sıra atlama ve terk edilen maçın yapay zekâ tarafından devralınması.
Bir hafta sonra sıkıldım Aylık sezon, ligler, günlük ve haftalık görevler, savaş bileti ve günün etkinliği.
Yalnız oynuyorum Loncalar, arkadaşlık, düello daveti, maç ve lonca sohbeti.
Ödeme yapan kazanıyor Elmasla satılan hiçbir öğe oyun gücüne dokunmaz; ekonomi yalnızca kozmetiktir.
Taht ve Kan oyun içi harita görünümü
Gerçek ürün ekranı: oyun içi harita.

Ürün sistemi

  • Harita: kare veya hex ızgara yerine araziyi takip eden 22 asimetrik bölge ve yumuşak sahiplik nüfuzları.
  • Ekonomi: altın, gıda, prestij ve nüfus; bölge geliri, vergi, açlık, sefer ve lojistik giderleri.
  • Ordu: mızraklı, kılıçlı, okçu, ağır süvari, muhafız ve mancınıktan oluşan altı birlik türü.
  • Savaş: birlik gücü, kale, teknoloji, general, şans ve 0,85×–1,35× etkili kuşatma mini-oyunu.
  • Derinlik: üç dallı dokuz kademelik teknoloji, casusluk, olaylar ve geri dönüş kartları.
  • Rekabet: ilk beş yerleştirme maçıyla Elo tabanlı MMR, Bronz’dan Efsane’ye ligler ve aylık sezon finali.
  • Sosyal: loncalar, arkadaşlar, sohbet, hanedan arması, profil ve şöhret salonu.
  • Yönetim: admin/mod/helper hiyerarşisi, süreli yasaklama, şikâyet kuyruğu, maç izleme ve toplu duyuru.

Neden farklı?

  1. Asenkron format: oyuncuların aynı anda çevrimiçi olma zorunluluğunu kaldırır.
  2. Adil monetizasyon: ödeme kalemleri yalnızca görseldir.
  3. Boş kuyruk yok: yapay zekâ rakip, düşük oyuncu sayısında bile ürün döngüsünü çalıştırır.
  4. İki gerçek istemci: web Next.js ile, Android Kotlin ve Jetpack Compose ile geliştirilmiştir; Android bir WebView sarmalayıcısı değildir.

Teknoloji yığını

Web istemci Next.js 15 App Router, TypeScript, Tailwind ve el yazımı UI kütüphanesi
Sunucu mantığı Next.js Server Actions; tüm doğrulama sunucuda
Veritabanı Supabase / PostgreSQL, RLS açık ve yalnız sunucu erişimi
Dağıtım Vercel, fra1 bölgesi
Bildirim Web Push, VAPID ve service worker
Android Kotlin, Jetpack Compose, yerel oyun motoru ve imzalı APK/AAB
E-posta Resend

Üretim ölçeği

~21.800TypeScript/TSX satırı
207web dosyası
~4.850Kotlin satırı
32Android dosyası
30veritabanı migration’ı
22asimetrik bölge

Öne çıkan mühendislik kararları

Coğrafya performansın bir parçasıdır

Veritabanı Frankfurt’tayken sunucu fonksiyonlarının başka kıtada çalışması her sorguya yaklaşık 90 ms ağ gecikmesi ekliyordu. Fonksiyonların fra1 bölgesine alınması ve hesap yüklemesinin yedi gidiş-dönüşten ikiye indirilmesi, kullanıcı tarafından hissedilen ağırlığın gerçek nedenini ortadan kaldırdı.

Migration ile dağıtım aynı ana bağlı değildir

Yeni sütun okuyan sorgular korumalı çalışır; sütun henüz yoksa varsayılan değer döner ve özellik sessizce kapalı kalır. Böylece kod migration’dan önce dağıtılsa bile oyun ayakta kalır.

Sunucu maliyeti aktif turla ölçeklenir

Biten maçlar ağır kayıtları yüklemez, sekme arka plandayken yoklama durur ve ağır harita bileşeni saniyelik sayaçtan ayrılmıştır. Maliyet kayıtlı oyuncu sayısından çok o anda oynanan tur sayısına bağlıdır.

Taht ve Kan mobil oyun haritası
Taht ve Kan’ın gerçek mobil oyun ekranı.