Taramalı tüfekli bir oyun - #Devlog 2

Son blogdan bu yana 21 gün geçmiş! 21 gün!  Tabi bu süreçte mojitomu yudumlayıp yatımla Cayman adalarına gezmeye gitmedim.(gözler yaşlı)

Hemen araya sıkıştırayım; Önceki blogu okumadıysanız, şuradan bir göz atmak isteyebilirsiniz.

Özet

Yaklaşık 2 haftalık bir süreç boyunca düşmanların spawn olma sistemleri ile uğraşmak durumunda kaldım, son bir haftadır da diğer sistemleri rayına oturtmaya çalışıyorum. Ancak görünen o ki, düşman spawn sisteminde yaptığım bazı değişiklikler sistemi kararsız hale getirdi. Bu nedenle büyük ihtimalle bu sistemi önümüzdeki günlerde refactor edeceğim. 

 

2.Hafta (ilk blogun kaldığı yerden devam eder)

Oyunun tek mekaniği düşmanları yoketmek. Bunun için de düşmanların tamamen rastgele spawn olması çok mantıksız bir yoldu. Diğer bir yol da, genelde geliştiriciler tarafından tercih edilen "elle girme" yöntemi, hemen yanlış anlamayın, buradaki konsept nasıl bir düzenle spawn olacağının TEK TEK VE EL İLE EDİTÖRDEN yazılması. Bu noktada birçok değişken var.

  1. Düşmanların tipi
  2. Düşmanların sayısı(tek seferde kaç tane spawn olacak)
  3. Spawnlar arasında ne kadar bekleme olacak
  4. Waveler arasında ne kadar bekleme olacak
  5. İlerleyen dalgalarda(wavelerde) zorluğun dengeli bir şekilde artması

Özellikle son maddenin altını çizme sebebim, bunun genelde gamedesigner ve testerlar tarafından yapılan uzuun bir süreç olması, çünkü çok ince ayarlamalar ile(finetuning) tüm düşmanlar için ve tüm haritalar için bunun yapılması gerekiyor. Benim ise malum ne o kadar zamanım ne de param olmadığı için her programcının en hakiki dürtüsü olan otomatize etme isteğine uyarak otomatize etmem gerektiğine karar vermem ile sonuçlandı bu süreç.

Geçtiğimiz haftalarda bir paylaşım yaparak spawn algoritmamı paylaşmıştım, çalışma prensibini soran bir arkadaşımıza da bir video ile durumu açıklamıştım. Ancak burada da belirtip videoyu ekleyeyim.

Sistem Sinüs dalgası üzerine dağılım yaparak zorluk seviyelerinin her dalgada artmasını ve otomatik dengelenmesini sağlıyor. Bu sayede dengeli bir rastgelelik ile tüm spawn dalgaları ayarlanabiliyor.

Bu sistemi çözmem yaklaşık 1.5 hafta sürdü. Çünkü düzgün bir spawn algoritması yazmak için iteratif olarak birçok formülizasyon yapmalıydım.

Hafta 3(En azından yarısı)

Algoritmik bir süreç ve kodda birçok iterasyondan sonra

  • Pooling sistemi
  • Spawn algoritması
  • Düşman sürülerinin düzenini kontrol edebileceğiniz bir editör

yazıp çalışır hale getirdim. Sonuç ise gifte(~0MB) gördüğünüz gibi oldu.

Hafta 4

Bu hafta genel olarak, bir takım cilalamalar yapmaya harcandı.

  • Düşmanların öyle laps diye spawn olmaması için gökten düşme efekti ekledim.(Ki bu sistemi sapıttırdı, videonun sonlarında görünüyor)
  • Silahlara mermi limiti ekledim ve silah seviyelerini gösteren bir arayüz yaptım.
  • Sonunda oyuncuya sağlık ve can tamlanması sistemi ekledim.
  • Yeni dalga geldiğinde onu gösteren bir arayüz ve arka sistemlerini yaptım.
  • Ve biraz da, silah spawn sistemiyle uğraştım. Şu an onunla uğraşmaya devam ediyorum 🙂

Buraya kadar okuyup takip ettiğiniz için teşekkür ederim, Önümüzdeki haftalarda görüşmek üzere!

BeğenFavori PaylaşYorum yap
Tüm blog yazılarını gör