Game Maker’da Hata Ayıklamak – Debug Modunun Kullanımı

Yayınlandı: 16 Temmuz 2012 yasirkula tarafından Diğer Dersler, Game Maker, Oyun Tasarımı içinde

Merhaba,

Bu derste Game Maker’da çoğu kişinin adını duyduğu ancak pek az kişinin nasıl kullanıldığını çok iyi bildiği bir özelliği, Game Maker’ı Debug Modunda çalıştırmayı göreceğiz.

Dersi görmek için yazının devamını okuyabilirsiniz…

Debug Modu ne işe yarar? Bu mod genel anlamda; oyun sırasında, oyundaki herhangi bir değişkenin değerini anlık olarak takip etmeye, oyun sırasında dışarıdan GML kodları girerek oyuna normal modda yapamayacağımız şekilde dışarıdan müdahale edebilmeye yarar. Şimdi bunları ve bunların dışındaki tüm özelliklerini tek tek göreceğiz.

1. En önce pencerenin en altındaki şeyleri anlatayım. “30 fps” saniyede ekranın yenilenme sayısıdır ve siz “Room Speed”i değiştirmedikçe de bu değer standart olarak 30’dur. Bu değerin sık sık düşüp geri yükselmesi oyununuzun takılmaya meyilli olduğunu gösterir. İdeal bir donanım ve yazılım kombinasyonunda bu değer neredeyse hiç değişmez ve hep 30 olarak kalır.

Onun hemen sağındaki “0 inst” o anki odada bulunan toplam obje kopyalarının (Instance) sayısını belirtir. Belki işinize yarayabilir.

En sağda ise en önemli özellik duruyor: “mouse id:”. Oyun sırasında imlecinizi odadaki objelerin üzerinde dolandırdıkça burada yazan sayısal değerin sürekli değiştiğini görürsünüz. İşte bu değer mouse’nin üzerinde bulunduğu instance’nin kendi id’sidir.

ID nedir? ID oyunda yer alan her bir objenin her bir instance’sinde farklı bir değeri olan, yani her instance’de kendine has olan ve sırf o instance’yi ifade etmeye yarayan bir kimliktir. Peki ne yaparız bu ID’yi? Şöyle ki bu ID sayesinde tek bir belirli instance’nin istediğimiz değişkenlerini test edebilir, dilersek bu değişkenlerini değiştirebiliriz. Bunu “with(obje)” ile de yaparız diyenler olabilir. Ancak eğer o objenin odada birden fazla instance’si varsa o zaman “with(obje)” ifadesini kullandığımızda bizim özellikle değerini test etmek istediğimiz instance’nin değil de aynı objenin öteki instance’ler00inin değerlerini görebiliriz. Umarım az biraz anlaşılmıştır.

2. Gelelim kırmızı daireli kısma. Buradaki butonlar sayesinde oyunu duraklatabilir, eğer duraklatılmışsa bir step ilerletebilir (Normalde bir saniye 30 stepten oluşur.), oyunu devam ettirebilir, oyuna restart atabilir ya da oyuna son verebilirsiniz.

3. Burası Debug modunun en önemli 2 bileşeninden biri aslında. Buradaki yeşil “+” tuşu ile oyun sırasında değerini görmek, test etmek istediğiniz bir değişkenin adını girebilirsiniz. Adı girilen bir değişken alttaki sarı dairenin içindeki alanda değeriyle beraber gözükür. Ancak eğer değişkeni yanlış girdiyseniz değer kısmında “ERROR” yazar.

İşte burada ID kavramı da devreye girer. ID’sini bildiğiniz bir instance’nin (Mesela 1000456) bir değişkeninin değerini görmek için yazacağımız şey “(1000456).değişkenadı” (Tırnaklar yok ancak parantezler VAR!!) olur.

+” tuşunun sağındaki tuşları anlatmaya gerek yok aslında, ilki girilen değişkenin adını yanlış girmişsek onu düzeltmeye, ikincisi girilen değişkeni listeden atmaya, üçüncüsü de girilen tüm değişkenleri listeden atmaya yarar.

Burada önemli bir şey daha var: “Watch” sekmesindeki “Save …” ile listedeki tüm değişken isimlerini bir dosyaya kaydedebilir ve daha sonra onları tekrar yüklemek için “Load …” seçeneğini kullanabilirsiniz. Böylece oyunu her Debug modunda açışınızda değerini görmek istediğiniz tüm değişkenleri tekrar tek tek elle girmek zorunda kalmazsınız.

4. Ve son olarak gelelim “Tools” sekmesine. Bu da Debug modunun en önemli 2 bileşeninden ikincisi. Buradaki “Execute Code” ile herhangi bir tek satırlık GML kodunu oyun esnasında çalıştırabilirsiniz. Böylece örneğin oyun sırasında bir değişkenin değerine anlık müdahaleler edebilir, farklı değerlerin oyunun oynanışına nasıl etki ettiğini rahatça gözlemleyebilirsiniz.

Set Speed …” ile oyunun fps’sini değiştirebilirsiniz.

Show Global Variables” ile o an arkaplanda çalışan tüm global değişkenleri, “Show Local Variables” ile de ismini ya da id’sini girdiğiniz bir instance’nin yerel değişkenlerini görebilirsiniz.

Show Instances” ile mevcut odadaki tüm instanceleri; isimleri, spriteleri ve id’leri ile birlikte görebilirsiniz.

Show Messages” ise, oyunu kodlarken belli aşamalarda hata ayıklama için “show_debug_message(‘Mesaj’)” kodu ile yazdığınız (yazmışsanız) mesajları görüntülemeye yarar. Ayrıntılı anlatmama gerek yok çünkü çok gerekli bir şey değil kendisi, ben şimdiye kadar hiç kullanmadım en azından..

Böylece başka bir dersin daha sonuna geldik. Umarım faydalı olmuştur, sonraki derslerde görüşmek üzere!

Yorumlar kapalı.