projeler
özet
Dotto, Unity ile geliştirilen mobil bir brick-breaker / ball shooter oyunudur. Oyuncu ekranın altından nişan alarak sahip olduğu topları art arda fırlatır. Toplar blokların canını azaltır; tüm toplar geri döndüğünde tur tamamlanır, yeni bir satır gelir ve zorluk yükselir. Bloklar kaybetme çizgisine ulaştığında run sona erer.
rolüm
Halil Köker ile birlikte geliştirdiğimiz projede; çekirdek oynanıştan kayıt ve revive akışına, jokerlerden mağaza, achievement, discovery, ses ve haptic sistemlerine kadar oyunun birbirine bağlı mobil sistemleri üzerinde çalıştım. Yönetici tabanlı mimari, veri odaklı içerikler ve üçüncü taraf servis entegrasyonlarının geliştirilmesine katkı sağladım.
temel oyun döngüsü
01
nişan al
Atış yönünü ekranın altından belirle.
02
topları fırlat
Sahip olduğun tüm topları art arda gönder.
03
blokları kır
Sekmelerle can değerlerini sıfıra indir.
04
turu tamamla
Tüm topların dönüşünü bekle veya reclaim kullan.
05
yeni satır
Seviyeyi ve giderek yükselen zorluğu karşıla.
oynanış sistemleri
blok çeşitliliği
özel bloklar
- Normal ve büyük bloklar
- Spike / Triangle
- Connected / Chain
- Clone / Medic
saha etkileşimi
collectible ve portallar
- Top sayısını artıran collectible
- Yatay ve dikey lazerler
- Coin ve rastgele etkiler
- Normal ve chaotic portal çiftleri
ustalık
combo ve perfect clear
- Ardışık vuruşları ödüllendiren combo akışı
- Tahtayı tamamen temizleme ödülü
- Her tur yükselen seviye ve zorluk
- Kaybetme çizgisine dayalı run sonu
tempo kontrolü
Reclaim / Fast-forward
- Reclaim ile aktif topları erkenden geri toplama
- İki kademeli simülasyon hızı
- Her kademe için ayrı sesli geri bildirim
joker sistemi
Jokerler belirli seviyelerde açılır, sınırlı kullanım hakkına sahiptir ve coin karşılığında yeniden alınabilir. Bir önceki run'da açılmış olmaları yeni run'da seviye koşulunu atlamaz.
Powerup 01
2X Damage
Bir sonraki atışın verdiği hasarı artırır.
Powerup 02
Block Destroyer
Oyuncunun seçtiği bir bloğu doğrudan yok eder.
Powerup 03
Taso Case / Cover
Run sırasında oyuncuya ek koruma sağlar.
arayüz davranışı
Powerup menüsü yalnızca oyun Idle durumundayken gösterilir. Atış başladığında yerini reclaim / fast-forward paneli alır; iki UI grubu yumuşak bir crossfade ile geçiş yapar. Revive sonrasında eski reclaim panelinin jokerlerle üst üste kalması da durum senkronizasyonuyla engellendi.
run ve ilerleme sistemleri
kalıcılık
kayıt ve continue
- Yarıda bırakılan run'a ana menüden devam etme
- Continue üzerinde kayıtlı son seviyeyi gösterme
- New Game ile eski kaydı temizleme
ikinci şans
Revive
- Reklam izleyerek veya coin ödeyerek devam etme
- Her kullanımda artan coin maliyeti
- Alt blok satırlarını temizleyerek güvenli dönüş
ekonomi
mağaza ve özelleştirme
- Coin ile satın alınabilen dot / top skinleri
- Tema, desen ve renkten oluşan frame sistemi
- Tema bazlı frame rengi sahipliği
- Ücretsiz varsayılan beyaz ve yetersiz coin geri bildirimi
- Unity IAP ile reklam kaldırma
koleksiyon
Achievement / Discovery
- Kademeli hedefler ve panelden alınan ödüller
- Yeni blok, collectible ve öğeleri kaydeden discovery sistemi
- Chain Breaker gibi mekanik odaklı başarımlar
- Ayrı animasyon ve seslere sahip bildirimler
- Dokunma veya yukarı kaydırmayla güvenli popup kapanışı
menüler, ses ve cihaz deneyimi
ana menü
oyun dışı akış
- Continue / New Game / Shop
- Achievements / Discoveries
- Settings / Info / About
- Google Play veya Remote Config tabanlı update bildirimi
- Android geri tuşuna iki kez basarak çıkış
geri bildirim
ses ve haptic
- Atış, vuruş, combo, perfect, fail, lazer ve portal sesleri
- Collectible, coin, yeni satır ve menü geri bildirimleri
- Reclaim ve iki fast-forward kademesine özel klipler
- Kaydedilen ses, müzik ve haptic tercihleri
teknik yapı
Proje Unity 6 ve C# ile geliştiriliyor; ana hedef platform Android. Oyun sistemleri sorumluluklarına ayrılmış manager sınıfları üzerinden haberleşiyor.
GameManager / SaveManager / AudioManager / PowerupManager / AdManager / AnalyticsManager
servisler
analytics ve gelir
- Firebase Analytics
- GameAnalytics
- Google Mobile Ads
- Unity IAP v5
- Remote Config
veri modeli
ScriptableObject
- Skin ve frame tanımları
- Achievement ve discovery verileri
- İçerik ile çalışma zamanı mantığının ayrılması
- Meta GUID'leri korunarak yapılan asset düzenlemeleri
uygulama detayları
Popup kapanış animasyonu sırasında tekrar dokunmanın bildirimi kilitlemesi, revive sonrasında eski UI durumunun taşınması ve frame renk sahipliğinin temalar arasında yanlış paylaşılması gibi durumlar; geçiş kilitleri, açık durum yönetimi ve tema bazlı veri anahtarlarıyla ele alındı. Sprite klasörleri yeniden düzenlenirken Unity meta GUID'leri korunarak mevcut referansların bozulması önlendi.
teknolojiler
- Unity 6
- C#
- Android
- Firebase Analytics
- GameAnalytics
- Google Mobile Ads
- Unity IAP v5
- ScriptableObject