Oyun Yapımı: Mobil Casual, Giydirme & Tarayıcı Oyunları

Fiyat aralığı: 1.000.000 – 2.150.000 ₺

(11 değerlendirme) 1510 görüntülenme

Oyunu bir yazılım ürünü gibi ele alıyorum: içerik hattı varlık taramasından üretiliyor, skor 0-100 aralığına normalize ediliyor, satın alma istemciye sorulmadan sunucuda platform imzasıyla doğrulanıyor. Çok dilli yayında RTL yerleşim ve seslendirme baştan hesaba katılıyor; çocuk kategorisinde satın alma kapısı ile reklam onayı ayrı mekanizmalar olarak kuruluyor.

HİZMET 6: Oyun Yapımı: Mobil Casual, Giydirme & Tarayıcı Oyunları

Bir oyunun maliyeti kod satırıyla değil, oynanabilir hâle gelene kadar biriken kararlarla belirlenir: kaç varyant çizilecek, skor neye göre verilecek, satın alma sunucuda mı doğrulanacak, çocuk kullanıcı varsa hangi ekran hangi kapının arkasında duracak. Bunların hiçbiri motor seçmekle çözülmez. Ben oyunu bir yazılım ürünü gibi ele alıyorum: içerik hattı, skor matematiği, sunucu doğrulaması ve yayın uyumu tek bir mühendislik problemi olarak kuruluyor.

Bu kalem tek fiyatla anlatılamıyor, bu yüzden aralık olarak veriliyor. Basit bir tarayıcı oyunu ile çok dilli, mağazada yayınlanan, satın alma doğrulaması ve çocuk uyumu gereken bir yapım arasında kat kat fark var. Aşağıdaki sayıların hepsi yayınlanmış kendi oyunumdan ve sitemde çalışan oyun hub'ından ölçüldü.

Yapım Hattı – Yüksek Seviye Akış

Tasarım
Döngü, ilerleme, başarısızlıksız mekanik
İçerik Hattı
Varyant üretimi, paketleme, normalize etme
İstemci
Sahne, animasyon, yerel-öncelikli kalıcılık
Sunucu
Skor, satın alma doğrulama, sıralama
Yayın
Mağaza uyumu, yaş sınıfı, ölçüm

Neden Bu Hizmet?

Casual oyun yapımında en sık görülen hata, işin görselden ibaret sanılmasıdır. Oysa oyunu ayakta tutan şey görünmeyen taraftır: varyantların elle sayılmadan üretilmesi, skorun tutarlı olması, satın almanın istemciye sorulmaması, ve mağazanın çocuk politikalarına uyulması. Bunlar sonradan eklenmez; sonradan eklenmeye çalışıldığında yeniden yazılır.

Geleneksel Yaklaşım Benim Yaklaşımım
Varyant sayıları koda elle yazılır Varlık taramasından üretilir; içerik büyüdükçe liste kendiliğinden güncellenir
Skor "hissiyata göre" ayarlanır Kategori başına puan tavanı kodda sabittir, 0-100 aralığına normalize edilir
Satın alma istemcinin beyanına göre verilir Fiş sunucuda platform imzasıyla doğrulanır, tekrar kullanılamaz
Yerelleştirme yayından sonra düşünülür Metin ad alanlarına bölünür; RTL ve seslendirme baştan hesaba katılır
Ekran taşmaları cihazda elle denenir Her ekran cihaz genişlikleri matrisinde otomatik açılır; yeni ekran testi kırar
Çocuk uyumu bir onay kutusudur Satın alma kapısı ile reklam onayı ayrı mekanizmalardır; ikisi karıştırılmaz

Mimari Yaklaşımım

1) İçerik Hattını Otomatikleştirmek

Giydirme oyununda içerik hızla büyür: her manken, her kategori, her renk varyantı çarpan etkisi yaratır. Bu sayılar koda elle yazılırsa ilk içerik güncellemesinde yanlışa döner. Bu yüzden varyant tabloları varlık taramasından üretilip koda gömülür — sayı bir insanın hatırladığı değil, diskteki dosyaların ölçüsüdür.

Sprite tarafı da normalize edilir: tek biçime çevrilmiş, paketlere bölünmüş bir kütüphane hem yükleme süresini hem de paket boyutunu öngörülebilir kılar.

2) Skoru Matematiğe Bağlamak

