
OpenGL ve DirectX gibi grafik API'leri, oyun oynamak için kullanılan yazılım ve grafik donanımı arasında bir köprü görevi görür. Bu API'ler, 2B ve 3B grafikleri ekranda görüntülemek için standartlaştırılmış yöntemler sağlar. Son birkaç on yılda oyun geliştirme için temel hale geldiler.
Unity gibi motorlar, kullandıkları grafik API'leri arasında bir seçim sunar, ancak oyununuz için doğru seçeneği nasıl seçmeniz gerekir? OpenGL'yi DirectX ile karşılaştırırken bize katılın ve bu araçlardan hangisinin sizin için en iyisi olduğu hakkında bir fikir verin.
DirectX ve OpenGL: Ana Özelliğe Genel Bakış

Özünde, hem DirectX hem de OpenGL aynı grafik boru hattını paylaşıyor ve uzun yıllardır var. Her iki API de karmaşık grafik ilkelleri oluşturmak için köşe adı verilen noktaları kullanır. Her köşe kendi koordinatlarını ve diğer önemli bilgilerini depolar. Ancak her kitaplığın köşeleri kullanma şekli farklıdır.
Benzer işlevleri yerine getirebilirler, ancak onlarla çalışıyorsanız OpenGL ve DirectX arasındaki farkı fark edeceksiniz.
DirectX ve OpenGL: API Kapsamı
Daha ileri gitmeden önce, her ikisi de grafik API'leri olsa da, OpenGL ve DirectX'in farklı kapsamlara sahip olduğunu belirtmek önemlidir. OpenGL safkan bir grafik API'sidir ve bu, 2D ve 3D grafiklerden başka hiçbir şeyle uğraşmadığı anlamına gelir. Öte yandan DirectX, hepsi birlikte çalışan grafik, ses, ağ ve diğer donanım API'lerinden oluşan bir koleksiyondur.Bazı durumlarda, OpenGL kendi başına yapamayacağı işlevleri gerçekleştirmek için DirectX'i kullanır. Bu makalenin geri kalanı, her aracın grafik öğelerine odaklanarak iki API arasındaki bu farkı göz ardı edecektir.
OpenGL ve DirectX: Platformlar
OpenGL, Khronos Group adlı kar amacı gütmeyen bir şirket tarafından yönetilen ücretsiz bir API'dir, DirectX ise Microsoft tarafından yapılır. DirectX, öncelikle Windows ve Xbox'ta çalışır, Linux gibi diğer platformlar yavaş yavaş destek alır. OpenGL, bir dizi işletim sistemi ve oyun konsolunda oyun geliştirme için kullanılabilir hale getiren çapraz platformdur.DirectX ve OpenGL: Donanım Kaynakları
DirectX, donanım yönetimini geliştiriciye bırakarak kaynakları ihtiyaç duyduğunuz anda verimli bir şekilde tahsis etmenizi sağlar. OpenGL donanım yönetimini ele alır, ancak kaynakları kendiniz yönetme konusunda endişelenmenize gerek olmadığı için bunun kendi avantajları olabilir.DirectX ve OpenGL: Belgeler
Ayrıntılı belgelere erişim, API'lerle çalışırken oyun geliştirmeyi çok daha kolay hale getirebilir. DirectX ve OpenGL düzenli olarak güncellenen belgeler ve yararlı geliştirici toplulukları sunar. Bu API'lerin her ikisi de mevcut en iyi özellikleri sunduklarından emin olmak için büyük yıllık güncelleştirmeler alır.Oyun Geliştirme için OpenGL ve DirectX'i Kullanma

Geliştiriciler, hem OpenGL hem de DirectX kullanarak modern pazarda birçok güzel ve iyi optimize edilmiş oyun yaptılar. 2B/3B grafik API'si seçerken göz önünde bulundurmanız gereken birkaç şey vardır. Bazı geliştiriciler sadece en rahat oldukları araca güveneceklerdir.
OpenGL veya DirectX: Platformlar
Platformlara zaten değindik, ancak bu geliştiriciler için çok önemli bir husus. Nintendo Switch, Playstation 4 veya Linux için oyun yapmak istiyorsanız, OpenGL veya bunları destekleyen başka bir API ile çalışmanız gerekir. DirectX, Windows ve Xbox için üretilmiştir ve diğer sistemlerle sınırlı uyumluluğa sahiptir.OpenGL veya DirectX: Motor Uyumluluğu
Çoğu oyun geliştiricisi, günümüzde oyunlarını oluşturmak için Unity ve Unreal gibi motorları kullanıyor. Bu motorların her ikisi de diğer platformlar arası oyun geliştirme motorları gibi OpenGL ve DirectX'i destekler.OpenGL veya DirectX: Kullanım Kolaylığı
Bazıları OpenGL ile çalışmanın DirectX'ten daha kolay olduğunu iddia eder. Donanım kaynaklarının yanı sıra, OpenGL yalnızca grafikleri işleyerek doğası gereği daha basit hale getirir. Daha fazla platformda çalışması, bu gereksinime sahip oyunların piyasaya sürülmesini de kolaylaştırır.Graphics API kullanım kolaylığı, oyun geliştiricileri için eskisi kadar önemli değildir. Unity gibi motorlar, perde arkasındaki grafik API'leriyle arayüz oluştururken, kullandığınız API'yi değiştirmek için yalnızca bir düğmeye tıklamanız yeterlidir. Sıfırdan bir oyun oluşturmadığınız sürece, her API'nin kullanım kolaylığında bir fark fark etmeniz pek olası değildir.
OpenGL veya DirectX: Grafik Özellikleri
Saçak bir durum olmadığınız sürece, bu API'ler arasında sahip olduğunuz özelliklerde büyük bir fark görmeniz olası değildir. Her ikisi de grafik kartınızın yeteneklerini destekler ve bu yalnızca GPU'lar gelecekte dramatik değişiklikler görürse değişecektir.OpenGL veya DirectX: Oyun Performansı

