Oyun Geliştirme
Oyununu ve sistemlerini kur, aboneliklerle değil kendi malın olarak
Zorluklar
- Maliyeti yükselten, dolarla aylık abonelikli yabancı araç ve platformlara bağımlılık.
- Oyun içi yerel ödemeleri (mada, Apple Pay) çalıştırmanın ve e-faturaya bağlamanın zorluğu.
- Büyük bir ekip olmadan oyuncu topluluğu ve teknik destek kurmak.
- Net bir analiz paneli olmadan oyuncu davranışını izlemek ve onları elde tutmak.
- Yayın, güncelleme ve sezonluk içeriği elle yönetmek ekibin vaktini tüketiyor.
İnşa edebileceğin sistemler
- Stüdyo için iç kontrol paneli (oyunları, oyuncuları ve geliri yönettiğiniz ekran).
- Oyuncu hesaplarını, ilerlemeyi ve liderlik tablolarını saklamak için bir arka uç (API) ve veritabanı.
- Kayıt, satın alma ve destek için dışa dönük oyuncu portalı (site/mobil uygulama).
- mada/Apple Pay'e bağlı, ZATCA e-faturalı oyun içi mağaza sistemi.
- Destek ve bildirimler için WhatsApp otomasyonu ve oyuncu tutma kampanyaları.
- Oyuncu davranışı, kalma oranı ve harcama için analiz paneli.
Hazır istemler: kopyala ve Uttra'ya yapıştır
Stüdyo canlı operasyon paneli (LiveOps)
Bana bir oyun stüdyosu için, canlı içeriği, sezonluk etkinlikleri, özellik bayraklarını (Feature Flags) ve oyun dengesi ayarlarını yeniden yayına almadan yönettiğim bir iç canlı operasyon paneli (LiveOps) kur. Etkinlik tasarımcısını, topluluk yöneticisini ve veri analistini ayıran ince ayarlı bir rol ve yetki sistemi (RBAC) istiyorum; güvenli giriş, iki faktörlü doğrulama ve kimin neyi ne zaman değiştirdiğini gösteren, her değişiklik için bir denetim kaydıyla (audit log). Veritabanını iyi indeksle ve canlı oyun ayarları için bir önbellek (caching) katmanı ekle ki milyonlarca oyuncu bunları hızla okusun, toplu güncellemeleri ve zamanlanmış etkinlikleri itmek için görev kuyruklarıyla (queues) birlikte. Güvenliğe önem ver: veri şifreleme, istek hız sınırı (rate limiting), enjeksiyon ve CSRF saldırılarına karşı koruma ve otomatik düzenli yedekleme. Arayüz Türkçe olsun, İngilizce desteği ve tam erişilebilirlikle; sistemlerin sağlığını ve hataları gerçek zamanlı gösteren bir izleme paneli (observability) bulunsun. Kritik akışlar için testler ve ekibin çalıştırması için kısa bir dokümantasyon ekle; her şey üretime hazır olsun ve kod tamamen bana ait olsun.
Oyuncu portalı ve birleşik hesap
Bana stüdyonun tüm oyunlarını tek bir kimlikle birleştiren, birleşik hesaplı (Single Sign-On) dışa dönük bir oyuncu portalı (site + PWA) kur; oyuncu bir kez kaydolsun ve bütün oyunlara girsin. E-posta ve cep telefonu numarasıyla OTP doğrulamalı güvenli kayıt, iptal edilebilir dağıtık oturum yönetimi (token) ve sıradan oyuncuyu moderatörden ve destekten ayıran roller ile yetkiler istiyorum. Portal profili, başarımları, satın almaları ve destek taleplerini gösterir ve mada ile Apple Pay'i destekleyen yerel bir ödeme geçidine (Moyasar veya HyperPay) bağlanır; her işlemden sonra ZATCA'ya uygun bir e-fatura kesilir. Mimariyi yüksek yükleri kaldıracak biçimde tasarla: büyüdükçe bölümlenebilir indeksli bir veritabanı, profil sayfaları için önbellek, varlıklar ve görseller için içerik dağıtım ağı (CDN) ve bildirimler gibi ağır işlemler için kuyruklar. Güvenliği (parola şifreleme, rate limiting, yaygın saldırılara karşı koruma, yedekleme), performansı ve hızı gözet; arayüz Türkçe olsun, İngilizce desteği ve tam erişilebilirlikle, izleme ve kayıtlarla. Testler ve kısa dokümantasyonla üretime hazır yap; kod benim olsun.
Otomasyon ve elde tutma motoru
Bana oyuncuları veritabanındaki davranışlarına göre dinamik segmentlere (yeni oyuncu, ara veren oyuncu, büyük harcayan, ayrılmak üzere) ayıran ve WhatsApp, SMS ile oyun içi bildirimler üzerinden otomatik mesaj yolculukları çalıştıran bir oyuncu tutma otomasyon motoru kur. Tetikleyicileri, gecikmeleri ve koşulları belirleyen görsel bir yolculuk düzenleyicisi istiyorum; kampanya başlatmayı yetkililerle sınırlayan roller ve yetkiler ile güvenli girişle. WhatsApp'ı ve SMS'i sır deposundaki API anahtarlarıyla bağla; sistemleri boğmadan milyonlarca mesaj göndermek için görev zamanlaması ve kuyruklar (queues) kullan, oyuncu segmentleri için önbellek ve ağır sorgular için indekslenmiş bir veritabanıyla. Her yolculuğun kalma ve harcama üzerindeki etkisini ölçmek için A/B testleri ve sonuçları gösteren bir panel ekle. Güvenliği (şifreleme, rate limiting, kötüye kullanıma karşı koruma, yedekleme), performansı, İngilizce destekli ve erişilebilir Türkçe arayüzü ve ayrıntılı izleme ile kayıtları gözet. Kısa dokümantasyon ve testlerle üretime hazır yap; kod bana ait olsun.
Oyuncu yardımcı uygulaması (Companion)
Bana oyuncuların oyun dışında ilerlemelerini, liderlik tablolarını ve günlük görevlerini izledikleri ve etkinlik ile kampanya bildirimleri aldıkları bir mobil yardımcı uygulama (Expo) kur. Birleşik hesaba bağlı güvenli giriş, roller ve yetkiler ve Android ile iOS'ta akıcı, profesyonel bir kullanıcı deneyimi istiyorum. Uygulama oyuncunun profilini, başarımlarını ve satın alma geçmişini gösterir, mada ve Apple Pay ile ZATCA faturalı satın almaya izin verir ve destek talebi açar. Arka ucu milyonlarca oturumu kaldıracak şekilde tasarla: indeksli bir API, liderlik tabloları ve tekrarlanan veriler için önbellek, varlıklar için içerik dağıtım ağı (CDN) ve ağır sıralama güncellemeleri için kuyruklar; liderlik tabloları anlık güncellensin. Güvenliği (şifreleme, rate limiting, yaygın saldırılara karşı koruma, yedekleme), performans ve hızı, İngilizce destekli ve erişilebilir Türkçe arayüzü, izleme, analiz ve kayıtları gözet. Testler ve kısa dokümantasyonla üretime hazır yap; kod benim olsun, istediğimde dışa aktarayım.
Milyonlara ölçeklenebilir oyun arka ucu
Bana hesapları, ilerlemeyi, envanteri, liderlik tablolarını ve oyun içi ekonomiyi saklayan, baştan itibaren milyonlarca eşzamanlı oyuncuya ölçeklenmek üzere tasarlanmış bir oyun arka ucu (API) kur. Dağıtık bir mimari istiyorum: büyüdükçe bölümlenebilir (sharding/partitioning) indeksli bir veritabanı, okuma kopyaları (read replicas), oturumlar ve sıcak veriler için bir önbellek katmanı (Redis), sıralama hesabı ve ödül işleme gibi ağır işlemler için görev kuyrukları (queues) ve statik varlıklar için içerik dağıtım ağı (CDN). Yatay ölçeklenmek üzere bir yük dengeleyici arkasında durumsuz (stateless) API'ler tasarla; hile koruması (anti-cheat) ve olayların sunucuda doğrulanmasıyla. İnce ayarlı roller ve yetkiler, belirteçlerle (token) güvenli giriş ve tam güvenlik: şifreleme, katı istek hız sınırı (rate limiting), DDoS ve yaygın saldırılara karşı koruma, yedekleme ve felaket sonrası kurtarma. Metrikler, uyarı panoları ve dağıtık kayıtlarla kapsamlı izleme (observability) ekle, kapasite sınırlarını ve yük testlerini (load testing) belgele. Yönetilen arayüzler Türkçe olsun, İngilizce desteğiyle; üretime hazır ve kod tamamen bana ait.
Oyun Geliştirme hakkında sorular
Fikrinizi Uttra'ya kendi dilinizde anlatırsınız ve o size bir veritabanına bağlı iç kontrol paneli (her şeyi yönettiğiniz ekran) kurar. • Etkin oyuncu sayısını ve günlük geliri görürsünüz. • İçeriği ve sezonluk kampanyaları yönetirsiniz. • Her çalışana rolüne göre yetki verirsiniz. Ve kod sizindir; istediğiniz zaman dışa aktarır ya da GitHub'a bağlarsınız.
Uttra size oyuncu hesaplarını, oyundaki ilerlemelerini ve puanlarını sakladığınız bir veritabanıyla (SQLite ya da PostgreSQL) birlikte bir arka uç (API) kurar. Oyununuz bu API'ye bağlanıp giriş yapar, ilerlemeyi kaydeder ve liderlik tablosunu doğrudan gösterir. Her şey sizde ve size aittir; hazır bir hizmete abonelik ödemezsiniz.
Dışa dönük bir oyuncu portalını site, mobil uygulama (Expo) ya da PWA (tarayıcıdan çalışan uygulama) olarak kurabilirsiniz. • Oyuncunun kaydı ve girişi. • Profil ve satın alma sayfası. • Teknik destek talepleri. Hepsi aynı veritabanına ve iç kontrol paneline bağlı.
mada ve Apple Pay'i destekleyen yerel bir ödeme geçidini (Moyasar ya da HyperPay gibi), Uttra'nın sır deposuna koyduğunuz bir API anahtarıyla bağlarsınız. Her satın almadan sonra oyuncuya vergi idaresiyle uyumlu (ZATCA) bir e-fatura çıkar. Lisanslı işleri resmi hizmete kendi anahtarıyla bağlarsınız, akışı da Uttra düzenler.
WhatsApp'ı ve SMS'i sır deposundaki anahtarlarıyla bağlar, tekrarlayan otomasyon için görev zamanlamasını kullanırsınız. • Yeni oyuncuya otomatik karşılama. • Birkaç gündür oynamayan oyuncuya hatırlatma. • Sezonluk kampanyalar ve güncellemeler için bildirim. Bunların hepsi elle müdahale olmadan çalışır.
Uttra size verilerini doğrudan veritabanınızdan çeken bir analiz paneli kurar. Orada oyuncu kalma oranını (retention), en çok hangi bölümlerde bıraktıklarını ve oyuncu başına ortalama harcamayı görürsünüz. Oyun tasarımı ve kampanyalar için tahmin yerine net kararlar.
Hazır oyun araçlarının çoğu, oyuncu sayınız büyüdükçe büyüyen dolarlı aylık aboneliklerdir. Uttra ile sistemi bir kez kurar ve kodun sahibi olursunuz; abonelik kanaması durur ve maliyetinizi siz kontrol edersiniz. Konumlandırma basitçe: «kiralık teknolojiye elveda» — kiralamak yerine kurar ve sahip olursunuz.
Size hemen yarayan temelden başlayın: • Önce oyuncu hesapları, ilerleme ve liderlik tablosu için basit bir arka uç. • Sonra oyuncuları ve geliri izlediğiniz bir iç kontrol paneli. • Ardından mağaza ve ödeme, sonra otomasyon ve analiz. Her adımı kendi dilinizde anlatırsınız, Uttra kurar ve her şeyi sıfırdan yapmadan kademeli genişlersiniz.
Altın kural: istemciye (oyuncunun cihazındaki oyuna) asla güvenme, her şeyi sunucuda doğrula. Uttra size bunu pratikte uygulayan bir arka uç kurar: • Puanları ve ödülleri oyunda değil sunucuda hesaplar ve mantıksız her olayı reddeder (mümkün olandan yüksek puan, onaylı ödemesi olmayan satın alma). • Ürünü teslim etmeden önce ödemeleri doğrudan ödeme geçidiyle (Moyasar/HyperPay) doğrular, böylece satın alma sahteciliği olmaz. • İstek hız sınırı (rate limiting) koyar ve anormal örüntüleri tespit eder (saniyede yüzlerce istek gönderen bir oyuncu). • Bağlantıyı şifreler ve hassas olayları imzalar ki yolda değiştirilemesinler. Ve bunların hepsi sahibi olduğunuz ve geliştirdiğiniz koddur; kiralık bir hizmetin korumasına bel bağlamazsınız.
Zirveler, her isteği doğrudan alan tek bir veritabanı üzerine kurulu sistemleri kırar. Uttra dalgayı kaldıran bir mimari kurar: • Liderlik tabloları ve oyun ayarları gibi tekrarlanan veriler için önbellek (caching), böylece her istekte veritabanı yorulmaz. • Ağır işlemleri (sıralama hesabı, ödüller, bildirimler) alıp topluca çökmek yerine kademeli işleyen görev kuyrukları (queues). • Yatay ölçeklenen durumsuz servisler: baskı sırasında API'den daha çok kopya çalıştırır, sonra azaltırsınız. • Görselleri ve varlıkları oyuncuya en yakın noktadan sunan içerik dağıtım ağı (CDN). Ve çıkıştan önce yük testleri ekleriz ki kapasite sınırını çıkış gününde değil denemede öğrenelim.
Basit başlayın ama büyümeye açık bir tasarımla; henüz ihtiyacınız olmayan karmaşıklığı kurmayın. Uttra ile pratikte: • Başlangıçta iyi indekslenmiş tablolarla SQLite ya da PostgreSQL ilk binlerce oyuncu için fazlasıyla yeter. • Oyun mantığını veritabanından temiz bir API katmanıyla ayırırız, böylece sonraki yükseltme her şeyi yeniden yazmayı gerektirmez. • Büyüdükçe okuma kopyaları ve önbellekle PostgreSQL'e geçer, gerçek ihtiyaç doğduğunda devasa tabloları bölümleriz (partitioning). Fikir şu: şimdi temiz bir mimari, ihtiyaç belirince kademeli ölçeklenme — çünkü kod sizindir, hazır bir hizmetin sınırlarına mahkûm olmak yerine her adımı siz kontrol edersiniz.