ERGGalata
← Devlog
İstemci

Savaşı ayarlayan bir program yazıldı

Her denge denemesi kod değişikliği ve yeniden başlatma demekti. Sonunda oynarken ayar yapılan bir editör yazıldı.

Atölyenin tam görünümü: solda yetenek listesi, ortada denge paneli ve yetenek kitaplığı, sağda animasyon ve efekt ayarları. Hepsi oyun koşarken açık.
Atölyenin tam görünümü: solda yetenek listesi, ortada denge paneli ve yetenek kitaplığı, sağda animasyon ve efekt ayarları. Hepsi oyun koşarken açık.

Sorun

Bir yeteneğin hasarını, bekleme süresini ya da animasyon hızını denemek istediğinde şu döngü işliyordu.

Kodu aç, sayıyı değiştir, oyunu kapat, yeniden başlat, tuşa bas, bak.

Tek bir yetenek için bu döngü onlarca kez dönüyor. Altı alt sınıf ve yüzlerce yetenek varken bu yöntemle denge kurmak mümkün değil.

Asıl kayıp da zaman değil. Döngü uzadıkça deneme sayısı düşüyor ve “yeter, idare eder” noktasında bırakılıyor.

Ne yapıldı

Savaşın kendisini düzenleyen bir program yazıldı.

Oyun oynanırken aynı ekranda ayar yapılıyor. Editördeki veri ile oyunun kullandığı veri aynı; kaydete basmaya gerek yok, her değişiklik anında oyunda.

Denge tarafı: taban hasar, bedel, üretim, bekleme süresi, kullanım hakkı ve dolum süresi, döküm süresi, menzil, etki süresi, infaz eşiği, hedefleme biçimi. Zamana yayılan hasarın tik sayısı ve güçlendirmelerin süresi de burada.

Görsel taraf: animasyon seçimi (269 klip içinden), animasyon hızı, vuruş anının kaç saniyede geleceği, kanal yeteneklerinde kaç vuruş olacağı ve her vuruşun zamanı.

Efektler: yetenek başına birden çok efekt. Konumu, zamanı, süresi, kaybolma biçimi, açısı, boyu, rengi ayrı ayrı ayarlanıyor.

Mermi davranışları: hedefe düz gitme, yay çizme, hedefin etrafında dönme, karakterin etrafında dönme, bumerang gibi geri gelme. Uçuş hızı ve hızlanma da ayarlanabiliyor.

Bütün ayarlar dosyaya yazılıyor. Yani bu bir seferlik düzenek değil, kalıcı bir araç.

Kukla yetmiyor

Ayar yapmak için ortam da gerekiyordu. Boş bir alanda tek kuklaya vurmak yanıltıcı.

Bu yüzden bir sığınak zindanı yazıldı. Hazır sahne kullanılmadı; mekân kod tarafından üretiliyor.

Sığınak zindanının ana holü
Ana hol. Zemindeki turuncu halkalar ölçüm alanları: tek hedef, üç, beş ve sekiz hedef ayrı ayrı duruyor. Sol üstte kare süresi göstergesi. Tıkla: tam boyut.

Tek hedef hasarı ile alan hasarı ayrı ayrı ölçülüyor. Bir yetenek tek hedefte iyi görünüp kalabalıkta işe yaramaz olabiliyor; ikisi aynı yerde ölçülünce bu fark gizleniyor.

Kuklaların yanında gerçek düşman grupları da var. Geziyorlar, saldırıyorlar, karşılık veriyorlar. Dipteki odada büyük bir lider oyuncuyu savuruyor.

Yan odada bekleyen devriye grubu
Koridorun açıldığı yan odalardan biri. Devriye grubu kukla değil; görünce geliyor ve vuruyor. Tıkla: tam boyut.

Bir kural da buradan çıktı: birimler birbirini engellemiyor, yalnız zemin ve duvar engel. Kalabalık bir grupta sıkışmak, savaşın hissini bozan ilk şey.

Karanlık atmosfer de bilinçli. Efektler ancak bu zeminde doğru okunuyor.

Ölçüm

Yanına bir hasar ölçer kondu. Savaş sürerken küçük panelde pay yüzdeleri görünüyor.

Savaş sırasında hasar ölçer paneli
Sekiz hedefli alanda alan hasarı ölçümü. Sağdaki panelde saniyedeki hasar, toplam ve yeteneklerin payı anlık güncelleniyor. Tıkla: tam boyut.

Panelin altındaki Detaylar düğmesi büyük pencereyi açıyor. Sekmeler şöyle:

  • Hasar (damage done) — verilen hasar
  • Alınan Hasar (damage taken) — üstüne gelen hasar
  • İyileştirme (healing done) — verilen iyileştirme
  • Alınan İyileştirme (healing taken)
  • Bufflar (buff uptime) — güçlendirmelerin ne kadar süre açık kaldığı ve kaç kez tetiklendiği

Her sekmede yetenek başına toplam, vuruş sayısı, kritik oranı, en yüksek vuruş ve pay yüzdesi var.

Detaylar penceresi, hasar dökümü
Detaylar penceresi. Kritik oranı sütunu tek başına çok şey söylüyor: Savur %58 kritik alırken Çelik Fırtına %48'de kalıyor. Tıkla: tam boyut.

Savaş bitince sayaç duruyor ve o savaş arşivleniyor. Eski savaşlar listeden seçilip incelenebiliyor. Böylece “bu deneme öncekinden iyi miydi” sorusunun cevabı hisse değil, tabloya kalıyor.

Bir de kare süresi göstergesi var. Hedef makinede saniyede 137–144 kare ve kare başına 6–8 milisaniye. Kare bütçesinin yarısı boşta.

Sonuç

Ortaya çıkan şey bir ayar paneli değil, küçük bir tasarım programı.

Altta, aracın ilk gerçek çıktısı: Öfke’nin kalabalık rotasyonu.

Öfke rotasyonu, sığınak zindanında. Bu kayıttaki bütün sayılar, animasyon hızları ve efektler yukarıdaki panellerden ayarlandı — tek satır kod değiştirilmeden.

Asıl kazanç şu: denge artık tahmin değil. Bir sayı merak edildiğinde deneniyor, bakılıyor, beğenilmezse geri alınıyor.

Sırada Öfke’nin imza turu var. Yetenek yetenek animasyon, efekt ve vuruş hissi.