Teknolojinin dahi çocuğu; DirectX

Günümüzde oyun geliştirmenin ne kadar meşakkatli bir iş olduğundan bahsetmeye gerek yok herhalde. Oyun sektörünün bu denli büyümesinden daha önceki zamanlarda, geliştiricilerin bir ürün ortaya koymaları için daha karışık işlerin altından kalkmaları gerekiyordu. Bu işin standardı yoktu.
Elbette programcıların sınırları belliydi. Burada sorun, o sınırların oluşturduğu alanın çok geniş olmasıydı. Örneğin geliştiricilerin, oyun sırasında araya girecek müzik için dahi çok karmaşık kodlarla boğuşmaları gerekiyordu. Bu da şirketler için fazladan maliyet, geliştiriciler için ise boşa harcanan zaman anlamına geliyordu. ‘A’ kadar zamanda on tane iş yapabilmek varken, neden beş tane iş yapılmak zorunda kalınsın ?

İlk bilgisayarlar üretilirken kimsenin aklında oyun oynamak yoktu. Günümüze yaklaştıkça durum tersine döndü. Artık bilgisayarların çoğu Diablo’yu öldürmek ya da Cpt. Price’a biraz daha yakın olabilmek için satın alınıyor. Bu akımın ilk kıvılcımlarının çıktığı zamanlarda sektördeki hareketlenmeler, üretici nezdinde bazı ihtiyaçların giderilmesini zorunlu kıldı. İşte bu zorunluluğun en önemli neticelerinden birisi de DirectX’dir.


GenelX
DirectX , Microsoft platformları için çıkartılan çoklu medyalar, videolar ve tabii ki oyunlar için geliştirilen uygulama programlama arayüzlerinin (Application Programming Interface -API) genel adıdır. İçersinde  Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectInput ve DirectSound ‘u barındırır. İsminde bulunan ‘X’ bu arayüzlerin her birini temsil eder. Üstelik Microsoft, ürettiği konsola Xbox ismini vererek, bu konsolun DirectX temeline dayandığını da vurgulamıştır.
Barındırdığı API’lere kısaca değinecek olursak;  Direct3D, oyunlar gibi performansın önemli olduğu üç boyutlu grafikleri içeren uygulamalarda kullanılırken DirectDraw, üstün  performansın önemli olduğu  grafik oluşturmada(renderlama) kullanılır.

DirectDraw ile iki boyutlu grafikler üzerinde çalışılır. Her ne kadar üç boyutlu grafiklerle çalışabilse de üç boyutlu grafik oluşturabilen Direct3D kadar performans veremez. DirectSound , programlar ile ses bağdaştırıcısının ses karıştırma, ses çalma ve ses yakalama yetenekleri arasında bağlantı sağlar. DirectMusic dijital ses örneklerini yakalayan ve çalan DirectSound API’sinden farklı olarak; hem dijital sesle, hem de ses kartınız veya kendi yerleşik yazılım birleştiricisi aracılığıyla dijital sese dönüştürülen ileti tabanlı müzik verileri ile çalışır.

DirectMusic , MIDI (Müzik Aleti Dijital Arabirimi) biçimine giriş desteği sağlar ve hem sıkıştırılmış, hem de sıkıştırılmamış dijital ses biçimlerini destekler. DirectPlay,modem, internet veya yerel ağ üzerinden oynanan oyunların bağlantılarını sunar. DirectPlay ile çok oyunculu oyunlar için oluşturulan lobilerin kaybolmamasını güvence altına almak amacıyla güvenilir iletişim kuralları desteklenir.  DirectInput ise bilgisayar kullanıcısı tarafından ayrıca kullanılan klavye, mouse ya da oyun kontrolörleri (gamepadler) gibi girdilerin toplanmasını sağlar. XBOX  oyun kollarında görebileceğiniz X-Input özelliği de buradan gelir.

Görüldüğü üzere DirectX ‘in içerisinde barındırdığı API’ler sektör için vazgeçilmez nitelikte olan özellikleri kapsıyor. Her birinin diğerinden ayrı. Microsoft DirectX’i çıkartarak geliştiricilerin işlerini biraz daha rahatlatmakla kalmadı, PC ve konsol (Xbox) oyunculuğunun bu günlere gelmesine de çok büyük katkılarda bulundu.

