5

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 : 

  1. İ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,
  2. 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. 
  3. 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.
  4. Matematiksel konularda (özellikle 3D oyunlar için) kendinizi geliştirmenizi ya da unuttuklarınızı hatırlamanızı öneririm.
  5. DirectX kütüphanesini öğrenebilirsiniz. Ben bir projede kullandığım için bu bilgim çok işe yaradı. 
  6. 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.

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.

Bu yazı istenilen yerde istenilen şekilde yayınlanabilir (değişikliklerden yazının orjinalini yazan yazar kesinlikle sorumlu değildir). Sadece yazdığınız yazının altında veya üstünde orjinal yazıya link verirseniz sevinirim. Vermezsenizde sorun değil. İlginiz için teşekkürler.

Eğer girdiyi beğendiyseniz, başkalarıyla da paylaşın!
Tusul | Habberci | Haber.gen.tr | Oyyla | Bağcık | 100 Puan | Linkibol | Teknikim

5 Yorum

  1. Hasan Yılmaz diyor ki:

    Böyle biliÅŸim terimlerinde ilk baÅŸvurduÄŸum ve güvendiÄŸim kaynak Türkiye BiliÅŸim DerneÄŸi’nin hazırladığı sözlük. “tutorial” için önerileri “eÄŸitmen”.

    Tıpkı bir öğretmen gibi eğitici bilgi verdiğinden olsa gerek böyle bir karşılık bulunmuş. Unutmamak gerek ki bu yeni kelimeler benimsenerek, kullanılarak dilde yer ediyor.

  2. Kaan Arslan diyor ki:

    Burayı bilmiyordum. Dün yine aklıma gelmeyen bir kelimeyi (generic) arattım. Soysal olarak çevirmişler. Bence güzel bir karşılık.

    Teşekkürler

  3. Bulut PAradise diyor ki:

    Güzel yazı için teşekkürler. oGame, savasim.com gibi tarayıcı ile oynana oyunları bilirsiniz. Benzer bir şey yapmak istiyorum. Fakat tarayıcı kullnılmayacak. Yani bir site şeklinde değil. Bilgisayar programı olacak. Ancak Animasyon vb gibi teknikler olmayacak tabii.

    XNA bu iş için uygun mudur?

    XNA ile doom,nfs vb tarzı oyunlar mı yapılır sadece?

  4. Kaan Arslan diyor ki:

    Evet o tarz bir oyun içinde XNA Game Studio kullanabilirsin. Ama buna mecbur değilsin, çünkü grafik anlamında çok fazla bir yük olmadığından normal yollardan da (Mesela C#, Java vs) halledebilirsin işi. XNA Game Studio içerisinde grafik barındıran oyunlar için çok daha uygundur.

  5. video diyor ki:

    güzel çalışma olmuş teşekkürler.

Yorum Bırakın