Flash/Actionscript 3 oyun yapımı ile ilgili bir yazı dizisi hazırlama fikri, yıllardır aklımda olan bir şey. Ancak denemelerim genelde hep hüsranla sonuçlandı. Ya çok meşguldüm, ya yazıları okuyan bir kitle yoktu ya da başka bir sebepten hazırlamaya çalıştığım seriler hep yarım kaldı. Bu gün bu seriye başlarken biliyorum ki bu gerçekten çok geç kalmış bir yazı dizisi. Bir çok kişiye göre Flash’ın devri geçti, Flash artık öldü ya da çok yakında ölecek. Bunu tartışmaya gerek yok bence. Ben halen daha Flash ile oyun geliştiriyorum ve bu oyunlarıma alıcı bulabiliyorum. Bence oyunlarıma alıcı bulabildiğim sürece Flash yaşıyor demektir.

Ayrıca bu yazı dizisine başlamamın asıl sebeplerinden birisi de şu:

Adobe’nin Flash’ı yavaş yavaş terketmesi sonucu Flash’ın yenisi(bir nevi actionscript 4) olarak gösterilen Haxe/OpenFL ile tanışmam.  OpenFL’de kullanılan programlama dili Actionscript 3’e benzer şekilde geliştirilmiş bir dil. Yani iyi bir şekilde Actionscript 3 bilen birisi biraz çalışmayla OpenFL’de oyun/uygulama geliştirmeye başlayabilir. Haxe bir çok platforma native destek sunan bir dil. Bu noktada Flash tarzı virtual machine üzerinde çalışan dillere göre çok daha hızlı. Peki neden direk OpenFL öğrenmiyoruz sorusu geliyor akla doğal olarak. Haxe/OpenFL’nin en kötü yanı, bunlarla ilgili fazla kaynak olmaması. Haxe ile ilgili bildiğim kadarıyla basılmış bir adet kitap var. Oysa as3 ile ilgili yüzlerce kitap yazıldı, internette binlerce kaynak mevcut. Bu sebeple önce as3 öğrenip sonra OpenFL’ye geçmek daha mantıklı.

         

Seriye başlamadan önce bir kaç şeyden daha bahsetmek istiyorum, sonra vay efendim boşuna bize bu dili öğrettin falan demeyin:

1)Son yıllarda iyice yaygınlaşan game framework/game engine (oyun motorları) ile oyun yapmak eskiye göre oldukça kolaylaştı. Bir nevi oyun yapmak iyice ayağa düştü diyebiliriz. Önüne gelen bir kaç video izleyerek oyun yapar oldu. (Yanlış anlaşılmasın bu durumdan şikayetçi falan değilim. Bana göre başkalarının hakkını yemediği sürece isteyen istediği programla, istediği dille istediği oyunu geliştirebilir). Bu tarz son yıllarda yaygınlaşan oyun motorlarına bir kaç örnek verirsek; ilk akla gelen haliyle Unity oyun motoru. Bunun haricinde stencyl, construct 2, Game Maker gibi bir çok oyun motoru mevcut. Doğal olarak bu motorları kullanarak oyun yapmak sıfırdan oyun yazmaya göre çok daha kolay olacaktır.

Şimdiye kadar flixel ve flashpunk gibi oyun kütüphaneleri hariç herhangi bir hazır oyun motoru kullanmadım. Yani şu anki çıkarımlarım tamamen flixel ve flashpunk’taki tecrübelerimden, diğerleri için bir şey diyemem. Bu oyun motorlarını kullanırken oyununuza farklı özellikler eklemek istediğinizde bunun içinde kod yazmanız gerekecektir. Yani oyun motorunun size sunmadığı bir özellik (alışılmışın dışında bir şey de diyebiliriz) eklemek istediğinizde bunu kodlamanız gerekiyor ve bu yapmak istediğiniz değişiklik için kullandığınız oyun motorunu ve dilini iyi bir şekilde bilmeniz gerekiyor ki düzgün bir şekilde çalışsın yazdığınız kod. Bence bu normal kodlamaya göre daha zor olacaktır ve bu noktada oyun motoru sizi bir miktar sınırlandırabilir. Mesela Andorid için yapılan birbirinin benzeri bir çok oyunun olmasının sebeplerinden birisi de bu bence. Oyun motorunun sunduğu hazır şablonlarla ya da internetteki derslerle yapılan oyunlar birbirine benzer olacaktır. Farklı bir şeyler yapmak için iyi bir kodlama bilmek gerektiğini düşünüyorum. Benim aklımdaki fikirler genelde alışılmışın dışında olduğu için sıfırdan kodlamak bana daha uygun. Ama tabii oyun motorlarını da yavaş yavaş inceliyorum, belki onlarla da oyun geliştirmeye başlayabilirim, sonuçta diller ve programlar oyun yapımcı için birer alettir. Hangi iş için hangi dil, program daha iyi işlev görecekse onu kullanmak daha iyidir.