TarihX
1994’te Microsoft yeni işletim sistemi üzerinde çalışıyordu. O sıralarda Microsoft’un oyun programlama platformu DOS’du. DOS bir çok programcıya en iyi platform olarak görünüyordu çünkü bilgisayarın video kartı, mouse’u, klavyesi ya da ses cihazları gibi parçalarına tam erişim imkanı tanıyordu. Ancak Windows 95’te tüm bunlar kısıtlanmıştı. Microsoft’un Windows 95 üzerinde programcıların ihtiyaç duyduğu tam izinleri verecek yola ihtiyacı vardı.

Üç Microsoft çalışanı Criag Eisler, Alex St.John ve Eric Engstrum bu problemi birlikte çözdüler ve nihayet DirectX’in ilk adımları atıldı. Onlar DirectX’in ilk versiyonunu başka bir geliştirme aracı olan Exodus’un üzerine inşa ettiler. Exodus ise Kinesoft Development tarafından üretilmişti. Microsoft ve Kinesoft 1994 yılında  DirectX 1.0’ı geliştirmek için birlikte çalıştılar.

Eylül 1995’te DirectX’in ilk versiyonu ‘Windows Games SDK’ adıyla piyasaya çıkartılmıştı. Microsoft 1995’ten sonra DirectX’in hemen hemen her yıl başka sürümünü çıkarttı. DirectX 4 bu süreçte piyasaya sürülmeyen tek DirectX sürümü oldu. Microsoft sürüm 4 ve 5 i aynı anda geliştirmeye başlamış ancak daha sonra sürüm 4’ün sunduğu yenilikler az gelince piyasaya çıkartılmaktan vazgeçilmiş ve sene kaybı olmadan DirectX 5.0 piyasaya sürülmüştü (1997).

