Birlikte öğreniyoruz...

Merhaba arkadaşlar artık öğrendiğimiz bilgileri pekiştireceğimiz bir oyun yapmaya başlayalım diyorum. İlk proje olarak oynamaktan çok zevk aldığım Tower Defence oyunu yani Kule Savunma oyunu yapmaya çalışacağız. Şu ana kadar tüm dersleri takip etmiş olsanız bile yüksek ihtimalle ilk defa karışılacağımız şeyler olacak. Ama merak etmeyin bende sizinle aynı durumda olacağım yani ben öğrendikçe size aktarıyor olacağım.

Tabi ki asıl amacım sizden de öneriler, fikirler ve düzeltmeler alabilmek. Böylece ortaklaşa bir çalışma yürüterek bilgilerimizi geliştirebileceğimizi düşünüyorum. Eğer takıldığımız ya da takıldığınız bir yer olursa eğer yorum kısmını kullanarak cevap yazmaktan çekinmeyin. En kısa sürede dönüş yapmaya çalışacağım.

Tower Defence Oyunları
Tower Defence Oyunları

Tower Defanse oyun türünü bilmeyen arkadaşlar piyasaya hakim olan Kingdom Rush ve Bloons TD serilerine göz atabilirler. İki oyunda Steam ve mobil cihazlarda popüler oyunlar arasında. Ama oyunların kısa mantığı savunduğunuz bir yeriniz vardır ve sürekli olarak gelen düşman birliklerini kuracağınız kulelerle yok ederek, kalenizi korumaya çalışırsınız.

Oyunumuz için Youtube üzerinden eğitimler veren Brackeys’in Tower Defence eğitim serisi videolarını ve bu bağlantıda yer alan Udemy eğitimini kaynak alacağım. Ama merak etmeyin birebir aynılarını yapmayacağız kendi yorumlarımızı katarak farklı bir tarz çıkarmaya çalışacağız.

Oyun içinde yer alacak kule, düşman vb varlıkları Asset Store üzerinde ücretsiz olanlardan seçeceğiz. Fakat grafik tarafında tecrübeli olan arkadaşlar, ellerini taşın altına koyarak destek olmak isterlerse her zaman değerlendirmeye açık olacağız.

Tabi uzun soluklu bir çalışma yapacağımız için bölüm, bölüm ilerleme gerçekleştireceğiz. Bu sayfa hazırladığımız bölümlerin linkleri koyacağız. Bu sayede sonradan aramıza katılacak arkadaşlar içeriklere kolayca erişebilecekler ve bizim içinde güzel bir kaynak listesi olacak. Ayrıca güncellemeler bölümünde ise yaptığımız işleri ve eklediğimiz güncellemeleri adım adım ekliyor olacağız.

Aşağıda oyunumuzla ilgili belirli temelleri yazıyorum, eklemek istediğiniz bir şey varsa yazabilirsiniz.

  • Unity oyun motorunu kullanacağız. Ama ileride Unreal Engine dersleri başladığında farklı oyunlarda yapmaya çalışacağız.
  • Oyunumuzu 3D olarak hazırlayacağız. Kule savunma oyunları genellikle 2D olur fakat biz daha fazla yeni şey öğrenmek için 3D olarak yapacağız.
  • Ders için hazırlayacağım ekran görüntüleri ve videoları daha kolay aktarabilmem için Windows tarafı için oyunumuzu çıkaracağız.

Oyunumuzun Senaryosu

Bildiğiniz üzere tower defence oyunlarından dalga dalga düşmanlar gelmektedir. Her düşman dalgasında rakipler daha güçlü, daha hızlı ya da ek özellikler alarak belirli sürelerde ana kalenize gelmeye çalışırlar. Genellikle düşman dalgalarının takip ettikleri bir yol bulunulur ve bu yolun etrafında kule yaparak düşmanları öldürerek, ana kulemize gelmesini engelleriz.

Tabi biz bu yapıda bazı değişiklikler yaparak oyunumuzu farklılaştıracağız. Düşündüğüm özellikler aşağıdaki gibi olacak.

Düşman Dalgaları

  • Harita da düşman dalgalarının çıkacağı iki adet nokta olacak. Bu iki noktadan çıkan düşmanlar haritada yer alan iki adet bitiş noktasına gitmeye çalışacaklar.
  • Düşmanların çıkış ve bitiş noktaları için statik bir yapı oluşturacağız. Oyun başlamadan önce kolayca bu düzenlemeleri yapabileceğiz. Bu sistem için Unity Editor Scripting yapısını kullanacağız.
  • Oyunumuz başladığında düşmanlar için belirli bir yolu kullandırtmayacağız. Tüm sahnede en kısa sürede ana kalemize gidecekleri yolu AI yapısı bulacak. Bu yapı için AI Navigation yapısını kullanacağız.
  • Her seviye sonrasında düşman dalgalarının sağlık seviyeleri, hızlarını ve sayılarını belirli bir oranda arttıracağız.

Harita Yapısı

  • Harita da yer alan zemine tıklandığında kule kurma menüsü gelecek bu kısımdan kule ya da engel seçebileceğiz.
  • Düşmanları engellemek içinse sahnemizde yer alan her kareye engel ya da kale kurma özelliği ekleyeceğiz. Yani düşmanlar ilerlerken önlerine duvar koyarak farklı bir yoldan ilerlemesini sağlayabileceğiz. Böylece düşmanların kaleye gidişini daha dolambaçlı bir hale getirerek oyunu kazanmaya çalışacağız.
  • Harita da bazı alanları kule kurmaya ya da düşmanın geçmesini otomatik olarak engelleyeceğimiz bir sistem yapacağız.

