16 Mart 2011 Çarşamba

Oyun Geliştirelim

Hmm.. İlk tam olarak ne zaman heveslendim "Oyun yapıcam!" diye hatırlamaya çalışayım. Ortaokuldan beri masaüstü oynanabilecek kutu oyunu ya da Flash oyunu yapmayı istiyordum ama galiba ilk somut adım 2005 yılında lisedeykendi. Daha yeni AGS'yi (Adventure Game Studio) ve beraberinde bu program kullanılarak yapılan macera oyunlarını keşfetmiştim. O zaman programın eski versiyonu vardı, kullanımı daha basit bir arayüzü vardı. Küçük bir macera oyunu yapmıştım, gizli bir anahtar bulup oyunu bitiren kapıyı açıyordunuz. (Daha sonra AGS hakkında da bir şeyler yazmak isterim, fena program değildir.) Yeni sürümünü deneyeyim dedim geçen yıllarda, bir yerde tıkanıp kaldım; programın kendine özgü bir programlama dili vardı, çok basit bir dil de olsa vardı işte. Programlama bilgim zayıf olduğundan orada kursağımda kalan hevesim ve ben başbaşaydık. Birkaç yıl oyun geliştirme konusuna uzak durduktan sonra bir memleket ziyareti sırasında en sevdiğim kitapçıda şu an kitaplığımda halen var olan Uğur Gelişken'in "10 Adımda Flash Oyun Programlama" kitabını buldum. Bilmiyorum belki bu şekilde başka birçok kitap vardır, belki de şansıma ilk seferde güzel bir kitap bulabilmişimdir ama bana çok yararı dokunan bir kitap oldu. Biraz kitabın içeriğinden ve bana yarayan taraflarından bahsedeyim.

10 Adımda Flash Oyun Programlama
Öncelikle kimse 10 adımda oyun yapabilmeyi falan beklemesin. Tabii ki kitabın içindeki kodları aynen programa geçirdiğinizde kitapta bahsedildiği gibi basit ama oynanabilen bir oyun elde edeceksiniz. Fakat yaptığınız oyunun nasıl çalıştığı hakkında bir fikriniz olabilmesi için programlamada belli bir geçmişiniz olması gerekiyor. Sonuçta amacımız başka bir oyunu kopya etmek değil, kendi özgün oyunumuzu geliştirmek. Yıllarca uğraşmış olmasa da kod diline az çok aşina olan birine verebileceği çok şey var kitabın. Oyunların işleyişindeki bazı mekanizmaları anlayabilmenizi sağlıyor.

Benim Flash Hikayem
Ortaokuldan beri Flash programıyla içli dışlı olduğum için ve geliştiricilerinin sürüm geçişlerinde köklü bir geliştirme yapmamaları sayesinde programın animasyon ve çizim kısmına zaten hakimdim. Flash'ın programlama dili AS'i (ActionScript) sadece basit komutlarıyla biliyordum. Bunlar da zaten animasyon için gerekli olan 'Play' 'Stop' 'onClick' gibisinden komutlardı. Hep bu konudaki bilgimi ilerletmek ve yaratıcılığımı oyun yolunda kullanmak istemiştim. Hatta bu kitaptan önce elimde Flash 5 ActionScript diye başka bir kitap vardı. Ama PHP ve C++ gibi dillerin kitapları -benim üzerimde- işe yaramadığı gibi AS'i de kitaptan öğrenememiştim. Yalnız en fazla üzerine eğildiğim PHP sayesinde kod okumayı az çok sökmüştüm. Zaten kitabı okumaya başladığımda kafamda ampullerin yanmasını sağlayan da oradan kalma birikimlerim oldu.

Örnek Verecek Olursak...
Programlama işleriyle zaten uğraşan muhtemelen mühendislik bölümünde okuyan arkadaşlar gülebilirler belki ama bu işle daha yeni haşır neşir olmaya başlamış arkadaşlara kod kullanmadan çok basit bir örnek vermek istiyorum. Kitaptaki ilk oyun örneğinde yazıldığı gibi diyelim ki kuş bakışı görünen bir karakter çizdiniz. Bunu nasıl yürüteceksiniz?
1. Öncelikle karakterin sembolünün içine basit bir yürüme animasyonu yerleştiriyoruz. Animasyonun sürekli oynamaması yani karakterin sürekli yerinde yürümemesi için koda hiçbir yön tuşuna basılmadığı halde bu sembolün durmasını söylüyoruz. Yani karakterimiz klavyeye dokunmadığınız sürece hareketsiz bir şekilde duruyor.
2. Daha sonra mesela sol yön tuşuna komut veriyoruz. Diyoruz ki diğer tuşlar (yukarı, aşağı, sağ) değil de sol tuşa basıldığı halde sembol 270 derece dönsün. Neden 270 derece? Çünkü karakterin başlangıçta yukarıya doğru baktığını düşünüyoruz ve sola bakabilmesi için onu saat yönünde 270 derece döndürüyoruz.
3. Daha sonra aynı komutun altına karakter sembolünün animasyonunun oynaması komutunu veriyoruz. Şimdi karakterimiz sola döndü ve hareket ediyor fakat yerinden kıpırdayabilmesi için biraz ivmeye ihtiyacı var.
4. Bunu da farklı bir kodla sol tuşun basılması halinde karakter sembolünün -x (-x, -y, +x, +y) koordinatında belirlediğimiz piksel hızında hareket etmesini söyleyerek sağlıyoruz. Ve sonunda sol tuşa bastığımızda ekranın soluna doğru yürüyen bir karakterimiz oluyor. Bence basit de olsa oyundaki sembolleri hareket ettirebilmek için geliştirilebilir temel bir kod.

İşte kitap bu şekil örneklerle dolu oynanabilir 4 basit oyun sunuyor. Geri kalanında ise Flash'la ilgili temel bilgiler var. Bunlar dışında oyunun sunumu için MDM Zinc 3.0 kullanımı ve genel olarak oyunlarla ilgili bilgiler de mevcut. Yanında da bahsettiğim 4 oyunun içinde ".fla" dosyalarının bulunduğu bir DVD var. Ben aldığımda fiyatı 24 TL idi ama şimdi ne kadardır bilemiyorum. Kesinlikle alınması gerekiyor diyemem yalnız emin olun adı kadar kötü bir kitap değil, birçok konuda aydınlanmamı sağladı diyebilirim.

Kitabın idefix Sayfası: 10 Adımda Flash Oyun Programlama

Hiç yorum yok:

Yorum Gönder