XNA Game Studio’yu Nasıl Öğrenebilirsiniz?
16.Ekim.2008 Kategori: Oyun geliştirme Yazılım Geliştirme
Son zamanlarda neredeyse tüm boş zamanımı ayırdığım bir aktiviteye dönüştü benim için XNA Framework. Microsoft’un oyun geliştirme için sunduğu bu platformun ve bu platformu kullanarak oyun geliştirmenizi sağlayan XNA Game Studio aracının bir ön incelemesini şurada yapmıştım. Benim için oyun geliştirme her zaman üzerinde çalışmak istediğim bir alan olmuştur. Yazılım geliştirmeyi öğrendiğim yıllarda yaptığım kısa süren ve berbat grafikleri olan (çizimleri ben yapmıştım çünkü) bir platform oyunundan sonra bu işle hiç ilgilenememiştim. Türkiye’de bir sektörünün olmaması, oyun geliştirme işinin zor olması(vakit ayırmak için), geliştirme için bir ekip gerektirmesi ve zorunlu olarak başka işlere yönelmem gerekmesi gibi sebepler beni buna itmişti. Oysa bugün eskisi kadar zorlanmadan ve herşeyini kendim hazırlayarak oyun geliştirebileceğim bir platform var ve bu beni heyecanlandırıyor.
XNA Game Studio’nun iki versiyonu var : Express ve Professional. Express sürümü ücretsiz. Şu adresten 3.0 Beta’yı indirebilirsiniz. Yanlız bunu kurmanız için önce Visual Studio 2008′in (XNA Game Studio’nun 3.0 versiyonundan önceki sürümleri Visual Studio 2008 de çalışmıyor) sisteminizde kurulu olması gerekiyor.
Peki XNA ile oyun geliştirebilmek için nereden başlamamız lazım :
İlk olarak .Net platfomunu ve C# dilini öğrenmek gerekecektir. Bunun nasıl yapılabileceğini sanırım herkes biliyor. Eğer C# biliyorsak devam edelim,
Oyun geliştirme terminolojisine aşina olmamız lazım. Temel kavramlar ve bu kavramların çalışma presipleri çok önemli. Bu temel kavramlar içinde oyun motoru, fizik motoru gibi şeyler sayılabilir. Kısacası oyun geliştirmenin mantığını öğrenmek lazım.
Geliştireceğiniz oyunun özelliklerine göre değişik terminolojileride öğrenmeniz gerekir. Mesela 3D bir oyun geliştirirken; polygon, vertex, shadow, render vs gibi birçok matematiksel kavramı bilmeniz gereklidir. 2D oyunlarda bu kavramlar daha az olduğundan 2D oyunlarla işe başlamanızı öneririm.
Matematiksel konularda (özellikle 3D oyunlar için) kendinizi geliştirmenizi ya da unuttuklarınızı hatırlamanızı öneririm.
DirectX kütüphanesini öğrenebilirsiniz. Ben bir projede kullandığım için bu bilgim çok işe yaradı.
XNA ile oyun geliştirmeyi öğrenmeniz gerekir.
Son maddeyi biraz açarsak :
Xna Framework içerisinde bir oyun motoru barındırıyor (Aynı Managed DirectX gibi). Ama isterseniz kendi geliştirdiğiniz ya da üçüncü parti .Net destekli motorlarıda kullanabilirsiniz. Ben kendi motorunu kullanmanızı öneririm. Her istediğinizi fazlasıyla karşılıyor. Grafik motorları 2D oyunlarda her türlü nesneyi yükleyip onlar üzerinde çalışmanıza izin veriyor. 3D oyunlarda ise, 3D Studio Max, Maya veya (Microsoft tarafından satın alınıp bedava dağıtılmaya başlanan) SoftImage XSI gibi 3D modelleme yazılımlarıyla oluşturduğunuz modelleri yüklemenize izin veriyor. Ses olayları içinse her türlü ses düzenleme yazılımını kullanabilirsiniz (şurada başarılı açık kaynak kodlu yazılım Audacity’i bulabilirsiniz).
İlk etapta 2D projeler üzerinde çalışmanızı öneririm. Bunun sebebi, hem grafiksel işlemlerin nispeten kolay oluşu, hemde fizik kuralları, gölgelendirmeler, kaplamalar vs gibi ağır şeylerle çok fazla uğraşmanız gerekmemesi.
Şimdi altta vereceğim linklerden tutorial dünyasına dalabilirsiniz! Baştan söylemeliyim ki bütün adresler ingilizce. “Bir yazılım geliştirici zaten az çok ingilizce bilmelidir” önermesinden yola çıkarak bunun pek bir porblem yaratmayacağını düşünüyorum. Eğer ingilizceyi fazla bilmiyorsanız kodları çözerek ilerleyebilirsiniz.
http://creators.xna.com/ - XNA Game Studio kullanıcıları için microsoftun açtığı site. Buraya üye olup videoları izlemekle işe başlayabilirsiniz.
http://forums.xna.com/forums/ - XNA Creators Club’ın kullanıcı forumu.
http://msdn.microsoft.com/en-us/xna/default.aspx - Microsoft’un yüce referans kaynağı Msdn (Microsoft Developers Network) üzerindeki XNA Developer Center. Burası daha çok XNA Framework için. Buradaki How to Start kısmından temel bilgileri öğrenebilirsiniz.
http://www.ziggyware.com/readarticle.php?article_id=170 - Burada -tek bir sayfada!- eskilerin hatırlayacağı space impact oyunun bir klonunun baştan aşağıya geliştirilmesi anlatılıyor. İnanılmaz faydalı.
http://www.ziggyware.com/articles.php?cat_id=6 - Çok sayıda tutorial var. Kesinlikle incelenmeli.
http://www.afrigraph.org/content/xna-tutorials - Çok fazla tutorial içermemesine rağmen kaliteli bir içeriğe sahip.
http://xnaresources.com/ - StarDefence adlı bir oyunun geliştirme aşamaları anlatılmış.
http://www.xnadevelopment.com/alltutorials.shtml - Genellikle XNA Game Studio 3.0 (Beta) için tutoriallar var.
http://www.bluerosegames.com/xna101/ - XNA ile ilgili bir blog.
http://www.bluerosegames.com/brg/xna101.aspx - Çok yararlı tutoriallar var.
Bunların haricinde çok daha fazla kaynak vardır eminim. Benim bugüne kadar yararlandıklarım bunlar. Sizinde bildiğiniz kaynaklar varsa eklemekten çekinmeyin.
Not : Burada “tutorial” kelimesinin yerine aklıma türkçe bir karşılık gelmedi. En fazla klavuz olabilir belki ama onada pek ısınamadım. Bu konuda bana yardım ederseniz (özellikle Hasan Yılmaz) çok sevinirim.