Kabul edelim: DirectX 11 ve OpenGL biraz yaşlanıyor. DirectX 11, Windows 7 ile birlikte 2009'da tanıtıldı ve OpenGL 4.0 bir yıl sonra geldi. Yazılım yıllarında bu teknolojiler artık eskidir ve bu grafik API'leri piyasaya sürüldüğünde mevcut çalıştıkları donanım mahsulü çizim tahtasında bile değildi. Bu açık bağlantı kesilmesi göz önüne alındığında, sektör zamana göre ne yapıyor? Pekala, yakın geleceğe bir göz atacağız ve göreceğiz, ama başlamak için öncelikle bir API'nin ne olduğunu ve oyun oynamak için hangi işlevi sunduğunu açıklayalım.
API nedir?
Bir API veya uygulama programlama arayüzü , yazılım oluşturmak için kullanılan bir dizi protokol ve araçtır. Grafik API'leri gerçekten sadece 3D grafik oluşturmayı kolaylaştırmak için oluşturulmuş özel bir API. Grafik API'leri 3B görüntüler oluşturmayı kolaylaştırır, ancak API'ya bir şey yapmasını söylemenizi sağlar (örneğin bir dikdörtgen çizer) ve sırayla API'nin daha sonra bu görevi nasıl tamamlayacağınız konusunda donanım ile iletişim kurmasına izin verir. Özel donanımlara sahip çok sayıda farklı GPU'nun aynı oyunları çalıştırmasının ana nedeni budur. Bir API'nin varlığı olmadan, aynı oyunun her bir özel donanım setiyle iletişim kurmak için farklı şekillerde yazılması gerekir. Bu, donanım üreticilerini ciddi şekilde sınırlandıracak ve nihayetinde son tüketiciye aktarılacak bir maliyet olan bina oyunlarının maliyetini büyük ölçüde artıracaktı.
Yukarıdaki açıklamanın biraz daha kolay anlaşılmasını sağlamak için bir analoji kullanacağım: Bir API'yi bir şantiye yöneticisi olarak düşünün. İşi, mimarın fikrini alıp yıkmak, ekibin nerede ve ne zaman olması gerektiğini planlamak ve herkesin yapılması gerekenler konusunda aynı sayfada olmasını sağlamaktır.
Şu Anda Kullanılan Grafik API'leri
Şimdi bir grafik API'sinin işini anlayabildiğimize göre, şu anki diziyi daha yakından inceleyelim. Bugün piyasadaki en büyük oyuncu, 1995 yılında baştan beri tanıtılan Microsoft'un DirectX'idir. Piyasaya sunulmasından bu yana birkaç kez güncellendi ve Microsoft'un Windows işletim sistemine dahil edildi. DirectX, PC için piyasaya sürülen hemen hemen her oyunun destekleyeceği tek grafik API'dir. Aslında, bugün yaygın bir şekilde PC oyunları için standart olduğu için çok yaygındır. DirectX, ne yazık ki çok kapalı bir sistem haline getiren Windows ve Microsoft ürünlerine özeldir. Sıradaki tek açık kaynaklı grafik API'sı olan OpenGL. OpenGL 1992'de piyasaya sürüldü ve çok platformlu; yani Windows, Linux ve Mac OS dahil olmak üzere birçok işletim sistemiyle çalışıyor. Son olarak, en yeni grafik API olan Mantle'ye sahibiz. Manto 2013 yılında AMD ve Dice ortaklığıyla geliştirilmiştir. Manto Windows'ta ve yalnızca AMD GPU'larda kullanılabilir.
Görüntü Kaynağı; Görüntü Kredisi: Intel
DirectX 12
DirectX 12, bu sonbaharda Windows 10 ile birlikte piyasaya sürülecek ve birçok yeni iyileştirme yapılacak. En büyük gelişmelerden biri çok daha iyi iş parçacığı desteği. İşlerin çoğu, CPU üzerinde çok daha iyi ve daha verimli CPU kullanımına olanak tanıyan çok sayıda çekirdek üzerine yayılmıştır. Çoğu zaman DirectX 11, CPU'nun yalnızca bir çekirdeğini tamamen çekerken diğer çekirdeğin boşta durması gerekir. DirectX 12, bu iş yükünü CPU çekirdeği üzerine yaymayı ve oyunlara çalışacak daha fazla CPU gücü vermeyi vaat ediyor. DirectX 12 tarafından vaat edilen bir sonraki büyük gelişme, daha birçok beraberlik çağrıları yönetme yeteneğidir. Bir oyun çağrısı, oyun motoru ekranda bir şey çizmek istediğinde gerçekleşir. Çok sayıda beraberlik çağrısı gerekliliği genellikle CPU için çok fazla vergi almaktadır. DirectX 12'nin 600.000'e kadar beraberlik aramasına cevap verebilmesi gerekiyordu. Bunu perspektife sokmak için DirectX 9, yalnızca 6.000 beraberlik çağrılarını veya DirectX 12'nin yapabileceğinin 1 / 100'ünü yapabilir.
Yıllarca SLI / Crossfire modunda birden fazla GPU çalıştırmak mümkün. Ancak en büyük sınırlamalardan biri, kartların içine yerleştirilen VRAM'ın büyük ve sürekli bir havuz oluşturmak için istiflemediği idi. Örneğin, her birinde 2GB VRAM bulunan iki GPU'nuz varsa, hala etkin bir şekilde yalnızca 2GB VRAM'a sahipsiniz, çünkü her kartta aynı bilgilere sahip olmak zorundaydı. DirectX 12, AFR veya alternatif kare oluşturma kullanarak bu sorunu çözmeyi umuyor. Her çerçevenin parçası olan her GPU yerine, GPU'lar artık her biri birer tüm kare oluşturacak. Bu, her bir karttaki VRAM'ın bağımsız olarak kullanılmasına ve umarım daha az miktarda VRAM'a sahip kartların daha uzun süre iyi bir oyun için uygun olmasına izin verecektir. Oyun grafiklerini her zamankinden daha fazla itmek için DirectX 12'de yer alan birçok yeni özellik olması gerekiyordu. Ancak, Microsoft hala bu yeni özelliklerin ne olduğu hakkında oldukça hushing ediliyor. API'nin piyasaya sürülmesinin yaklaşmasıyla ilgili olarak umarım onlar hakkında daha fazla şey öğreneceğiz.
Şekil 3: DirectX 12 API Overhead, çok çekirdekli CPU'ları kullanırken azaltılır.Görüntü Kaynağı; Resim Kredisi: nVidia GeForce
Vulkan
Vulkan hakkında, GDC 2015'te henüz açıklandığı gibi DirectX 12 hakkında olduğu kadar bilinen bir şey yoktur. Bildiğimiz şey, OpenGL'in yapımcıları olan Khronos Group, glNext adını Vulkan lehine düşürdüğüdür. Vulkan, makalede daha önce bahsettiğim Mantle'den geliyor gibi görünüyor. Ayrıca AMD, Mantle'ın en iyi kısımlarını Khulos Grubu ile ortaklaşa Vulkan için masaya getiriyor gibi görünüyor. Vulkan'ın DirectX 12 ile aynı avantajlara sahip olması gerekiyor, ancak Windows gibi tek bir platforma bağlı değil. Bunun yerine Linux ve hatta mobil cihazlar dahil olmak üzere pek çok farklı platformda mevcut olacak. Hem Windows hem de Linux için Vulkan sürücüleri DirectX'ten farklı olarak tamamen açık kaynak olacaktır. Vulkan çoklu iş parçacılığını geliştirecek ve bu nedenle iş yükünü birden fazla CPU çekirdeğine yayarak bugün mevcut CPU gücünü daha iyi kullanacaktır. Daha önce bahsedildiği gibi, CPU üzerindeki yükü azaltmak GPU'ların şimdi olduğu kadar kolay bir şekilde tıkanmamasına izin verecektir. Bu, oyun sırasında oldukça büyük bir kare hızı artışı sağlamalıdır. Valve tarafından yakın zamanda açıklanan Source 2, Vulkan'ı tam olarak destekleyen ilk yeni oyun motoru olacak, ancak yakın gelecekte çok daha fazla kişinin açıklanacağından eminim. CPU'nun yoğun olduğu bilinen bir oyun olan Dota 2, Intel'in CPU'daki tümleşik grafiklerini kullanan yeni Vulkan API'si ile Source 2'de çalıştığını gösteriyordu. Bu, DirectX 11 kapsamında kesinlikle istenmeyecek bir şeydi, ancak Vulkan ile oyun boyunca makul bir kare hızını koruyor gibiydi. Oxide oyunlarının geliştiricisi olan Dan Baker, “GPU üreticileri bir araya gelerek ve GPU'ları şu an sahip olduğumuzdan on kat daha hızlı hale getirene kadar, CPU'yu maksimize edemeyiz” diyecek kadar ileri gitti. Bu, daha yavaş CPU'ları çalıştıran veya şu anda çok fazla GPU beygir gücü olan insanlar için iyi bir haber, çünkü aynı donanım setinde daha iyi performans elde edilebileceği anlamına geliyor.
Görüntü Kaynağı; Resim Kredisi: Khronos
Bu oyunun geleceği için ne anlama geliyor?
Eh, uzun bir süredir GPU gücü CPU gücünden daha hızlı artmaktadır. Beş yıl önce Intel, bazı GPU'ların kendi CPU'larından 14 kat daha hızlı olduğunu bile belirtti. Bu testler, şimdi nispeten eski donanım olarak kabul edilen bir i7 960 Intel CPU'ya karşı bir nVidia GTX 280 kullanılarak yapıldı. Bir nVidia GTX Titan X (veya bir nVidia GTX 980) ve mevcut ana CPU güç santrali - Intel i7-4790k CPU - arasındaki boşluk çok daha büyük olmalıdır. Yapmaya çalıştığım nokta, CPU yüzünden performansta daha fazla oyunun başladığını görmeye başladığımızdır. Yenileme hızı yüksek olan herkese, bazı oyunlarda mevcut CPU'larla 100 + fps sağlamanın ne kadar zor olduğunu sorun. Açıkçası, bu yeni API'ler olmadan ve CPU gücünü daha verimli kullanma yetenekleri olmadan daha zorlaşacaktır. Bu yeni API'lerin tanıtımı çoğu insan için performansta büyük bir adım atılması anlamına gelebilir. Ayrıca, geliştiricilerin şu an sahip olduğumuzdan çok daha fazla CPU yoğun oyun kurmasına da izin verir. Örneğin, Assamins Creed gibi bir oyunun bir kerede ekranda binlerce NPC'sine sahip olduğunu, bir şehirde dolaşırken birbirinizle ve karakterinizle etkileşime girdiğini hayal edin. Veya herhangi bir sabit ve kabul edilebilir kare hızını elde etmek için çok güçlü bir CPU'ya ihtiyaç duyduğunuz Star Citizen gibi oyunlar yakın gelecekte iyi bir ortalama 60fps tutmak için en iyi ihtimalle ortalama bir CPU ve güçlü bir GPU gerektirebilir.
Sonuçta, bu bir oyuncu olmak için çok heyecan verici bir zamandır. Bu yeni grafik API'leri piyasaya sürüldüğünde, oyun teknolojisindeki en büyük sıçramayı uzun zamandır görebiliriz. Sadece bu API'lerin kendileri için oluşturdukları yutturmacaya kadar yaşayabileceğini umalım.