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.

“Ülkemizde sıfır olan oyun programcılığı…”
Sıfır değil belli bir gelişim var özellikle bu arkadaşlar;
http://www.yogurt.com.tr/
Kabus 22, İstanbul Kıyamet Vakti, adı aklıma gelmeyen bir uçak simulasyonu vs…
Buradaki sıfır matematikteki hiçlikse eğer, hayır sıfır değil..
Yazı için teÅŸekkürler güzel bir inceleme…
Doğru belki sıfır değil ama sıfıra yakın. Sonuçta koskoca ülkede bu işle uğraşa(bilen)n çok az firma var. Ne bir teşvik var, ne de önemseyen kişiler. Sponsor veya dağıtıcı deseniz bulması çok zor. Bunu gösteren çok ciddi bir Ceidot örneği var elimizde. Sırf ana oyunlarını geliştirebilmek için para kazanmak adına yan projeler üretmeleri gerekiyor. Yani kısacası destek yok!
Bu iÅŸ pek Odtu’de kurulan merkezle falan hareketlenmez bence. Çünkü bu ÅŸu an için belki tek giriÅŸim ama yetersiz. Siz (devlet) oyun iÅŸine destek vermezseniz, sermaye saÄŸlayabilecek firmalar bu iÅŸe güvenmezse yine en fazla olacağı yetenekli insanların yurtdışına gitmesi olacaktır.
Ülkemiz için bu kapının açılması çok önemli. Sonuçta oyun sektörünün dünyadaki yeri ve oyun geliştirmenin eğlencesi belli. Bu işten ciddi anlamda kazanç sağlanabilineceğini görmek çok önemli.
SöylediÄŸiniz oyunlar genelde iyi niyetli denemeler. Bunların kesinlikle arkasında durmak lazım, devamının getirilmesi için teÅŸvik edilmesi lazım. Ama ben bunu yapmaya niyetli pek bir kimse göremiyorum ortalıkta. Belki XNA gibi platformlarda kiÅŸisel çabalarla geliÅŸtirilebilecek oyunlar sayesinde sermaye odakları bu iÅŸten “ekmek yenebileceÄŸini” görebilirler.
Benim hala bu konuda umudum var.
Katkılarınız ve yorumunuz için teÅŸekkürler…