Saturday, June 9, 2012

Knuckles Adventures - [Proje]

Herkese merhaba! Hazır yazın bol vaktim varken, bahsetmek istediğim diğer bir projede üniversite 3. sınıfta "SE 350" kodlu, "Oyun Programlama" dersinde Unity oyun motoru üzerinde C# programlama dili ve Standart Unity kütüphanelerini kullanarak bir arkadaşımla beraber yazdığım 2 boyutlu platform oyunu. Kısa ve klasik hikayemizdeki oyunun ana kahramanını hemen hemen hepiniz biliyorsunuz. Karakterimiz Knuckles. İşin bu kısmının tamamen farklı bir hikayesi var. Uygun bir vaktimde bu konuyuda sizinle paylaşmak istiyorum. Zira anlatacağım bazı şeyler disiplinler(branşlar) arası uyuşmazlığın projeyi götüreceği yer açısından önemi ile ilgili. Aslında oyunumuzun hikayesi çok farklıydı fakat kimi sebeplerden dolayı oyunun konusu ve akışı çok değişti bu yüzden oyunu çalıştırdığınızda oyunun ismini görmeyince şaşırmayın. Knuckles Adventures ismi ise şu an benim tarafımdan koyulmuş ismidir. Daha güzel isim önerilerine açık olduğumu belirterek oyunla ilgili ufak bilgiler vermeye devam ediyorum. Oyunumuzdaki temel amaç; ana karakterin türlü engeller içeren bölümleri geçerek kız arkadaşına ulaşması. Oyunda 5 farklı bölüm var. Her bölümde oyuncu engelleri aşarak hedefe ulaşmaya çalışıyor. Oyun içinde kullanıcı için arka planda bilgiledirici resimler de bulunmaktadır. Karakterimizi yön tuşları ile hareket ettiriyoruz. "Space" tuşu ile zıplayan karakter, herhangi bir kutunun yanına gelip "CTRL" tuşuna basınca kutuyu çekip, itebiliyor. Tekrar "CTRL" tuşuna basınca kutuyu bırakıyor. Oyunumuzda bir üst katlara geçmek için varolan asansörü çalıştırmak için ise, asansörün düğmesine "X" tuşu ile basmamız yeterli. Bu arada oyunumuzun mekanı olarak basit bir şantiye belirlemiştik. Ancak yaşanan bir takım sorunlar nedeniyle garip bir mekan ortaya çıktı. Bu oyun, diğer yaptığım oyunlara nazaran çok daha profesyonel ve görsellik açısından çok daha iyi. Oyun motoru kullanmak, yapacağımız işlerin gerçekten hafiflemesi anlamına geliyor. Bu noktada kodlamadan ziyade fikir ve tasarım ön plana çıkıyor. Oyun içinde kullandığımız sprite yukarıda da bahsettiğim gibi Knuckles karakteri, bunun dışında bazı ses dosyaları ve scriptler, bu oyunu(olurda) geliştirip ticari bir boyut kazandırmak isteyecek kişiler için sıkıntı yaratabilir. Bunun farkında olup paylaşacağım kaynak kodlarını ona göre yorumlarsalar herkes için daha iyi olur. Çok fazla uzatmadan oyunu resimler eşliğinde tanıtmak istiyorum.


Oyunu çalıştırdığımızda yukarıdaki gibi bir ekranla karşılaşıyoruz. Menümüz "Start Game", "Controller", "Credits" ve "Exit" butonlarını içermekte. "Controllers" butonuna tıkladığımızda aşağıdaki gibi bir ekran karşımıza çıkmaktadır. Yukarıda bahsettiğim gibi, bu menüde oyundaki karakteri nasıl yöneteceğimizi bildiren inputların listesi bulunmakta. Yön tuşları ile karakteri hareket ettirirken, "Space" tuşu ile zıplayıp, "CTRL" tuşu ile kutuyu tutuyoruz. Son tuş olarak "X" ile asansörün hareketini sağlıyoruz.



Yukarıdaki resimde ise oyunu geliştiren kişilerin isimlerinin çıktığı "Credits" menüsü var. Tüm bunlardan sonra "Start Game" diyip oyuna başlıyoruz. Oyunumuzun karakteri Knuckles'ın çizimlerini internetten bulup oyunumuza entegre ettik. Oyunda ilk etapta bahsedeceğimiz diğer şey ise arkaplanda bulunan bilgilendirici resimler. Mesela aşağıdaki resimde oyuncuya, herhangi bir kutunun yanına gidip "CTRL" tuşuna basarsa kutuyla etkileşime gireceğini ifade eden bir resim bulunmakta.




Yukarıdaki resimde ise kutuyu hareket ettirip, asansörün üzerine zıplayan karakterin asansörün düğmesine "X" ile basması gerektiğini gösteriyor.


Harekete geçen asansör bir üst kata çıkıyor. Bir üst katta da kullanıcı yine kutular ile etkileşime girerek odadan dışarıya, bir diğer asansöre ilerliyor.




Yukarıdaki resimde ise oyuncumuz düşen platformlar üzerinden karşıya zıplayarak geçmeye çalışıyor. Karşıya geçen kahramanımızı ise şimdiki bölümde pistonlar karşılıyor. Bu pistonlara değmeden sağ sağlim karşı tarafa geçmesi gerek.




Pistonlarıda geçen kahramanımız, oyunumuzun son bölümü olan ateş toplarından kaçarak, kız arkadaşına ulaşmaya çalışıyor. Eğer bu bölümü de geçersek oyunu bitirmiş oluyoruz. Karşımıza bizi tebrik eden bir ekran çıkıyor. Oyunda son derece önemli olan ve benim yukarıda bahsetmediğim bir şey daha var. Her bölümün başlangıcında birer "Checkpoint" bulunmakta. oyuncu ileriki aşamalarda öldüğü zaman en son aldığı "Checkpoint"ten doğmaktadır. "Checkpoint"ler beyaz parçacıklar şeklinde havada olan taneciklerdir.



Oyun genel hatları ile bu kadar. İlgilenenler projeyi daha da geliştirebilirler. Mesela ekstra bölümler eklenebilir. Yahut varolan bölümler daha ilgi çekici hale getirilebilir. İlgilenenler kaynak kodu buradan indirebilir. Proje UNITY 3.4.2 oyun motoru ile C# programlama dili ve Standart Unity kütüphaneleri kullanılarak yazıldı. Ben en son Windows XP üzerinde derleyip sorunsuz bir şekilde çalıştırdım. Sizde projeyi kendi bilgisayarınızda derleyip çalıştırabilirsiniz. Ya da şu adresten indireceğiniz dosyaları .rar'dan çıkarıp, index.html üzerinde oyunu oynayabilirsiniz. Oyunu canlı denemek isteyenler ise buradaki linkten oyunu oynayabilirler. Herkese iyi günler.

No comments:

Post a Comment