realmanager
Profesör
- Katılım
- 31 Ekim 2009
- Mesajlar
- 3,927
- Reaksiyon puanı
- 99
- Puanları
- 0
Sık sık, diğer oyun geliştiricileriyle bir araya gelip oyunumuz için OpenGL kullandığımızı söylediğimizde güvensiz bakışlarla karşılaşıyoruz -- neden biri OpenGL kullanır ki? DirectX bu işin geleceği, grafik kartı temsilcilerine OpenGL kullandığımızı söylediğimizde odanın ısısı on derece birden düşüyor. Bu bizi şaşkına çeviriyor. Örneğin standartlara dayalı sitelerin Silverlight, Flash ve ActiveX'den daha üstün olduğu yaygın bir düşüncedir. Çoklu sistemler için yazılım geliştirme takdir'e şayan ve akıllıcadır, kendine saygısı olan hiçbir kullanıcı kapalı-standart yazı dökümanları ve değiş tokuş sunucularıyla uğraşmaktan hoşlanmaz. Bu ne tuhaf bir dünyadır ki mühendisler sadece Microsoft'un en son çıkardığı ruhsatlı api'sini kullanmak için deli olmuyor ama aynı zamanda onun açık standart olan rakibini geçersiz kabul ediyor.
Neden OpenGL'i desteklediğimizin hikayesine dalmadan önce birazcık tarih'ten söz edelim;
OpenGL Nedir?
1982'de Silicon Graphics IrisGL (GL, Graphics Library'nin[Görüntü Kütüphanesi] kısaltılmışıdır) adında, lisanslı bir api kullanan yüksek performanslı grafik terminalleri satmaya başladı. Yıllar içinde IrisGL şişti ve devam ettirilmesi zor bir hal aldı. Silicon Graphics radikal yeni bir adım atıncaya kadar; IrisGL'in kodunu daha anlaşılır hale getirip bir açık standart yaratmak. Rakipleri bu sayede yeni açık grafik kütüphanesini(OpenGL) kullanabilecek fakat karşılığında kütüphanenin devamlılığını sağlamaya ve güncellemeye yardım edeceklerdi.
Bugün OpenGL Khronos group isimli kar amacı gütmeyen ve yüksek kalite medya apilerinin devamını sağlamakla ilgilenen bir çok şirket'in temsicilerinden oluşan bir grup tarafından yönetiliyor. Daha düşük seviyede OpenGL mimari inceleme kurulu (ARB) tarafından kontrol ediliyor. OpenGL Xbox hariç tüm oyun platformlarında destekleniyor. Bu da bizi bir sonraki başlığımıza getiriyor:
DirectX Nedir?
Ms-Dos zamanından bu yana Microsoft, oyunların, kullanıcıların işletim sistemi şeçiminde önemli bir rol oynadığını anladı. Bu sebeple 1995'te özel oyunların yeni işletim sistemleri Windows 95'de kullanılabilmesini teşvik etmek için lisanslı bir kütüphane seti hazırladı. Bu kütüphaneler Direct3D, Directinput, Directsound'dan oluşuyordu ve topluca DirectX ismini alıyordu. Microsoft 2001'de oyun pazarına girdiğinde DirectX Box'ı ya da kısaca Xbox'ı tanıttı. Xbox gelecek nesilde oyun pazarını ele geçirme amacıyla üretilmiş tam bir kayıp birincisiydi. (4 Milyar Dolar'ın üzerinde kaybettirdi.)
Şu anki oyun sahnesine bakarsak açıkça bu strateji işe yaradı. Çoğu önemli PC oyunu şu an DirectX'i kullanıyor ve hem Windows hem de Xbox 360'da çalışıyor. Bazı istisnalar dışında rakip platformlarda çalışmıyorlar. Bunlar olmasa da olur diyebilmek için fazla önemli platformlar ve bu bizi büyük soruya getiriyor:
Neden Herkes DirectX Kullanıyor?
Herkes DirectX kullanıyor çünkü oyun geliştirmede api seçimi bir pozitif geri besleme döngüsüdür ve 2005 yılında bu döngü DirectX'in yönüne doğru değiştirildi. Çünkü ne zaman bir api daha popüler hale gelse iletişim etkisi'den dolayı giderek daha ve daha fazla popüler hale gelir. En önemli iletişim etkileri şöyledir; api daha popüler hale geldikçe grafik kartı üreticileri daha fazla destek verir ve böylece grafik programcıları api'yi nasıl kullanabileceklerine dair bilgiye daha çabuk ulaşır.
Api kullanımında ibre DirectX'in yönüne Microsoft'un Xbox360 ve Windows Vista tanıtımındaki iki uçlu kampanya sırasında döndü. Bu kampanya OpenGL'in geleceği ile ilgili yaydıkları fud(korku/fear, belirsizlik/uncertainity ve şüphe/doubt) ve DirectX'in erdemlerini güçlü bir şekilde abartmayı içeriyordu. O zamandan bu yana, iletişim etkisi bu tutarsızlığı OpenGL ana akım pc oyunu piyasasından neredeyse yok olana kadar besledi.
1. İletişim Etkisi Ve Bozuk Çemberler
Windows'ta DirectX grafik sürücülerinin OpenGL grafik sürücülerine göre daha iyi desteklendiği bir gerçektir. Bu üretici desteğindeki bozuk çember'den kaynaklandı. Oyun geliştiricileri farklı sebeplerden dolayı OpenGL'den DirectX'e yöneltilirken grafik kartı üreticileri OpenGL sürücüleri, eklentileri ve dökümanları için daha az hata raporu almaya başladılar. Bu da daha sağlıksız OpenGL sürücülerine ve daha fazla oyun üreticisinin OpenGL'den DirectX'e geçmesine sebep oldu. Bu döngü şu an bile böyle devam ediyor.
Benzer şekilde, daha fazla grafik programcısının OpenGL yerine DirectX'i nasıl kullanacağı bilmesi bir gerçek, yani DirectX'i kullanarak oyun yapmak OpenGL'le yapmaktan daha ucuz. (daha az eğitim gerekiyor.) Bu başka bir bozuk çember'in sonucu; daha fazla oyun projesinin DirectX kullanmasıyla daha fazla programcı DirectX kullanmayı öğrenmek zorunda kaldı ve projelerde DirectX'i kullanmak OpenGL'i kullanmaktan daha ucuz hale geldi.
2. OpenGL ve Vista İkilisi Hakkında Korku Kampanyası
Microsoft, Windows Vista'yı piyasaya sürerken OpenGL ile ilgili bir korku, belirsizlik ve şüphe(fud) kampanyası başlattı. 2003'de Microsoft OpenGL mimari inceleme kurulunu terk etti -- böylece OpenGL'in geleceği ile ilgili bir beklentilerinin kalmadığını gösteriyorlardı. Sonra 2005'de Siggraph (grafiğe özel ilgi duyanlar konferansı) ve Winhec (windows donanım mühendisliği konferansı) kapsamında yaptığı sunumlarda Windows Vista'nın OpenGL desteğini kaldırabileceği ve sadece eski XP uygulamalarının sürümleri destekleme yoluna gidebileceği intibası uyandırdı. OpenGL'in bu sürümü DirectX'in üstünde çalışacak ve böylece çok ciddi bir performans kaybına uğrayacaktı. Bu kampanya OpenGL kullananlarda büyük bir paniğe ve böylece bir çok grafik programcısının DirectX'e geçmesine yol açtı.
Vista piyasaya çıktığında, OpenGL'le ilgili iddialarında çark etti ve üreticilere doğrudan OpenGL desteği veren hızlı kurulabilir sürücüler (icd) yazabilme imkanı verdi. OpenGL kurulu OpenGL'in hala birinci sınıf vatandaş olduğunu ve OpenGL'in performans'ının hala DirectX kadar iyi olduğunu kanıtlayan bir haber yayınladı. Ne yazık ki OpenGL için hasar artık alınmıştı -- OpenGL'le ilgili toplum görüşü kötü şekilde sarsılmıştı.
3. Pazarlama Kampanyalarındaki Yanlış Yönlendirme
Windows Vista ve Windows 7 için çıkış stratejileri Microsoft'un DirectX'i pazarlama çabasına eşlik etti. Bunu değişik DirectX versiyonlarından 'öncesi' ve 'sonrası' ekran görüntülerini göstererek yaptılar. Bir çok oyuncu DirectX 9'dan DirectX 10'a geçerlerse görüntülerin sihirli bir değnek değmiş gibi saçma sapan karanlık halinden normal hale geçeceğine ya da Halo 1'den Crysis'e geçeceğine inandı. Oyun gazetecileri Crysis'in DirectX 9 versiyonu ile DirectX 10 versiyonu arasında hiçbir fark olmadığını ve DirectX 10 özelliklerinin bir konfigürasyon dosyasıyla oynanmasıyla DirectX 9 versiyonunda da gayet güzel çalışabildiğini kanıtladılar. Bu apaçık yanlışlığa rağmen pazarlama teknikleri ile oyuncuları en yeni grafik özelliklerine erişmenin tek yolunun DirectX güncellemeleri olduğuna ikna etti.
Birçok oyun Microsoft'un pazarlama maskaralıklarına katılırken, John Carmack gibi daha sağlam grafik programcıları bunun içinde yer almayı reddetti. O bunu şu şekilde ifade etti; "Şahsen, DirectX 10 gibi birşeye şimdilik atlamazdım. Taşların biraz daha yerine oturmasını ve gerçekten ona çok ciddi bir ihtiyaç olup olmadığını görmeyi beklerdim."
Peki Biz Neden OpenGL Kullanıyoruz?
OpenGL'e daha az üretici desteği verilmesine, artık oyunlarda kullanılmamasına, Microsoft tarafından aktif olarak saldırılmasına ve pazarlama momenti olamamasına rağment neden hala onu kullanmalıyız? Onu hendeğe atıp herkes gibi DirectX kullansaydık daha karlı olmaz mıydı? Hayır. Çünkü gerçekten OpenGL, DirectX'den daha güçlü, daha fazla platform'u destekliyor ve oyun dünyasının geleceği için elzem.
1. OpenGL DirectX'den Daha Güçlü
OpenGL'in DirectX'den daha hızlı draw call'ları olduğu yaygınca bilinen bir bilgi. (Eğer benim sözüm birşey ifade etmiyorsa http://developer.nvidia.com/...tensions-gdc-2006.html adresindeki Nvidia sunumuna bakabilirsiniz.) ve üretici eklenti mekanizması sayesinde yeni gpu özelliklerine en önce onun üzerinden ulaşabiliyorsunuz. OpenGL size tüm platformlarda tüm yeni grafik özelliklerine doğrudan erişim imkanı sunuyor. DirectX ise, o da sadece en yeni Windows sürümlerinde olmak üzere, bu yeni özelliklerle ilgili tek tük resim kareleri sunuyor. Microsoft'un DirectX 11'de çok yücelttiği yeni tesselation teknolojisi OpenGL'de 3 yıldır var olan bir eklentidir. Hatta fast instancing ve vertex-texture-fetch özellikleri yıllar önce kullanılabilir durumdaydı. Gelecek birkaç yılda ne gibi yeni teknolojiler ortaya çıkacak bilmiyorum ama biliyorum ki ilk önce OpenGL'de kullanılabilir olacak.
Microsoft DirectX 10 ve 11 için çok çalıştı ve şimdi neredeyse OpenGL kadar hızlı çalışıyorlar ve neredeyse aynı miktarda özelliği destekliyorlar. Gel gelelim, büyük bir problem var; Windows XP üzerinde çalışmıyorlar! PC oyuncularının yarısı bugün bile hala XP kullanıyor, ancak sorun bundan ibaret değil. DirectX ve Windows'un yeni versiyonları çıktığında birkaç yıl sonra oyuncuların çoğu performans sorunları, donanım veya yazılım uyumsuzluğu, sürücü eksikliği gibi nedenlerden dolayı bir önceki Windows'ta(ki büyük ihtimal bu Win7 olacak) kalacak. Yani bu döngü hep bu şekilde devam edecek çünkü pazarlama kaygısı yüzünden zaten bu şekilde tasarlandı. Yani DirectX en yeni teknolojilere en çabuk, en performanslı ve en kararlı ulaşmak için geçerli bir seçenek değil. Eğer en iyi grafik kalitesine ve hızına sahip olmayı ve bunu en fazla oyuncuya ulaştırmayı önemsiyorsanız OpenGL'den başka seçenek yok.
2. OpenGL Çoklu Sistemlerde Çalışır.
Bizim Lugaru isimli oyunumuzun kullacılarının yarısıdan fazlası Windows harici platformlar kullanıyor ve yeni oyunumuz Overgrowth için de durum aynı olursa şaşırmayız. Ana oyun üreticileriyle konuştuğumuzda Windows ve Xbox harici platformları desteklemenin zaman kaybı olduğunu duyuyoruz. Gel gelelim, bu iddia için hiçbir zaman bir kanıt göremedik.
John Carmack'e Rage'in bir DirectX oyunu olup olmadığını sorduğumda şunu söyledi; "Hala bir OpenGL oyunu ama açıkça Xbox360 için Direct3D vari bir api ve Playstation3 için CG kullanıyoruz. Teknolojinin hangi api'yi veya hangi nesil uygulamayı kullandığınla ne kadar az ilgilendiğini görmek çok garip. Elinde küçük bir avuç dolusu dosya api'yle ilgileniyor ve milyonlarca satır kod hangi platform'da çalıştığının bile farkında bile değil" eğer OpenGL ile her platform'a ulaşabiliyorsanız neden DirectX'e güvenerek kendi kendinizi ayağınızdan vurasınız ki? Eğer tek umarsadığınız şey Windows ise bile Windows kullanıcılarının yarısının hala eski sürüm Windows kullandığını ve kullanacağını(döngü) eğer DirectX'in son versiyonu ile yazdıysanız sizin oyununuzu gerçek anlamda tam verimle oynayamayacaklarını tekrar hatırlatmak isterim. Windows kullanıcılarına da (en büyük masaüstü oyun platformu) en yeni grafiği ulaştırmanın tek yolu OpenGL'den geçiyor.
3.OpenGL Oyunların Geleceği İçin Daha İyi
OpenGL, herhangi bir platform'da kullanıcıları donanımlarının verebileceği en yüksek kalite grafiği tatmaları için yaratılmış kâr amacı gütmeyen açık bir standart'tır. Kullanımı, daha çok genç olan bu pazarı ele geçirmek isteyen tekelci dev bir şirketin tekelci saldırıları sonucu baltalanmıştır. Yavaş yavaş Direct3D'nin Windows tarafından desteklenen tek api olmaya başlamasıyla, Microsoft PC oyunu pazarını boyunduruğu altına almaktadır. Bizim özgürlük, fiyatları aşağı ve kaliteyi yukarı çekmek için rekabet'e ihtiyacımız var.
Microsoft'un oyun pazarında tekelleşmesinin hem oyuncu hemde oyun üreticisi için çok tehlike sonuçları olabilir.
OpenGL toparlanabilir mi?
1997'de durum aynı şu anda olduğu gibiydi. Microsoft Direct3D için kitlesel bir pazarlama kampanyası yürütüyordu ve sonunda herkes "biliyordu" ki Direct3D, OpenGL'den daha hızlı ve daha iyiydi!!! Bu durum Chris Hecker DirectX'i itham eden açık mektubu yayınlamasıyla değişmeye başladı. (http://chrishecker.com/images/3/33/Gdmogl.pdf) Bundan kısa bir süre sonra John Carmack ünlü OpenGL çıkışını postaladı. (http://www.bluesnews.com/archives/carmack122396.html) ve ID Software'in tüm oyunlarını OpenGL ile yaparak sözlerinin arkasında durdu ve DirectX in en yeni 3D oyunlar için gerekli olmadığını kanıtladı.
Bu dersin son yıllarda unutulmaya başlandığı görülüyor. Çoğu oyun geliştiricisi DirectX pazarlamasının büyüsü altına girdi veya bozuk çember'lerin ve iletişim avantajlarının girdabına kapıldı. Şimdi reklamın örtüsünü ve kafa karıştıran kelimeleri bir kenara bırakalım ve gerçeğin ne olduğunu görelim. Eğer DirectX kullanıyorsanız ya artık güçsüzleşmiş ve şişmiş DirectX 9'u kullanacaksınız ya da DirectX 10 ya da 11 kullanmak için kullanıcı tabanınızın büyük bir kısmını kurban ediceksiniz ki mevcut birçok donanımın bunlara tam destek vermediğini unutmayın.
Diğer yandan eğer OpenGL kullanırsanız DirectX 11'den daha hızlı ve güçlü grafik özelliklerine sahip olacaksınız ve buna Windows'un tüm versiyonları, Linux ve ismini saymadığım birçok platformda sahip olacaksınız.(Xbox hariç) Ayrıca bu özelliklere tarayıcı oyunlarının yeni nesli olan ve hızlı bir şekilde gelişen WebGL standartında da sahip olacaksınız.
Eğer bir oyun geliştiricisiyseniz sizden tek istediğim şekilleri karşılaştırıp OpenGL'in daha iyi bir seçenek olup olmadığına karar vermeniz. Bazı programcılar DirectX'in tarzını OpenGL'e tercih edebilirler ama bu düşük seviyeli apileri bir soyutlama katmanına çeviriyor olacaksınız bu yüzden bu bir tercih faktörü olmamalıdır. Eğer OpenGL ile ilgili sevmediğiniz bir şey varsa sadece mimari inceleme kurulundan (ARB) değiştirmelerini isteyin -- Onlar size hizmet etmek için var.
Eğer eski sürüm Windows, Linux veya Mac kullanan bir oyuncu iseniz, umarım DirectX'in yeni oyunların sizin platformunuza erişimi engellemek için var olduğunun farkındasınızdır. Buna karşı savaşmanın tek yolu OpenGL oyunlarını desteklemenizdir."
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Yazı bana ait değildir.
Orjinal İngilizce Yazı
(Bende siteye girmek için proxy sunucusu gerekti)
Çevirinin aslı da bana ait değildir.
Orjinal Çeviri
Ancak gerek çeviride düzenlemeler yaptım, gerekse yazıda ufak ekleme ve çıkarmalar yaptım. Okuma kolaylığı için büyük küçük harf, önemli satırların altını çizme, ilgili resimler ve birkaç yerde de yazı renklendirme tekniğini kullandım. Maalesef bu önemsiz gibi görünen işler dahi 1 saatimden fazlasını aldı.
Umarım beğenirsiniz.
Ekleme: Gençler istediğiniz yerde yayınlamaktan çekinmeyin.
Benim ismimi veya SDN forumu kaynak vermenize de gerek yok.
Bu yazıyı yazanın da çevirenin de lisans kaygısı olacağını zannetmiyorum. Benim zaten yok (Olursa çelişki olur değil mi)
realmanager