Ders 2 – Bölüm 1
Game Maker’ı Tanımaya Devam
Tekrar merhaba! Bu derste kendi başına bir konu olan kaynak dosyası oluşturmayı, buradaki özellikleri öğreneceğiz. Bu ders 2 bölümdür ve bu bölümde Sprite, ses, arkaplan, yol, script, font ve zaman çizelgesi oluşturmanın üzerinde duracağız. Dersin 2. bölümünde ise geniş bir konu olan obje oluşturma ve oda oluşturmayı işleyeceğiz.
Create Sprite : Oyunda yer alacak olan bir görseli bu butona tıklayarak oluşturuyoruz.
İncelersek burada oyunumuza bir görsel aktarmak için önce Load Sprite butonuyla seçtiğimiz bir görseli Game Maker’a aktarıyoruz. “Name” kısmına görsele vereceğimiz ismi giriyoruz (Mesela ana_karakter, kursun)(İsimde Türkçe karakter ve boşluk kesinlikle kullanmayın.). Ardından dilersek Edit Sprite butonuyla görselimizi düzenleyebiliriz. Aşağıdaki Origin, girilen X ve Y koordinatlarını kullanarak sağdaki görselin olduğu yerde işaretlenen noktayı değiştirir. Peki bu ne işe yarar? Şöyle ki oyunumuzda haritalarımıza herhangi bir objeyi koyarken objenin Origin ile belirlediğimiz noktası merkez kabul edilir ve tıkladığımız yerde o
obje tam belirlediğimiz noktası tıkladığımız yerde olacak şekilde oluşturulur. Ayrıca “Create Instance” adında, sonradan göreceğimiz bir aksiyon vardır ve özelliği objenin Origin ile belirlenen noktasında bir obje oluşturmaktır. Bu mesela tabancalı bir adamın ateş edince silahından kurşun çıkması gibidir. Bu adamın Sprite’sinde Origin noktası bu yüzden silahın tam ucu olarak belirlenir ki kurşun adamın kafasından değil silahın ucundan çıksın :D. Modify Mask butonu ise çok önemli bir özellik olup görevi bir nesnenin temas edilen yüzeyini belirlemektir. Yani mesela bir ağaç resmimiz var, burada adamımız ağacın altına gelince yapraklarının altında gözükmeli ve ağacın gövdesine gelince de durmalı. İşte burada ağacın gövdesini Modify Mask ile elle belirliyoruz ve belirlenen yerin dışında kalan yerler temas edilmeyen, altından geçilebilen yerler oluyor, yani örnekteki yapraklar. Precise Collision Check ise Modify Mask ayarı yapılmadığı sürece siz tikini kaldırmadıkça seçili bir özelliktir ve görevi Sprite’nin kenarlarının algılanmasını maksimum yapmaktır. Yani çok karışık şekilli bir şey düşünün, bunun kenarlarının minimum hatayla algılanmasını sağlar, ama ona göre oyunun performansını olumsuz etkiler (Ama bu hız farkı genelde fark edilmez.). Ve son olarak Seperate Collision Masks seçeneği de, Sprite’miz hareketli bir animasyon ise her karesinin ayrı ayrı temas yüzeyinin hesaplanmasını sağlar.
Create Sound : Oyunda yer alacak olan herhangi bir ses dosyasını buradan oyuna aktaracağız.
Bakarsanız bu işlemin epey kolay olduğunu fark edeceksiniz. Öncelikle Load Sound ile bir ses dosyası yükleriz, ardından da “Kind” kısmından türünü seçeriz. En basit haliyle bu. Burada Name kısmına sesin ismini gireriz (Dilediğimiz ismi koyabiliriz yine.). Eğer ses kurşun sesi, bir oyunda elmas toplarken duyduğumuz ses gibi küçük bir sesse Normal Sound seçeneği seçilir. Eğer ses arkaplanda oynayacak bir müzikse Background Music seçeneği seçilir. Eğer ses “.mp3” formatında ise program otomatikman Use Multimedia Player seçeneğini işaretler, bunun anlamı sesi çalmak için bilgisayarımızda bir müzik çalar olmalıdır (Her bilgisayarda olan Windows Media Player vb.). Ancak “.mp3” sesleri büyük boyutlu olduğu için her zaman “.midi”,”.mid” formatlı küçük boyutlu ama uzun süren arkaplan müziklerini tavsiye ederim. Effects kısmında ise sesimize çeşitli efektler uygulayabiliriz, aynı anda birden çok efekt uygulamak mümkündür. Alttaki Volume ve Pan kısmından da ses dosyamızın sesini ayarlarız. Edit Sound seçeneği eğer harici bir ses düzenleme programını Game Maker’a tanıttıysanız onu açarak sesi düzenlemenizi sağlar. Preload seçeneğinin ise işaretli olmasını tavsiye ederim, sesin oyun yüklendiğinde hazırlanıp çalınmasını beklemesini sağlar. Ancak oyununuzun performansını düşürebilir.
Create Background : Oyunda yer alacak olan herhangi arkaplanı oluşturmaya yarar. (Oyunlarda genelde hareketsiz olan, ama durumdan duruma hareketli olan şekli değişmeyen resimlerdir.)
Burası Create Sprite ekranına çok benzer ve daha kolaydır. Load Background ile arkaplanda yer alacak olan resim yüklenir, Name kısmından bir isim verilir, Edit Background kısmından ise aynı Edit Sprite gibi Arkaplan düzenlenebilir. Burada karışık olan “Use as tile set” olup tiklediğiniz zaman karışık bir arayüz ortaya çıkar.
Burada amaç özellikle Tile Background olarak adlandırılan ve tek başına anlamsız olan arkaplanların parçalara ayrılmasıdır. Mesela Mario oyunundaki zeminin, bulutların, öldüren çiçeklerin çıktığı boruların hepsinin bir arada olduğu bir şey düşünün. Hepsi bir arada ve karmakarışık bir düzende dizilidir. Bunu yukarıdaki arkaplandan ne yazıkki anlayamazsınız ama internetten aradığınızda neyi kastettiğimi anlarsınız. Burada Tile (Izgara)’lere ayırdığımız arkaplan sonradan odaları yapmaya başlayınca işe yarar. Tile width ve tile height ızgaraların en ve boylarını ayarlar. Diğerlerini isterseniz deneyerek öğrenebilirsiniz, çok uzatmak iyi olmaz.
Create Path : Bir oyun düşünün, oyunda savaşçıyız ve bir kasabaya gelmişiz. İnsanlar oradan oraya ilerliyor ve biz görev almak için NPC’ler arıyoruz. Sonra bir sağlıkçının evine giriyoruz ve içeride bakıyoruz ki sağlıkçı masasının başında sağlı sollu gidip duruyor. Sonradan konuşunca anlıyoruz ki çok önemli bir eşyası çalınmış ve bu yüzden de kızgın olduğu için yerinde duramıyor. Sonra çıkıyoruz evden ve kasabadan ayrılıyoruz. Biraz geyik, domuz felan avlayalım diyoruz. Sonra görüyoruz ki yolumuzun üzerinde bir köprü var ve köprüde haydutlar uçtan uca gidip gelip nöbet tutuyorlar ve parasız kimseyi geçirmiyorlar. İşte bu kısa hikayede dikkatinizi çekmeye çalıştığım konu buradaki bizim haricimizdeki şahısların hareket etmesi. Bu hareket doktorda da, şehirdeki insanlarda da, haydutlarda da, hatta kasaba dışında göreceğimiz çeşitli avlarda da vardı. Peki bu insanlar nasıl sürekli hareket ediyorlar? Cevabı da başlıkta gizli. Bu işlemler için onlara Path oluşturuyoruz. Path onların izlediği güzergah ve biz de bu güzergahı elimizle oluşturuyoruz. Mesela doktor için aşağıdaki resimdeki gibi bir Path çiziyoruz…
Burada iki nokta var ve aralarında yatay bir çizgi var. İşte bu çizgi doktorun masanın başucunda izlediği yol. Doktor bu yolun bir ucundan diğer ucuna gittiğinde tekrar geri dönüyor ve bu yolu sürekli tekrarlıyor. Çünkü kızgın :D. Şehirdeki insanlar için de bu yolun çok daha karışığını düşünebilirsiniz. Haydutlar ise mesela ekranda dikey gözüken bir köprüde nöbet tutuyorlarsa bu iki noktanın yatay değil de dikey olduğunu düşünün. Bu kadar basit. Bu yolu da karelerin köşelerine Mouse ile tıklayarak oluşturuyoruz. Connection Kind kısmında Straight Lines kısmı düz yolu ifade edip koyacağımız her nokta arasında oluşacak çizgi dümdüz olacaktır. Ama eğer Smooth Curve ‘yi seçerseniz her nokta koyuşunuzda yol eğimlenecektir ve bu böyle devam edecektir. Closed tiki ise eğer 2’den çok nokta belirlerseniz en son noktayla ilk noktanın birleşmesini sağlar. Eğer tiki kaldırırsanız bu 2 nokta birleşmez. Eğer bir noktayı yanlışlıkla koyduysanız ona sağ tıklayarak hemen silebilirsiniz. Ya da bir noktanın yerini değiştirmek için ona sol tuşla basıp elinizi sol tuştan çekmeden oynatabilirsiniz. Eğer noktalarınızı köşelere koymak istemiyorsanız ALT tuşuna basılı tutarak nokta koyun. Eğer çok noktanız varsa ve belli 2 nokta arasına yeni bir nokta koymak istiyorsanız, yani koyacağınız noktanın son nokta ile bağlantılı olmamasını istiyorsanız o 2 noktadan birine SHIFT basılı iken sol tıklayın ve elinizi sol tuştan çekmeden mouse’yi oynatın. Böylece işlemi yapacaksınız. Path kısmı çok kolay olup uğraşması da çok zevklidir. Üzerinde bir miktar antreman yapın ve Connection Kind ‘i değiştirip Closed tikini kaldırın ve tekrar işaretleyin. Farkları gözlemleyin, böylece daha iyi kavrarsınız Path kısmını.
Create Script : GML (Game Maker Language) ile ilgili olup düzenli ve bir isme sahip olan kodlar oluşturmanızı sağlar. Ancak biz bu butona hiç takılmayacağız çünkü oyunlarımızda mümkün olduğunca az kod kullanacağız. Yeri geldiğinde olmazsa olmaz kodları öğreneceğiz. Bu yüzden bu konuya girmiyorum hiç.
Create Font : Çok basit olup oyunumuzda kullanacağımız yazılar için font ayarlamamızı sağlar. Bir oyun birden çok font’a sahip olabilir. Resmi inceleyelim.
İşlem çok basit. Önce Font kısmından bilgisayarımızda yüklü bir font’u seçiyoruz ve Name kısmından ona bir isim veriyoruz. Size kısmından fontun boyutunu, Bold ve Italic tiklemelerinden de fontun kalın ve italik olmasını ayarlıyoruz. Alttaki 4 seçenekten ise font’un neleri kapsayacağını (Normal, hepsi, rakamlar, harfler) belirliyoruz. Biz normali seçip OK’a tıklıyoruz. Ama mesela bu font sadece rakamlardan oluşacaksa, yani sadece oyundaki skor ve can sayımız için kullanılacaksa Digits’i seçerek oyun boyutundan yer kazanabilirsiniz.
Create Time Line : Zaman çizelgesi adında pek çok işlemi içinde barındıran vakitli işlemler toplulukları oluşturmaya yarar. Ancak biz kullanacak mıyız, ne yazık ki hayır. Çünkü bunlar genelde çok büyük projelerde kullanılırlar ve küçük oyunlarda kullanımlarına hiç gerek yoktur. Zaten ben de bunun nasıl kullanıldığını tam kavramış değilim :).
Bu dersin bu bölümü bu kadar. 2. bölümde daha da karışık şeyler öğreneceksiniz ama moralinizi sakın bozmayın, oyun yapmaya başlayınca aklınızdaki tüm sorular tek tek çözülecek ve programın ustası olup çıkacaksınız :). Ders 2 – Bölüm 2‘de görüşmek üzere!