Kule Yapısı

  • Belirli özelliklere sahip 3 adet kule tipimiz olacak. Örneğin uzun menzilli vuruş yapabilen ama yavaş ateş eden ya da kısa mesafeli ama birden fazla düşmana ateş edebilen kuleler gibi. Tabi oyundan kazanılan paralarla bu kulelere ekstra özellikler ekleteceğiz. Örneğin düşmanı yavaşlatma, bayıltma vs gibi. Bu kısım aslında oyuncuyu oyunda tutan kısım oluyor. O yüzden şimdilik kabaca geçiyorum ama bayağı bir emek harcayacağız.
  • Diğer Tower Defence oyunlarının aksine belirli bir dalga sayısından sonra oyuna bir şans mekanizması ekleyeceğiz. Örneğin belirli bir bölümü geçtikten sonra önceden belirlediğimiz birçok özellikten kullanıcının karşısına sadece rastgele şekilde 3 tanesini çıkartacağız ve seçeceği seçime göre kulelerini güçlendirebilecek.

Temel mantık bu şekilde olacak ama adettendir illaki ek özellikler aklımıza gelecek ve ekleyeceğiz. Tabi bu sonradan yapılan eklemeler her zaman daha zor olur ama bizim amacımızda, yaparken tecrübe kazanmak.

Oyun Yapma Derslerinin Bölümleri

Profesyonel bir proje planımız olmasa da aşağıdaki aşamaları takip ederek oyunumuzu tasarlayacağımızı söyleyebilirim. Hazırlanan konuların linklerini buradan paylaşacağım ve arada bölümlerde bazı değişiklikler olabilir. O yüzden bu kısmı takip etmeniz faydalı olacaktır.

Bölüm 1: Tower Defence Oyununda Sahne Tasarımı Yapıyoruz.

Bölüm 2: Düşman Yapay Zekasını Oluşturuyoruz

Bölüm 3: Kule Kurulum Sistemini Hazırlıyoruz

Bölüm 4: Kule Atış Sistemlerinin Oluşturulması ve Efektlerin Eklenmesi

Bölüm 5: Can Barı Yapımı, Vuruş Gücü Belirleme ve Splash Vurma

Bölüm 6: Karakter Animasyonları Ekleme ve Script ile Kontrol Etme

Bölüm 7: Can Barları, Bölüm Bilgileri, Menü gibi Ekranları Hazırlıyoruz.

Bölüm 8: Oyunun Menüsünü O Başlangıç, Bitiş ve Durdurma Menülerini Hazırlıyoruz.

Bölüm 9: Level Tasarımını Yapıyoruz.

Bölüm 10: Oyunun Nasıl Dışarıya Aktaracağımızı ve Yayınlayacağımızı İnceliyoruz.

Oyun Yapma Dersleri Güncellemeleri

  • 30.05.2021 – Bölüm 1 dersi yayınlandı.
  • 31.05.2021 – Bölüm 1 dersine haritada rastgele dağıtılacak olan engel sistemi eklendi.
  • 01.06.2021 – Bölüm 1 dersine düşmanların çıkacağı başlangıç noktaları eklendi ve haritada rastgele pozisyonda oluşturulması sağlandı.
  • 04.06.2021 – Bölüm 1 dersine haritada rastgele pozisyonlarda oluşan bitiş noktaları eklendi.
  • 13.06.2021 – Bölüm 2 dersi eklendi. Bu derste Unity Navigation yapısını kullanarak düşmanları otomatik hedeflere yönlendirmek için alt yapı hazırlıkları yapıldı.
  • 14.06.2021 – Bölüm 2 dersine düşman karakterlerinin hedeflerine gitmesi için navigasyon yapısı eklendi.
  • 03.07.2021 – Bölüm 3 dersi yayınlandı ve kurulum menüsü ile görünürlük sistemi eklendi.
  • 04.07.2021 – Bölüm 3 dersine, kule kurulumuna göre zeminde gerçekleşecek olan değişiklikler ve kurulan kulelerin düşmanların yolunu kapatmaması için yapılan geliştirmeler eklendi.
  • 11.07.2021 – Bölüm 4 dersi yayınlandı. Kulelerin vurma mesafeleri içerisine giren düşmanları tespit ederek, düşmana göre rotasyonunu ayarlaması yapıldı. Birinci kulenin mermi gönderme sistemleri ve hedefi vurduğu zaman ile ilk mermi çıkma anlarına efektler eklendi.
  • 18.09.2021 – Bölüm 4 dersi için ikinci kulenin atış sistemi ve efektleri eklendi.
  • 19.09.2021 – Bölüm 4 dersi için üçüncü kulenin atış sistemi, animasyonu ve efekti eklendi.
  • 21.09.2021 – Bölüm 5 dersinde can barı eklenmesi ve kulelerin düşmanlarının canlarını azaltması için sistem eklendi. Ek olarak mancınık kulesi için splash yani çoklu vurma özelliği eklendi.
  • 22.09.2021 – Bölüm 6 dersinde Unity karakter animasyonu ve animasyonları script üzerinden kontrol etme konuları eklendi.