2)Bana göre oyun yapmayı öğrenmenin üç yolu vardır; bilen birisinden (beraber yaparak) öğrenmek, kitaplardan öğrenmek ve internetteki kaynaklardan öğrenmek. Bunların en iyi olanı haliyle iyi bilen birisinden yüz yüze(bir nevi özel ders gibi) öğrenmektir ancak bu çoğumuzun bulamayacağı bir imkan. İkinci en iyi yol kitaplardan öğrenmek, çünkü kitapları yazan kişiler genelde alanlarında otorite olan kişilerdir ve kitaptan öğrenilenler bilgisayar başında öğrenilenlere göre daha kalıcı olur. Bilgisayarda sürekli bir acele, konunun ilerisini göreyim, nasıl bir şey ortaya çıkacak gibi gereksiz bir acele var gibi geliyor bana(yani en azından bana olan bu). Benim tavsiyem as3’ün derinliklerine inmek istiyorsanız ve tabii yabancı diliniz iyiyse bir kitap temin edip oradan ilerlemeniz. Türkçe kitapları tavsiye edemiyorum, benim okuduklarım arasında bu kod ne işe yarar şu kod ne işe yarardan öteye geçebilen Flash’la ilgili yerli bir kitap yok. İşin mantığına inmek gerekiyor bence. Yabancı olarak bir çok kitap tavsiye edebilirim ancak ilk olarak Essential Actionscript 3.0‘ı öneririm. Dikkatlice okursanız bir çok şey öğrenebileceğiniz çok kaliteli bir kitap. Ben şahsen as3’ü kitaplardan öğrendim. Kitaptan değil de internetten öğrenmeyi tercih edenlerdenseniz, konuya gönül rahatlığı ile devam edebilirsiniz.

Bu uzun giriş kısmından sonra konumuza gelirsek, bu derste sadece gerekli programları indirip kurulumunu yapacağız. Kullanacağımız bütün programlar ücretsiz. İlk olarak kodlama yapacağımız editörü indireceğiz:

FLASHDEVELOP

Site adresi:  http://www.flashdevelop.org/

Download Linki: http://www.flashdevelop.org/community/viewtopic.php?f=11&t=11900 (Şu anki en güncel versiyonu, benim kullandığım 4.6.4 daha günceli varsa onu da indirebilirsiniz)

Zip versiyonunu değilde setup versiyonunu indirmeniz gerekiyor. Programı indirdikten sonra ayarları ile oynamadan varsayılan ayarları ile kuruyoruz. Programı ilk çalıştırdığımızda appman diye bir uygulama başlayacak. Buradan as3’ün altında yer alan 1. 2. ve 4. satırların yanına tik koyup aşağıdan install 3 items’a tıklıyoruz. Flash oyun geliştirmek için şimdilik bunlara ihtiyacımız olacak, ileride mobil için de uygulama geliştirmek istersek başka dosyaları da indirmemiz gerekebilir. Tam ne kadar olduğunu bilmiyorum ama yaklaşık olarak 400-500 mb civarı bir indirme gerçekleşecek. Bu indirmeler tamamlanınca editörümüz kodlama yapmaya hazır.

Grafikler için istediğiniz herhangi bir çizim programını kullanabilirsiniz. Bize tek gereken .png olarak çıktı alması. Tavsiye olarak Gimp, Inkscape ya da Paint.net tarzı ücretsiz programları önerebilirim. Özellikle benim gibi çizim konusunda çok iyi değilseniz Inkscape basit çizimlerde işinizi görecektir.

InkScape: https://inkscape.org/en/

Gimp: http://www.gimp.org/

YENİ YAZILARDAN HABERDAR OLMAK İÇİN TWITTER’DA TAKİP EDİN. @MAPACARTA