2
XNA Framework ve XNA Game Studio : Oyun Geliştirme Platformu
9.Ekim.2008 Kategori: Oyun geliştirme Yazılım Geliştirme
Geçen gün arkadaşımın gönderdiği, Microsoft’un Game Developers Conference da gerçekleştirdiği XNA sunumunun videosunu izledim (kendileri yazının en altında). Microsoft’un öne çıkartmaya çalıştığı konsepti, eski bir oyuncu ve zamanında (gerçekten zamanında!) oyun programlamasıyla uğraşmış birisi olarak takdir etmekten başka birşey yapamıyorum.
Şu konuda anlaşalım, dünya’da yazılabilecek en kapsamlı ve zor yazılımlar kesinlikle ticari oyunlardır. Bir oyunu geliştirmek için, sanatçılar, yazarlar, programcılar, tasarımcılar falan derken birsürü insan yıllarca uğraşıyor. Peki eskiden durum nasıldı?
Eski zamanlarda (Amiga, Commodore veya Pc’nin ilk zamanları) insanlar oyunları genellikle garajlarında tek başlarına yazarlardı. O oyunlar özellikle muhteşem olurdu çünkü piyasa kaygısı, popülerlik falan gibi şeyleri aşıp sadece bir kişinin yapmak istediği bir iş olduğu için yazılırdı. Zaten hangi eski oyuncuya sorsanız size : “eski oyunların havası yok şimdiki oyunlarda be abi” diyecektir. Günümüzde ise, oyun geliştirmek gerçek bir sektör. İşin içine para girdiği için herşey çok daha kontrollü yapılıyor. Peki oyun oynamanın ve oyun geliştirmenin asıl amacı ve gerçek ortak noktası nedir? Evet, bildiniz : eğlence…
Oyun geliştirmek gerçekten çok zor bir iş. Bunun matematiksel bilgisi var, yaratıcılığı var, kütüphane bilgisi var, programcılık bilgisi var, donanım bilgisi var, tasarım bilgisi var, yazılım mühendisliği bilgisi var, varda var. Peki herşey eskisi gibi olsa neler olurdu? Yani tek başınıza ya da ufak takımlarla hemde multiplatform oyunlar geliştirebilseydiniz neler olurdu?
Microsoft (yılını tam hatırlamıyorum) ilk önce İnsanların bellek yönetimi gibi konularla uğraşmadan oyun geliştirmesi için Managed DirectX’i geliştirdi. Ama sonra beceremeyip (evet resmen beceremeyip) .Net Framework 2.0′la beraber geliştirmeyi bıraktı. Bunun yerini tamamen yeni bir yapı aldı: Microsoft XNA Framework.
XNA Microsoft için aslında birden fazla şeyi temsil ediyor. İlk olarak, kendi platformları arasında ortak bir alan. XNA Framework kullanarak Windows için geliştirdiğiniz bir oyun aynen XBOX üzerinde de çalışıyor. Yani uzun port(uyarlama) süreleri yok. Birçok oyun geliştirici firma (video’da görüldüğü üzere gerçekten büyük olanlar) bu konsepte destek veriyor. Diğer taraftan, hazır olarak sunduğu birçok sınıfla (arka tarafta DirectX kullanarak tabii) işlemleri oldukça hızlandırıyor.
Bu işin ilk basamağı. İkinci ve benim çok daha ilgimi çeken kısım ise, amatörler için oyun programlaması için sunulan XNA Game Studio. Şu anda 3.0 Beta versiyonu bulunan yazılım ile direkt oyun geliştirme olayına dalabiliyorsunuz. Microsoft sunumunda, bunun oyun geliştirmeye yeni başlayan kişiler için, kendilerini gösterebilecekleri oyunlar hazırlayabilecekleri bir platfom olduğundan bahsediyor. Örnek olarak verdikleri DishWasher adlı bir oyunu James Silva adında bir genç 4 ayda yazmış ve oyun çok güzel duruyor. Video’da James Silva’nın oyunun, product tester’i, UI designer’i, product manager’i, composer’i, animator’u, accountant’ı olduğundan (yani her işi kendi başına yapmış) espirili bir dille söz ediliyor (Özellikle annesinin James için, ben onun bulaşıkçı falan olmasını istiyordum ama o gitti oyun programcısı oldu dediği kısım çok komik).
Microsoft bu oyunlara “Community Games” adını veriyor ve XBox’ın live sistemi üzerinden bunların dağıtılabileceği bir arabirimde sunuyor.
XNA Game Studio ile 2 veya 3 boyutlu oyunlar geliştirebiliyorsunuz. Eğer isterseniz .Net destekli başka bir oyun motoru (grafik veya fizikte) kullanabilirsiniz. Piyasada 2 veya 3 boyutlu bir çok açık kaynak grafik motoru var. Her ne kadar .Net desteklemesede şuna bir göz atabilirsiniz. Yakınlarda da Havok fizik motoruda bedava hale geldi örneğin. Sonuç olarak, C# konusunda bilgili programcılar XNA Game Studioyu hemen kurup denemeliler bence.
Kim ne derse desin, bu işi Microsoft’tan başka kimse yapmıyor. Onlar içinde platformları arasında bir standart kurmak ve bu platformları yaygınlaştırmak adına yapılmış önemli bir ürün olduğunu düşünüyorum.
Ülkemizde sıfır olan oyun programcılığı için özellikle önemli bir adım olabilecek bu araçlar, kendini göstermek isteyen gençler için oldukça yararlı. XNA Game Studio kullanarak eski garaj günlerine geri dönülebilirse, ana amacı eğlence olan ve oldukça yaratıcı oyunlar görmeye başlayacağımızı düşünmek zor değil. Uzun zamandır aklımda olan bir multiplayer projeyide (zaman bulamadığım için hiç başlayamadığım) nispeten kısa süreceği için bu platform üzerinde bende yapmaya başlayabilirim. Zamanı olan ve ilgilenmek isteyen arkadaşlar benimle temas kurabilirler.
Şunu da belirtmekte fayda var. XNA Game Studio (XNA Framework değil) tamamen amatör oyunlar için tasarlanmış. Eğer siz “gerçek” (yani ticari) oyunlar geliştirmek istiyorsanız henüz dil olarak C++’dan, kütüphane olarakta DirectX veya OpenGL’den başka pek bir alternatifiniz yok.
Son olarak, Microsoft bunu tamamen bedava sağlıyor.
Video :
Ayrıca ilgilenenlerin şu adresede gözatmalarını tavsiye ederim.
Bu benim kurcalamayı oldukça sevdiğim bir konu olduğu için, kesinlikle oyun programcılığı konusunda yazılarım sürecek.