Bir kombin skoru "güzel göründü" ile verilemez; oyuncunun ilerlemeyi anlaması için kuralın tutarlı olması gerekir. Skorlama ayrı bir katmandır: serbest modda dört kategoriden, yarışma modunda tema uyumu eklenerek beş kategoriden puan toplanır ve sonuç 0-100 aralığına normalize edilir. Üzerine kademeli bir nadirlik çarpanı biner.

Bu ayrım önemli: iki modun kategori sayısı farklı olduğu için ham puanlar doğrudan karşılaştırılamaz. Normalizasyon olmadan yarışma sıralaması sessizce bozulur.

3) Satın Almayı Sunucuda Doğrulamak

İstemci "satın aldım" diyorsa bu bir beyandır. Doğrulama sunucuda, platformun kendi imzasıyla yapılır; doğrulanan işlem atomik bir kayıtla yazıldığı için aynı fiş ikinci kez ya da başka bir hesapta kullanılamaz.

Hata durumları ayrıştırılır: gerçekten geçersiz bir fiş ile yapılandırma hatası engellenir, geçici ağ ya da sunucu hatasında ise oyuncu mağdur edilmez. Bu ayrım yapılmazsa ya sahtekârlık geçer ya da parasını ödeyen oyuncu ürününü alamaz.

4) Yayın Uyumunu Baştan Kurmak

Çocuk kategorisinde yayın yapan bir oyunda satın alma ve reklam ayrı mekanizmalardır. Satın alma girişi, dışına dokunarak kapatılamayan bir ebeveyn doğrulamasının arkasındadır: rastgele üretilen bir toplama sorusu, yanlış cevapta yeni soru, geçen doğrulama kısa süre önbellekli.

Reklam tarafında ise koruma farklıdır: reklam bileşeni başlatılmadan önce onay akışı çalışır ve istekler çocuğa yönelik muamele bayrağıyla gönderilir. Bu ikisini aynı kapının arkasında sanmak, denetimde en sık düşülen hatadır.

Sağladığım Çözümler

Çözüm Alanı Ne Sağlıyorum?
Mobil casual yapım Flutter + Flame ile istemci, yerel-öncelikli kalıcılık, bulut senkronu
İçerik hattı Varlık taramasından varyant üretimi, paketleme, normalize edilmiş sprite kütüphanesi
Skor ve ilerleme Kategori bazlı puanlama, normalize sonuç, nadirlik çarpanı, sıralama
Sunucu tarafı Satın alma doğrulama, sıralama kovaları, tekrar kullanım koruması
Yerelleştirme Çok dilli metin, RTL yerleşim, dil başına seslendirme hattı
Tarayıcı oyunları Bağımlılıksız JavaScript, ağır hesabın Web Worker'a taşınması, üyeliksiz sıralama

Yayınlanmış Oyunumdan Ölçülen Sayılar

Aşağıdakiler teklif metni için üretilmiş tahminler değil; mağazada yayınlanmış kendi oyunumun ve sitemde çalışan oyun hub'ının kodundan ölçülmüş değerlerdir.

Bileşen Ölçü Ne Anlama Geliyor?
İstemci kod tabanı 395 dosya / 154.978 satır 79 servis ve 10 durum sınıfına bölünmüş; kalıcılık yerel-öncelikli, bulut senkronu ayrı katmanda
Gardırop içeriği 918 parça / 11 manken 14 kategoriye bölünmüş; 4 evcil hayvan paketi 193 parça daha ekliyor
Varlık kütüphanesi 14.081 sprite / 23 paket Renk varyantı sayıları elle yazılmıyor; taramadan üretilen 1.134 girdi koda gömülüyor
Skorlama motoru 15 dosya / 1.583 satır Serbest modda 4×25, yarışmada 5×20 puan; 0-100'e normalize, üstüne 5 kademeli nadirlik çarpanı
Sunucu tarafı 15 fonksiyon / 2.770 satır Satın alma platform imzasıyla doğrulanıyor; 629 satırlık doğrulayıcı, atomik kayıt tekrarı engelliyor
Yerelleştirme 51 dosya / 17 ad alanı Üç dil; anahtar sayıları 6.342 / 6.333 / 6.567 — Arapça dahil, RTL yerleşimiyle
Seslendirme 90 dosya / dil başına 30 22 rehberli tur ve 8 tepki hattı; her dil sabitlenmiş tek bir sese bağlı
Test ve cihaz matrisi 3.857 test / 420 dosya 43 ekranın tamamı 13 cihaz genişliğinde açılıyor; deftere girmemiş yeni ekran testi kırıyor
Tarayıcı oyunları 8 oyun / 6.950 satır Sıfır dış bağımlılık, motor yok; ağır hesap iki Web Worker'a taşındı

