31 Ocak 2009 Cumartesi
DirectX Nedir?
Oyun ve çokluortam uygulamaları bilgisayarınızın hakkını tam anlamıyla verebilen programlardır, ancak bu programların çalıştırılması genellikle diğer programlar kadar kolay olmaz. Bunun iki sebebi vardır: İlki, PC mimarisinin bir oyun platformu olarak tasarlanmamış olması. İkincisi de, PC'Ierin doğası gereği her kullanıcının bilgisayarının diğerlerinden farklı olması. Oyun konsolları tamamen aynı donanımlardan oluşmasına rağmen PC'Ierde durum böyle değildir. Bu şartlar altında, birbirinden farklı PC'Ierde aynı oyunu oynamaya çalışmak bir kabustan farksız olabilirdi. Bu nedenle, oluşabilecek sorunları en aza indirgemek için bütün oyun ve multimedya uygulamalarının uyacağı bir standart geliştirme ihtiyacı duyulmuştur. İşletim sistemiyle PC'de bulunan donanımlar arasında bir köprü görevi gören bu arabirim DirectX'in ta kendisidir.
DirectX, hem oyun geliştiricilerin programlama işlerini kolaylaştırmak hem de bizlerin en yeni oyunları rahatça oynayabilmemizi sağlamak için tasarlanmış bir arabirimdir. İsterseniz DirectX'in nasıl çalıştığını açıklamadan önce DirectX'in geçmişine biraz göz atalım.
Directx tarihçesi
Bütün oyunlar belli başlı görevleri tekrar tekrar yerine getirmek zorundadır. Bu görevler arasında fareniz, klavyeniz ya da oyun çubuğunuzdan gelen girdileri takip etmek, görüntüleri ekrana yansıtmak ve oyunun sesleriyle müziklerini çalmak sayılabilir. Bunlar en basit oyunların bile yapmak zorunda olduğu işlerdir.
Şimdi Windows'tan önceki PC'Ier için oyun geliştiricilerin işlerinin ne kadar zor olduğunu bir düşünün.
Programcılar, klavye girdilerini okumak ve hatta oyun çubuğunun bağlı olup olmadığını anlamak için kendi yöntemlerini geliştirmek zorundaydılar. En basit görüntülerin ekranda görüntülenmesi veya basit seslerin çalınması için bile karmaşık kodların yazılması gerekiyordu. Aslında oyun programcıları PC'nizin donanımıyla doğrudan konuşmaya çalışıyorlardı ki bunun oldukça karmaşık bir iş olduğu su götürmez bir gerçektir.
Windows'a geçiş başladıktan sonra PC platformunun başarısı için yeni bir umut kapısı aralanmış oldu. Artık hem geliştiriciler hem de oyuncular için bazı şeyler kolaylaşacaktı. En azından yeni bir oyun üzerinde çalışmaya başlayan programcıların "tekerleği yeniden icat etmesine" gerek kalmayacaktı. Düşünülen şey gayet basitti: Programcıların doğrudan donanımla konuşmalarına lüzum bırakmayacak, buna aracı olacak bir araç kiti geliştirecekti, işte böylece DirectX doğmuş oldu.
Nasıl çalışır?
En basit anlamda DirectX, bilgisayarınızdaki donanımlarla Windows'un kendisi arasında iş gören bir arabirimdir. Windows Uygulama Programlama Arabirimi'nin (Windows API) bir parçasıdır. Bunu bir örnekle açıklamaya çalışalım. Bir oyun geliştirici bir ses dosyasını çalmak isterse doğru kitaplık fonksiyonunu kullanması yeterli olacaktır. Oyun çalıştırıldığında DirectX API çağrılır, DirectX API da ses dosyasını çalar. Geliştiricinin, oyuncunun ne tür bir ses kartı kullandığını bilmesi, kartın özelliklerinden haberdar olması ya da kartla doğrudan iletişim kurması gerekmez. Bu örneğin sağlıklı bir biçimde uygulanabilmesi için DirectX'in varlığı yeterli değildir; ses kartı üreticilerinin de DirectX uyumlu bir sürücü yayınlamış olması gerekir modern sürücüler istisnasız olarak DirectX uyumludur. Böyle bir durumda programcı sesin çalınmasını ister, DirectX de hangi bilgisayarda yüklü olursa olsun aynı sesin çalınmasını sağlar.
DirectX, oyuncular açısından da hayatı kolaylaştırmaktadır. Eski ses kartınızı değiştirip sisteminize yeni bir ses kartı taktığınızda yeni kartınızın DirectX sürücüsü yüklenir.
Sürücü yüklendikten sonra daha önce oynadığınız bir oyunu açarsanız bütün sesleri ve müzikleri duymaya devam edebilirsiniz. Sistem yapılandırmasında karmaşık değişiklikler yapmanıza gerek kalmayacaktır.llk zamanlarda DirectX basit bir araç kiti olarak geliştirilmeye başlanmıştı. Eski donanımların kısıtlı imkanları nedeniyle yalnızca en basit grafik fonksiyonlarına ihtiyaç duyuluyordu. Zaman içinde donanım ve yazılımlar gelişip daha karmaşık bir hal aldıkça DirectX de aynı yönde ilerleyerek gelişti. Bugün DirectX yalnızca bir grafiksel araç kiti olmanın ötesinde, bütün donanımlarla iletişim kurabilen devasa bir rutinler topluluğu halini almıştır. Örneğin Directlnput rutinleri, iki düğmeli basit farelerden karmaşık uçuş kontrol aksesuarlarına değin her türlü veri giriş aygıtıyla birlikte çalışabilir. DirectX'i oluşturan diğer parçalar arasında ses aygıtları için DirectSound ve çevrimiçi / çok oyunculu oyunlar için DirectPIay yer alır.
DırectX sürümleri
Bu yazı yazıldığı sırada en güncel DirectX sürümü DirectX 9.0c idi. Bu sürüm Windows 98'den Windows Server 2003'e kadar olan bütün Windows sürümlerinde çalışır. Ancak DirectX 9, Windows 95'te çalışmaz. Windows 95 yüklü bir bilgisayarınız varsa bir önceki ve daha yetersiz bir sürüm olan 8.0a ile yetinmek zorundasınız. Windows NT 4 için de DirectX 3.0a adlı özel bir sürüm kullanmak gerekir. Vista ise mevcut sürücü modeline göre birçok farklılık ve yenilik içeren Direct3D 10 (Windows Graphics Foundation) adlı yeni sürümü içerecek.
Son yıllarda o kadar çok DirectX sürümü yayınlandı ki hangi sürümü kullandığınızı ve hangisine ihtiyaç duyduğunuzu takip etmek güçleşti. Çok nadir durumlar dışında bütün DirectX sürümleri geriye uyumludur. Yani DirectX 7 isteyen oyunlar en güncel sürümle çalışabilirler 'arpa 7'nin altındaki sürümlerle çalışamazlar. Güncel oyunların çoğu DirectX 9 gerektirir ve en güncel sürüm yüklü olmadıkça çalışmazlar. Bunun sebebi genellikle oyunda bu sürümün getirdiği yeni özelliklerden bazılarının kullanılmasıdır, fakat geliştiriciler bu sürümdeki özellikleri kullanmamalarına rağmen tembellik edip DirectX 9'un yüklenmesini zorunlu kılmaları da görülmemiş bir şey değildir. Genel olarak, bir oyun DirectX 9'u yüklemenizi istiyorsa bu yükseltmeyi yapmadan o oyunu oynayamazsınız. DirectX'in çekirdek kodlarında yapılan iyileştirmeler sonrasında DirectX'in son sürümüne
güncelleme yaptığınız zaman oyun içi görüntülerde de gelişmelerle karşılaşabilirsiniz. DirectX'in indirilmesi ve yüklenmesi zor bir iş değildir. Yüklemeye çalıştığınız oyun ya da uygulama DirectX'in gereken sürümünün yüklü olmadığını tespit ederse muhtemelen bu iş; otomatik olarak halledecektir.
DirectX'i yükseltmek
Piyasadaki bütün Windows sürümlerinde DirectX kaldırılamayan bir sistem bileşeni olarak gelmektedir. Bu nedenle bütün PC'Ierde eski de olsa bir DirectX sürümünün mevcut olduğunu söyleyebiliriz. Fakat yeni oyunların birçoğu çalışmak için DirectX'in en son sürümünü yüklemenizi isterler.
En güncel DirectX'i edinmenir en kolay yolu www.microsoft.com/windows/directx/ adresindeki DirectX web sitesini ziyaret etmektir. Bu sitede iki yükleme yöntemi bulunur: isterseniz küçük boyutlu indirme aracını yükleyerek yalnızca sisteminiz için gerekli olan dosyaların otomatik indirilmesini sağlayabilir ya da DirectX Redist adlı komple paketi indirerek bütün sistemlerde kurulum yapabilirsiniz.DirectX'i edinmenin bir diğer yolu da oyunların kendisidir. Yüklemeye çalıştığınız oyun belli bir DirectX sürümüne ihtiyaç duyuyorsa o sürüm muhtemelen kurulum CD'sinde yer alıyordur ve hatta oyunun kurulumu sırasında otomatik olarak yüklenebilir.