Oyun ekonomisi · Mağaza
Yıldız Mağazası ve 200 yıldızla Plus üyelik deneyimi
Oyunlardan kazanılan yıldızları 30 günlük Plus üyeliğe dönüştüren Yıldız Mağazası'nı nasıl devreye aldık, tüm mevcut oyunculara neden +200 yıldız tanımladık ve yakında gelecek zar, tahta ve ses paketleri için nasıl bir altyapı kurduk?

Toplanan yıldızların somut bir karşılığa dönüşmesi
Yıldız cüzdanını ve maç sonu ödül muhasebesini ilk devreye aldığımızda temel hedefimiz, her normal galibiyetin, marsın veya davetle tamamlanan oyunun değişmez bir cüzdan hareketine (ledger) dönüşmesiydi. Tier paketleri yazımızda da söz verdiğimiz gibi, oyuncularımız 200 yıldıza ulaşırken bu birikimi harcayabilecekleri mağaza katmanını yetiştirmek için çalışıyorduk.
Bugün Yıldız Mağazası (/store) devreye girdi. Artık tavla masasında kazandığınız yıldızlar yalnızca cüzdan ekranında biriken bir sayaç değil; doğrudan oyun kapasitenizi artıran ve yakında masa deneyiminizi kişiselleştirecek olan somut bir değere dönüşüyor.
Mevcut tüm oyunculara +200 yıldız: Plus üyeliği hemen test edin
Mağazanın ilk aktif ürünü, 200 yıldız karşılığında alınan 30 günlük Plus üyelik paketi. Ancak yeni açılan bir sistemi yalnızca uzun süredir yıldız biriktirenlerin değil, tavla.be'de yer alan herkesin ilk günden deneyimleyebilmesini istedik.
Bu yüzden sistemde kayıtlı mevcut tüm oyuncularımıza (ve masalarda bizimle zar atan humanoid profillere) cüzdan hareketlerinde açıkça görünen +200 yıldız mağaza açılış bonusu tanımladık. Cüzdanınızdaki bu yıldızlarla hemen Mağaza sayfasına gidip Plus üyeliği etkinleştirebilir ve 30 gün boyunca Plus ayrıcalıklarını test edebilirsiniz.
- Eşzamanlı aktif oyun limiti 5'ten 25'e, bekleyen meydan okuma kotası 5'ten 25'e çıkar.
- Arkadaş listesi kapasitesi 25'ten 250'ye yükselir ve aynı oyuncuyla eşzamanlı 2 oyun açılabilir.
- Açık oyuncu listesinde öne çıkmayı sağlayan durum (status) güncelleme bekleme süresi 4 saatten 30 dakikaya iner.
- Oyun içi hamle mesajlarında karakter sınırı 75'ten 150 karaktere genişler ve reklam gösterimi kapatılır.
Atomik cüzdan kesintisi ve üst üste eklenen (stackable) süre mimarisi
Bir oyuncunun yıldız harcayarak paket yükseltmesi, arka planda iki kritik verinin aynı anda ve hatasız güncellenmesini gerektirir: cüzdan bakiyesinden 200 yıldızın düşülmesi ve kullanıcı kaydındaki üyelik süresinin uzatılması. İki işlemden biri başarılı olup diğeri yarıda kalırsa kullanıcı yıldızını kaybedip paketi alamayabilir ya da yıldız düşmeden paket kazanabilir.
Bunu önlemek için satın alma akışını (purchasePlusWithStars) tek bir MongoDB transaction oturumu içinde çalıştırıyoruz. İşlem sırasında önce kullanıcının uygunluğu kontrol ediliyor (örneğin Pro veya System paketindeki bir hesabın yanlışlıkla yıldız harcaması engelleniyor), ardından applyWalletTransactionInSession ile bakiye koşullu olarak ($gte: 200) düşülüp tier_plus_monthly tipinde idempotent bir ledger kaydı oluşturuluyor.
Süre hesaplamasında ise mevcut süreyi sıfırlamayan, üst üste eklenen (stackable) bir model kurduk. Kullanıcı Free paketteyse yeni bitiş tarihi satın alma anından itibaren +30 gün olarak yazılıyor. Eğer kullanıcının hâlihazırda devam eden bir Plus süresi varsa (tierExpiresAt > now), yeni 30 gün mevcut bitiş tarihinin üzerine ekleniyor. Süre dolduğunda ise ayrı bir cron işine bağımlı kalmadan, getUserTier okuma katmanında çalışan tembel (lazy) doğrulama sayesinde hesap otomatik ve güvenli biçimde Free limitlerine geri dönüyor.
Sırada ne var: Zar, tavla tahtası ve ses paketleri
Mağazayı yalnızca üyelik limitlerini artıran bir ekran olarak tasarlamadık. Tavla, zarın sesinden pulların dizildiği tahtanın dokusuna kadar hissi çok güçlü bir oyun. Bu nedenle mağazanın ikinci fazında doğrudan oyun atmosferini kişiselleştiren kozmetik paketler yer alacak.
Yakında mağazada yıldızlarınızla açabileceğiniz özel zar görünümleri (farklı materyal ve renk temaları), tavla tahtası skinleri (klasik ahşap, gece ve retro masa tasarımları) ve özel ses paketleri (gerçek ahşap zar, taş vuruş ve oyun sonu efektleri) yerini alacak. Bu paketler şu anda hazırlık aşamasında ve mağaza arayüzünde 'Yakında' etiketiyle önizlenebiliyor; tamamlandıklarında her oyuncu kendi masa stilini yıldızlarıyla oluşturabilecek.
RE-PING
Bu yazıyı paylaş
Bağlantıyı kopyalayabilir veya kullandığın sosyal platformda yeniden paylaşabilirsin.
PONG
Pong sende
Yorum eklemek için bu yazının ilişkili Threads veya X gönderisine cevap ver.