Geliştiriciler arasında bu API'lerin performansıyla ilgili çok fazla tartışma var. OpenGL veya DirectX'in önemli performans farklılıklarına sahip olduğunu hayal etmek zordur, ancak OpenGL'nin daha pürüzsüz ve daha verimli olduğu iddiası çevrimiçi olarak yaygındır.
Bu API'lerden hangisinin en iyi performansı gösterdiğini bulmanın tek yolu test etmektir. Unity'nin her iki API ile uyumluluğu sayesinde, bir performans kıyaslaması oluşturmak için bir proje oluşturabilir ve örnek bir oyunu her iki API ile test edebiliriz.
Bu testler, farklı boru hatlarının önemli bir faktör olmadığından emin olmak için hem 2D hem de 3D grafiklerle gerçekleştirilmiştir. Her test 120 saniyelik normal oyun boyunca çalışır ve performansı belirlemek için saniyedeki kare sayısı ölçülür. Tüm testler aynı bilgisayarda gerçekleştirilmiştir.
3D Performans Testi: Unity Carting Microgame

Unity Carting Microgame, basit bir yarış oyunu oluşturmak için ihtiyacınız olan her şeyi içeren ücretsiz bir şablondur. Öğreticilerle birlikte geliyor, ancak oyunun kendisiyle daha çok ilgileniyoruz. Carting Microgame'i performanslarını karşılaştırmak için hem OpenGL hem de DirectX ile oluşturduk ve sonuçlar aşağıdaki gibiydi:
| En düşük | Yüksek | Ortalama | |
|---|---|---|---|
| DirectX | 331 | 848 | 365.05 |
| OpenGL | 247 | 819 | 283.7 |
DirectX, 3D kıyaslamamızda OpenGL'den daha iyi performans gösterdi ve etkileyici kare hızlarına ulaştı. OpenGL'nin sonuçları hala oynanabilir olmaktan daha fazlasıdır.
2D Performans Testi: Unity Platformer Microgame

Carting Microgame gibi, Unity Platformer Microgame de ücretsizdir ve harika öğrenme araçlarıyla doludur. Beklendiği gibi, testlerimizdeki 2D oyun 3D olandan daha iyi performans gösterir, ancak sonuçları kendiniz değerlendirebilirsiniz.
| En düşük | Yüksek | Ortalama | |
|---|---|---|---|
| DirectX | 599 | 850 | 767.367 |
| OpenGL | 302 | 604 | 515.417 |
OpenGL veya DirectX 11: Performans Sonucu
Birçok kişi OpenGL'nin DirectX'ten daha iyi performans gösterdiğini söylese de, ikinci API her iki kıyaslamamızda da daha iyi sonuçlar elde etti. Bu, kesin olmaktan uzaktır, birçok faktör bir oyunun performansını dikte etmede rol oynar, özellikle de daha karmaşık hale geldikçe.DirectX veya OpenGL: Oyun Geliştirme için Hangisini Kullanmalısınız?
Doğru grafik API'sini seçmek birkaç faktöre bağlıdır. DirectX, en yaygın kullanılan grafik API'sidir. Birçok oyun geliştiricisi, oyunlarını diğer platformlar için OpenGL'ye taşımadan önce Windows ve Xbox için oluşturur. Bir oyunu yalnızca Windows ve Xbox dışında yayınlıyorsanız, OpenGL'yi en başından itibaren kullanmaktan yararlanabilirsiniz.Performans da dikkate alınması gereken bir faktördür, ancak testlerimiz Unity gibi motor araçlarını kullanırken bunun oldukça ihmal edilebilir olduğunu göstermektedir. Temel olarak, bu iki grafik API'si arasındaki farklar yalnızca belirli niş özellikleri arayanlar için önemlidir.


