AE
LVL 03

CivBlocks

Kültürel yapıların inşa edildiği mobil şehir kurma / puzzle oyunu. Google Play yayını için hazırlık sürüyor.

Rol
Oyun Programcısı
Motor
Unity · C#
Platform
Android
Ekip
4 kişi
Araç
AI destekli geliştirme (Claude Code)
Durum
Google Play yayın hazırlığı
01

Ne yaptım

Ekipte 2 programcı ve 2 modelleme/tasarım sorumlusu vardı. Aşağıdakiler benim yazdığım sistemler. Birleştirme (merge), kazanma/kaybetme koşulu, popülasyon ve level sistemi diğer programcının işi.

Sistem 01

Grid ve yerleştirme

Oyunun çekirdeği: yapıların grid üzerine yerleştirilmesi.

  • Tıklanan noktadan ışın atılıyor (Raycast) ve grid hücresi bulunuyor; hücre boşsa obje yerleştiriliyor.
  • Yerleştirmeden önce tahtanın durumu geri alma için kaydediliyor.
  • Sıradaki obje hazır tutuluyor; yerleştirilince DoTween ile büyüyerek beliriyor.
  • Yerleştirmeden sonra ekip arkadaşımın yazdığı birleştirme (merge) ve level kontrolü tetikleniyor.
GridRaycastSpawnDoTween
Sistem 02

Düzenleme araçları

Oyuncunun hata yapmaktan korkmadan deneyebilmesi için.

  • Undo (oyun modu): her yerleştirmeden önce tahtanın anlık görüntüsü kaydediliyor. Geri alınca tahta bu görüntüden yeniden kuruluyor ve kalan undo hakkı düşüyor.
  • Silgi (Creative Mode): silgi modunda tıklanan hücredeki obje siliniyor.
  • Çöp kutusu (Creative Mode): tüm tahtayı temizliyor.
UndoSnapshotStack
Sistem 03

Kayıt sistemi

İlerlemenin kaybolmaması.

  • İlerleme save.json dosyasına yazılıyor. SaveManager sahneye eklenmeden, oyun açılırken kendini oluşturuyor.
  • Yazma güvenli: önce geçici dosyaya yazılıyor, eski kayıt yedeğe kopyalanıyor. Yazarken oyun kapansa bile kayıt bozulmuyor.
  • Dosya bozuksa sırayla yedek ve geçici dosya deneniyor.
  • Sahne değişince, arka plana atılınca ve oyun kapanırken kaydediliyor.
  • Yarım kalan level hücre hücre (konum, obje, nüfus) geri yükleniyor; kayıt yoksa yeni level başlıyor.
JSONSave/LoadJsonUtility
Sistem 04

Creative Mode ve kamera

Serbest kurma modu ve görüş açısı.

  • Kamera hedefin etrafında 90° adımlarla dönüyor; LerpAngle ile yumuşak geçiş yapıyor.
  • Seçilen açı kayda yazılıyor; oyun açılınca animasyonsuz aynı açıda başlıyor.
  • Creative Mode yerleştirmesi oyun moduyla aynı mantığı kullanıyor, tek fark objeyi seçim çubuğundan alması. Tahta kaydedilip yükleniyor.
KameraLerpAngleCreative Mode
Sistem 05

Arayüz, achievement ve ses

Mobil oyunun dokunulan yüzü.

  • DoTween ile menü animasyonları: Play butonu nabız gibi atıyor, Play'e basınca butonlar kayıp dünya küçülüyor, ayarlar butonu 360° dönüyor.
  • Achievement sistemi arayüze bağlandı: bir obje tahtaya ilk kez konunca kayda "açıldı" diye yazılıyor.
  • Koleksiyon ekranı açılmış objeyi 3D model olarak, kilitli olanı kilit modeli ve "???" ile gösteriyor.
  • Ses sistemi.
UIDoTweenAchievement