WARDLIGHT
Karanlık bir zindandan tek bir ışık çizgisiyle kaçıyorsun. Fener alevleri canların.


- Proje
- Hallowmark
- Rolümüz
- Oyun tasarımı · Mimari · Unity geliştirme
- Süre
- Devam ediyor
01 / Projenin arkasında
Bir ihtiyaç. Düşünülmüş bir çözüm.
Zorluk
Bir seviye üreticisi önce kuralları uygulayıp sonra çözülebilirliği test ederse iki şey olur: adayların çoğu çöpe gider ve bazı çözülemez seviyeler testten kaçar. Müşteri (Hallowmark) bunun üstüne ölçülebilir bir garanti istiyordu: her bölümün çözülebilir olduğunun ve her oyuncuda aynı olduğunun kanıtı, ayrıca hangi seviyede oyuncunun takıldığını görebileceği bir analitik.
Yaklaşım
"Önce çözüm, kurallar sonra": üretici önce geçerli bir Hamilton yolu kurar, her mekaniği (oklar, duvarlar, kilitler, közler, yasak taşlar) o yoldan türetir. Böylece seviye yapı gereği çözülebilirdir. Tohum seviyenin kendisi: seed = (uint)(level * 2654435761). Prototipin üreticisi Node’a birebir çıkarıldı ve altın referans oldu; C# portu golden fixture’larla EditMode’da diff’leniyor.
Wardlight.Core katmanında hiç UnityEngine referansı yok, bunu asmdef zorunlu kılıyor. Reklam, satın alma, analitik ve bulut senkron arayüz arkasında; oyun editörde tek SDK olmadan çalışıyor. Bulut ve analitik için SDK yerine REST kullanıldı (IL2CPP güvenli), müşterinin sorusuna göre huni olayları eklendi: hangi seviyede uygulama arka plana atıldı, kaçıncı denemede yakalandı.
Sonuç
3200 seviye tarandı, 3200/3200 çözülebilir; aynı seviyeler iki kez üretildi, çıktı bayt bayt aynı. Raporlar depoda ve istendiği an yeniden koşuyor. 40/40 EditMode testi yeşil, 34 MB imzalanabilir Android sürüm paketi hazır. Ara teslimde müşteri sürükleme hissini onayladı; mühür efekti, Warden gerilim vinyeti, Merchant dükkânı ve ödüllü reklam yerleşimleri ikinci aşamada eklendi.
02 / Ürünün içinde
Ekran ekran, deneyim.
Detayları görmek için bir ekranı açın.03 görsel
03 / Kapsam & detaylar
Deneyimi oluşturan detaylar.
- 01
3200 level tarandı, hepsi yapı gereği çözülebilir
- 02
Tekrar üretimde bayt bayt aynı çıktı
- 03
Wardlight.Core katmanında sıfır UnityEngine bağımlılığı
- 04
Reklam, satın alma, analitik, bulut senkron: hepsi arayüz arkasında
- 05
Müşterinin sorusuna göre huni analitiği: hangi seviyede bırakıldı, kaçıncı denemede yakalandı
Teknoloji
- Motor
- Unity 6000.5
- Dil
- TR · EN
Seviye üretimi ve doğrulama
Deterministik üretim
seed = (uint)(level * 2654435761)3.200 taranan level
ÜRÜNÜN İÇİNDEN
Ekranın arkasındaki mühendislik.
Bu projede geliştirdiğimiz sistemler ve çözdüğümüz somut problemler.
Prototip = altın referans
oyna.html prototipinin üreticisi Node’a birebir çıkarıldı; tek değişiklik, searchHam’ın duvar saati sınırının kaldırılıp sabit işlem tavanına geçilmesi (determinizm düzeltmesi). Golden fixture’lar her mekanik eşiğinde; GenerationParityTests C# üreticisini bunlarla diff’liyor.
Bulut ve analitik SDK’sız
Firebase ve Supabase entegrasyonları UnityWebRequest ile REST üzerinden; IL2CPP güvenli, paket şişmiyor. Anonim kimlik, ilerleme yedeği, olay satırları ve GA4 Measurement Protocol aynı ICloudSync arayüzünün arkasında; boş anahtar sessizce çevrimdışı demek.
Bırakma noktası iki olaydan yakalanıyor
Arka plana geçiş hem OnApplicationPause hem OnApplicationFocus’tan dinleniyor, çünkü Run-In-Background açıkken HOME tuşu pause yerine focus üretiyor; olay tek kez loglanacak şekilde tekilleştiriliyor. level_fail_caught deneme sayısını taşıyor: müşterinin "nerede takıldı" sorusunun cevabı.
Sıradaki fikir sizin.
Sizin ürününüz için ne yapabiliriz?
İlk sürümden büyüyen platformlara; tasarım, geliştirme ve yayın sürecini birlikte planlayalım.
Türkiye’den Amerika, İngiltere, Avustralya ve dünyanın her yerine.