John Carmack, joka on ollut luomassa mm. Doomia ja Quakea, sanoo näin:
"Microsoft has done a great job with all this stuff. I mean, I honestly think that DX9 with how it's implemented on the 360 is a clearer and more open API than OpenGL is. It doesn't hide the state."
Carmack ei ole kuitenkaan tällä hetkellä lainkaan innostunut DirectX 10:stä ja sanoo sitä jopa turhaksi verrattuna 9-versioon, mutta toteaa kuitenkin:
"That's sort of the Microsoft way. They start off with a piece of crap, and then over a number of versions taking a lot of people with them over the painful route they eventually get to something that's better than what they are competing against."
"Microsoft has done a great job with all this stuff. I mean, I honestly think that DX9 with how it's implemented on the 360 is a clearer and more open API than OpenGL is. It doesn't hide the state."
Carmack ei ole kuitenkaan tällä hetkellä lainkaan innostunut DirectX 10:stä ja sanoo sitä jopa turhaksi verrattuna 9-versioon, mutta toteaa kuitenkin:
"That's sort of the Microsoft way. They start off with a piece of crap, and then over a number of versions taking a lot of people with them over the painful route they eventually get to something that's better than what they are competing against."
Vastaukset 1
Vanhimmat
Kyllähän DirectX:ssä on teknisesti asioita tehty oikein mutta tiedätkö mikä on se käytännön syy miksi kuitenkin käytetään OpenGL:ää?
Vastaus: Siksi kun OpenGL on standardi ja se ei muutu kokoajan. OpenGL:ssä hajosi ensimmäisen kerran jotain vasta OpenGL 3.1:ssä. Eli 22 vuotta OpenGL:n ensimmäisen julkaisun jälkeen.
DirectX:stä taas on vakaita versioita seuraavat:
1.0 syyskuussa 1995
2.0a kesäkuussa 1996 (osana Windows 95 OSR2 ja Windows NT4:ssä)
3.0a joulukuussa 1996 (Windows NT 4 SP3)
7.0 helmikuussa 2000 (osana Windows 2000:sta)
8.1 lokakuussa 2001 (osana Windows XP:tä, vanhempia Windowseja ei tueta)
9.0c elokuussa 2004 (Windows XP SP2)
10 marraskuussa 2006 (osana Windows Vistaa, vanhempia Windowseja ei tueta)
11 lokakuussa 2009 (osana Windows 7:aa, saatavilla Windows Vistalle)
Näiden lisäksi DirectX:stä on lukemattomia RC -versiota mitkä toimii miten sattuu. Ensimmäinen versio oli oikeastaan aika turhia. Lähinnä kehittäjille jotka halusi opetella uutta rajapintaa. 2.0a oli surkea myös ja silloin pelit kannatti vielä tehdä Dossille jos vaati enemmän koneelta, mutta DirectX 3.0a oli ensimmäinen oikeasti merkittävä julkaisu ja sitä kannatti hyödyntää. Siitä huolimatta, että oli hitaampi kuin pelikehittäjien omat Dos -ratkaisut koska Dos oli ollut kuoleva alusta jo pitkään ja koneet oli nopeutuneet tarpeeksi.
Kuten huomaat niin kaikkia DirectX julkaisuja ei saa kaikille Windowseille ja kun DirectX oikeasti muuttuu joka julkaisussa niin näissä on yhteensopivuuseroja. Käytännössä homma menee niin, että Microsoftia kiinnostaa vain kaksi edellistä vakaata julkaisua.
Tästä syystä John Carmackia ei varmasti ole DirectX 10 kiinnostanut pätkääkään ennen kuin Windows 7 ollut valmis koska DirectX 10 ei Windows XP:llä toimi. Toisin sanoen, pelikehittäjien kannattaa aina omaksua uusinta DirectX:ää, mutta tehdä pelit hyödyntämään edellistä DirectX:ää niin toimivat mahdollisimman monella kun julkaistaan mutta samalla mahdollisimman pitkään. DirectX 9.0c:tä ei nykyisin kannata käyttää millään tavalla kun se oletettavasti on vanhin mikä toimii kunnolla Windows 7:ssa. Windows 8:ssa DirectX 9.0c:lle tehdyt pelit voi jo kuolla pois kun siinä on kuitenkin joku DirectX 12.
Fiksuimmat pelikehittäjät toki jättää DirectX:n vain natiivikutsuille ja käyttää grafiikan piirrossa standardia OpenGL:ää niin toimii vielä paremmin. Pelit ei hajoa niin herkästi rikki kun käytetään vähemmän sellaisia kutsuja jotka ei muutu kokoajan. Esimerkiksi Quake 1 vuodelta 1996 toimii edelleen nykykoneissa. DirectX 3.0a ja 7.0 pelit ovat nyky Windowseilla helposti rikki, eli pelit joita tehty ennen vuotta 2004. Vanhoille DirectX:n RC julkaisuille tehdyt pelit nyt oli rikki jo Windows 2000:ssa.
Itse jos olisin pelejä julkaissut 1997-2002 niin Win32 DirectX 3.0a miniGL olisi ollu rajapinnat. Windows XP:n julkaisusta eteenpäin SDL OpenGL 1.2 ehkä extensioneita, Windows Vistan julkaisusta eteenpäin SDL OpenGL 2.0.
Joskus Windows 8:n julkaisun aikoihin fiksuin alusta lienee Java.