Windows 98’in ikinci sürümü ile birlikte gelen DirectX 6.1a DxDiag yeniliğini de beraberinde getirdi. Microsoft DxDiag ile bilgisayarların video ya da ses problemlerini test edip sonuçlarını metin dosyası haline dönüştürüyordu. Bu sayede (Böylece desek; bu’lar fazlalaşıyor 🙂 tüketicilere, teknoloji forumlarında ya da destek hatlarında daha rahat yardım edilebiliyordu.

Takvimler 2002 yılını gösterdiğinde Microsoft DirectX 9’u çıkarttı. DirectX 9 içersinde barındırdığı Shader Model 2.0 teknolojisi ile de gündeme gelmişti. Bundan sonra Microsoft yeni versiyonlara gitmek yerine DirectX 9’u geliştirdi. 2004 yılında DirectX 9.0c çıkartıldı ve bu sürüm uzun yıllar kullanılacak Shader Model 3.0’ı da destekliyordu. DirectX 10 Vista olarak bilinen yeni işletim sistemiyle beraber gelmişti. Yukarıda bahsedilen DirectSound ve DirectInput API’leri DirectX 10’dan çıkartıldı.

Xbox için geliştirilen Xınput ve XACT bunların yerini aldı ancak hala DirectSound ve DirectInput ile aynı kapasiteye erişemedi. 2009 yılında Windows 7 ile birlikte gelen ancak Windows Vista’ya da kurulabilen DirectX 11 çıktı. Poligon çoğaltma teknolojisini desteklemesiyle çıtayı biraz daha yükselten DirectX 11’in bir üst sürümü olan 11.1’de Windows 8 ile bütünleşik olarak gelecek.

Tüm sürümler içersinde akıllarda en çok kalan sürüm, DirectX 9’dur. 2002 yılında çıkan ilk DirectX 9 2004 yılına kadar sürekli olarak güncellendi ve 2004 yılında sonradan adeta efsaneye dönüşecek olan DirectX  9.0c çıktı. DirectX 9.0c birçok oyuncu için – 10. ve 11. sürümlerin sunduğu yeniliklere rağmen – farklı anlamlar taşır

LogoX
DirectX logosu normalde ‘Dikkat Radyasyon’ uyarı işaretine benzer. Nitekim DirectX projesi de ABD’nin başını tuttuğu Manhattan Projesi ile özdeşleştirilip, DirectX ambleminin radyasyonu ve dolaylı olarak nükleer füze projesini çağrıştırdığı iddia edilmişti. Ayrıca DirectX projesinin kardeşi kabul edilen Xbox’ın ambleminin de (DirectX logosunun biraz daha küçüğü) sektöre hakim olan Japon video oyun geliştiricilerine Hiroshima ve Nagasaki felaketlerinden ötürü gönderme yaptığı iddia edilmiştir. Kimi kesimlerce Microsoft’un bu logoyu tasarlatarak Japon geliştiricilere mesaj gönderdiği düşünülmüştür. Microsoft ise tamamen yalanlamış DirectX ile Xbox logoları için ‘Sadece bir tasarım.’ açıklamasında bulunmuştur.

DirectX’in Geleceği
On sekiz yıldır geliştiricilerin ekmeğine yağ süren DirectX’in geleceği de ayrı bir tartışma konusu. Tartışmaların odak noktası DirectX’in artık can çekiştiği yönünde. Kimileri OpenGL’nin yeni versiyonlarının DirectX’i aratmadığını savunurken başka kesim de ileride sunulacak yeniliklerle DirectX’in iyice kemikleşeceğini savunuyor. Microsoft ise Windows 8 de DirectX’i ayrı bir SDK olarak dağıtmayacak ve onu Windows’un çekirdeğine yerleştirecek.

DX’in geleceğini büyük oranda geçmişi belirleyecek. DirectX 10’un sunduğu yenilikler hantal işletim sistemi Vista’nın gölgesinde kalmıştı. Ayrıca DX10, dokuzuncu sürümün sunduğu görsellik ile kıyaslandığında, sadece ufak bir fark yaratıyordu.  Oyuncuların kullandıkları ekran kartlarının DX9’u desteklemesi de bir üst sürüme geçişi yavaşlattı.

Ayrıca geliştiricilerin geçiş sürecinde hem DX10 hem de DX9 için ayrı uyarlamalar yapması maliyetleri ciddi anlamda artırıyordu. Üstelik oyuncu pastasının büyük dilimi hala DX9’u savunuyorken, yalnızca DX10’a özel oyun geliştirmek büyük ris almak demekti. Bundan dolayı, kasasına gireceği parayı, elde edeceği karı hesaplayan büyük firmalar geliştireceği oyunlarda kullanacağı DX sürümünü yükseltmekte temkinli davrandı. DX10’un nimetlerinden tam olarak yararlanan CRYSIS büyük beğeni toplamıştı ancak piyasadaki en pahalı sistemler bile oyunu çalıştırmakta zorlanıyordu. Her şeye rağmen CRYTEK elini taşın altına soktu ve geçiş döneminin  en iyi oyununu yaptı. Çok geçmeden DX11 geldi ve sunduğu yenilikler ile kafalardaki soru işaretlerini biraz olsun giderebildi.

Sırada Windows 8 var. Önümüzdeki günlerde DirectX SDK, Windows SDK tarafından yutulacak gibi görünüyor. Windows bu konuyla ilgili şu açıklamayı yaptı, ‘ Biz aslında üst düzey Windows oyunlarının geliştirilmesi için yüksek performanslı bir platform oluşturduk. DirectX teknolojisi geliştikte kullanıldığı uygulama aralığı da aynı oranda arttı. DirectX teknolojisi Windows’a daha çok entegre edildi ve bugün DirectX Windows’un temel parçası oldu.’Windows SDK’, Windows’un ana geliştirme kitidir. Şimdi ise DirectX, Windows SDK’nın bir parçası olmuştur. Artık Windows SDK’yı kullanarak mükemmel oyunlar geliştirebilirsiniz.’ Bu da demek oluyor ki, 2010 Haziranda Windows 7 için çıkan son DirectX sürümünün üzerine yeni bir bağımsız güncelleme yapılmayacak ve artık DirectX Windows çekirdeğinin  parçası olacak.

Sonsöz
DX9’un ardından son kullanıcı nezdinde beklenenleri karşılayamayan DirectX’in geleceği oyun camiasının tarafında merak uyandırıyor. Son sürümlerinin sunduğu nimetlerden de tam anlamıyla yararlanılamadığı ortada. Eskiden her sene güncelleme gören DirectX, geride bıraktığımız birkaç senede kendini ağırdan aldı. Diğer taraftan OpenGL’in  dördüncü versiyonuyla DirectX 11’e iyice yaklaşması oyun severleri heyecanlandırırken, gelecekte bizi bekleyen günlerin belirsizliğini iyice körüklüyor.

Poligon sayılarının artması daha gerçekçi oyunlar için yeterli mi? Sık sık güncellenen DirectX’ler ekran kartı üreticilerini ne derecede etkiliyor ? DirectX’siz bir oyun dünyası daha iyi sonuçlar mı verirdi? Bu soruların tamamı ayrı dosya konusu. İyisi mi şimdilik hepimiz Windows 8’in bize neler getireceğini izleyelim

Exit mobile version