Fiyat Neden Aralık?

Bu kalemde tek bir rakam vermek dürüst olmazdı. Alt uç, tek dilli ve mağaza dışı bir yapımı; üst uç ise çok dilli, seslendirmeli, satın alma doğrulaması ve çocuk uyumu gereken bir mağaza yapımını karşılar. Aradaki farkı üreten kalemler şunlardır:

Kapsam Kalemi Maliyeti Neden Değiştirir?
Varyant sayısı Sanat maliyeti çarpan etkisiyle büyür; manken × kategori × renk doğrudan bütçeye yansır
Dil sayısı ve RTL Sağdan sola yerleşim bir çeviri işi değil, arayüz mühendisliğidir; her ekran yeniden doğrulanır
Seslendirme Dil başına replik üretimi, ses tutarlılığı ve dosya yönetimi ayrı bir hat gerektirir
Satın alma ve sunucu Platform imzası doğrulama, tekrar koruması ve hata ayrımı bağımsız bir bileşendir
Çocuk kategorisi uyumu Ebeveyn kapısı, reklam onayı ve mağaza politikası denetimi ek tasarım ve test yükü getirir

Kullandığım Teknolojiler

Flutter ve Flame, Dart, yerel-öncelikli kalıcılık ve bulut senkronu, sunucusuz fonksiyonlar, StoreKit ve Play Developer API ile satın alma doğrulama, ARB tabanlı yerelleştirme, nöral seslendirme hattı, bağımlılıksız JavaScript ve Web Worker, otomatik ekran taşma matrisi.

Bilerek Yapmadıklarım

Karar Gerekçe
Tarayıcı oyunlarında motor kullanılmaz Bu ölçekte motor, yükleme süresi ve bağımlılık yüzeyi getirir; karşılığında bir şey kazandırmaz
Sıralama için üyelik istenmez Kimlik yerel bir tanımlayıcıdır; toplanmayan veri sızmaz
Başarısızlık mekaniği kurulmaz Küçük yaş grubunda kaybetme döngüsü oyunu bırakma sebebidir; ilerleme cezasız tasarlanır
Reklam ile satın alma aynı kapıya bağlanmaz İkisi farklı mevzuata tabidir; tek kapı sanmak denetimde en sık düşülen hatadır

Proje Çıktıları

Teslimat Açıklama
Oynanabilir yapı Ana döngü, ilerleme ve kalıcılık çalışır hâlde; cihazda test edilebilir sürüm
İçerik hattı Varlık taramasından varyant üretimi; içerik büyüdüğünde elle bakım gerektirmez
Sunucu bileşeni Skor, sıralama ve satın alma doğrulama uçları; tekrar kullanım koruması
Yayın paketi Mağaza görselleri, yaş sınıflandırması, gizlilik formu ve politika uyum kontrolü
Test altyapısı Ekran taşma matrisi ve sunucu testleri; yeni ekran eklendiğinde kapsam kendiliğinden zorlanır

Kime Uygun?

Bir oyun fikrini mağazada yayınlanabilir bir ürüne çevirmek isteyen; mevcut oyununda skor tutarsızlığı ya da satın alma sahteciliği yaşayan; çok dilli yayına çıkmak isteyip RTL tarafında zorlanan; çocuk kategorisinde yayın yapacağı için politika uyumundan emin olması gereken; ya da sitesine gerçek oynanan hafif oyunlar eklemek isteyen ekipler için uygundur.

Neden Ben?

Yukarıdaki sayıların hepsi yayınlanmış kendi oyunumdan ölçüldü — varyant sayısı da, skor tavanları da, test sayısı da. Oyunu yalnız yazmadım; mağaza sürecinden, çocuk politikası denetiminden ve üç dilli yayından da geçirdim. Anlattığım her mekanizmanın çalışan bir karşılığı var.

Bunun bir yan faydası şu: hangi kararın maliyeti nereden çıkardığını tahminle değil, yaşayarak biliyorum. Fiyat aralığının alt ve üst ucunu ayıran kalemleri yukarıda tek tek yazmamın sebebi de bu.

Sonuç

Oyun yapımı görsel bir iş değil, kararların biriktiği bir mühendislik işidir. İçerik hattı otomatik değilse ilk güncellemede bozulur; skor normalize değilse sıralama sessizce yanlışlar; satın alma sunucuda doğrulanmıyorsa gelir sızar. Amaç oynanabilir bir yapı çıkarmak değil, büyüdüğünde ayakta kalan bir yapı çıkarmak.

Bu hizmeti puanlayın