← Projeler

Oyun · 2026

Cradlecrown

Tarayıcıda çalışan gerçek zamanlı medeniyet strateji oyunu.


Cradlecrown, eski adıyla Age of Blocks, TypeScript ve Canvas ile geliştirdiğim bir strateji oyunu. Maça Sümer, Mısır, İndus, Shang veya Minos medeniyetlerinden biriyle başlanıyor. Her çağın sonunda üç aday arasından yeni bir medeniyet seçiliyor; mevcut ordu ve kazanılmış bonuslar sonraki çağa aktarılıyor.

Beş bölgede toplam 65 medeniyet bulunuyor ve her medeniyetin kendine ait özel birliği var.

Teknik Yapı

Oyunun istemcisi TypeScript ve HTML5 Canvas ile yazıldı; hazır bir oyun motoru kullanmıyorum.

Çevrimiçi maçlar Node.js ve Socket.IO sunucusu üzerinden çalışıyor. Tek oyunculu mod da aynı simülasyon kodunu tarayıcı üzerinde çalıştırıyor. Böylece iki mod için ayrı oyun kuralları tutmak gerekmiyor.

300 birliğin aynı anda bulunduğu test sahnesinde frame süresini yaklaşık 139 ms’den 30 ms’ye düşürdüm. Bunun için birlik çizimlerini her karede yeniden oluşturmak yerine pozları önbelleğe aldım.

Yayın

Oyun DigitalOcean üzerinde çalışıyor. Deployment script’i yeni kodu çekiyor, istemciyi ayrı bir dizinde derliyor, statik dosyaları değiştiriyor ve maç sunucusunu PM2 ile yeniden başlatıyor.

Bir sürümde ses dosyalarının build çıktısına girmediğini fark ettikten sonra, aynı durum tekrarlandığında build’i durduran bir kontrol ekledim.

Sürüm notlarını bu sitenin Günce bölümünde yayınlıyorum. Oyundaki haber bölümü de aynı yazıları kullanıyor.