Master Race’in sancılı dönemi
Gotham Knights, The Callisto Protocol, Wild Hearts, The Last of Us Part I, Star Wars: Jedi Survior, Redfall. Son 6-7 ayda PC’ye facia biçimde çıkan oyunlardan yalnızca birkaçı. O denli makûs durumdalar ki piyasadaki en güçlü kartla bile 60 FPS almak mümkün olamıyor. Hatta bazen bırakın 60 FPS’yi, yırtılmalar ve takılmalardan oyun oynanamaz duruma geliyor.
Bu kadar fazla sayıda oyunun PC’de can cekişmesinin bir sebebi olmalı, değil mi? Bunu kestirme yoldan “Firmalar açgözlü oldukları için” diyerek cevaplayabilirsiniz ve bu gerçek da olur.Ancak buzdağının görünmeyen tarafında teknik sıkıntılar azımsanmayacak kadar fazla ve bu yazıda bu teknik sıkıntılara odaklanacağız.
Vizyon Sancıları
Her şeyden evvel, her oyunun tıpkı geliştirme sürecine ve mantalitesine sahip olmadığını belirtmek gerek. Birtakım firmalar ana platform olarak PC’yi tercih eder ve birinci olarak oyunlarını PC’de çalışacak biçimde geliştirirler. Akabinde bu versiyon, konsollara uyumlu olacak halde düzenlenir. Diğer firmalar ise tam zıddı, evvel konsollara akabinde PC’ye geliştirme yapar, ki günümüz AAA oyunlarında gördüğümüz trend de bu tarafta.
Bunun bu biçimde olmasının en büyük sebebi, ki bu sebebi sıkça lisana getireceğim, konsolların sabit bir donanım setine sahip olmasından geliyor. Yani, bir oyun geliştirilirken geliştirdiğiniz konsolun işlemcisini, ekran kartını, mimarisini vs biliyorsunuz ve bunun değişmeyeceğinin de garantisi var. Öte yandan PC’de onlarca farklı donanım modülünden sayısız kombinasyon çıkarmak mümkün. Bu da her bir kombinasyon için farklı (ve önemli emek isteyen) bir iş manasına geliyor. Firmaların önceliği, geliştirme sürecini olabildiğince kısa tutmak istemelerinden dolayı, natürel ki de konsollar oluyor. Bu yüzden PC optimizasyon süreci, geliştirme döngüsünün en sonunda yer alıyor ve kâfi vakit kalmadığından malum tablo oluşuyor.
Shader “Belası”
PC’de yüzlerce farklı sistem oluşturabilmenin, oyun geliştiricileri için yaşattığı en büyük sıkıntılardan biri de shader. Tanımlamak gerekirse shader; ekran kartı üzerinde çalışan, oyun ekranında gördüğümüz nesnelerin ekranın neresinde (pozisyon, texture koordinatları) ve nasıl görüneceğini (renk, alfa değeri) hesaplayan bir programdır. İşlemci tarafından gerçekleştirilen bu hesaplamaların, ekranda (programcı ağzıyla demek gerekirse sahnede) yer alan nesneler daima değiştiği için devasa oranlarda yapılması gerekiyor.
The Callisto Protocol Shader Stutter. Kaynak Digital Foundry
Eğer konsollar üzere sabit bir donanıma geliştirme yapıyorsanız, tüm shader hesaplamalarını önden yapıp oyunun evrakları içerisine koyabilirsiniz. Böylelikle oyun esanasında rastgele bir hesaplamaya gerek kalmaz. Lakin PC’de oyuncunun nasıl bir kombinasyona sahip olduğu bilinmediği için shader hesaplamaları önden oyuna eklenemiyor. Bu yüzden geliştiriciler bu güçlü duruma farklı tahliller getirmek zorunda, ki bu da vakit (ve haliyle para) isteyen bir şey.
Uygun tahlil bulunmadığı takdirde oyuncuların, anlık takılmalara maruz kalması kaçınılmaz olur. “Shader stutter” ismi verilen bu durum, bilhassa Unreal Engine 4 oyunlarında karşılaştığımız bir şey. İşlemci, kendi tarafında o kadar fazla shader hesaplaması yapıyor ki, ekrandaki değişime yetişemez oluyor ve ekran kartı, gereken shader hesaplamaları ortada olmadığı için sahneyi yenileyemiyor ve takılma gerçekleşiyor. Bu sorun, işlemcinin çoklu çekirdek kullanmaması meselesinin da bir yansıması aslında.
İşlemci Çoklu Çekirdekleri
Yeni jenerasyon konsollarda da artık çoklu çekirdeğe sahip işlemciler var; lakin her oyun hala bu avantajı büsbütün kullanacak halde geliştirilmiyor. Buna, konsol odaklı geliştirilen bir oyunun tüm çekirdekleri kullanmasını gerektiren bir durum olmamasını neden olarak verebiliriz. Lakin bu yüzden konsolda meselesiz çalışan bir oyun PC’ye portlandığında işlemcinin yalnızca muhakkak bir yüzdesi çalışır oluyor. Bu durumu düzeltmek için olağan ki tekrar ekstra kodlama, münasebetiyle efor ve vakte gerek oluyor.
Gotham Knights’ın en yüsek ile en düşük grafik ayarları ortasında yalnızca 6 FPS fark olmasının sebebi CPU kullanımı. Kaynak: Digital Foundry
Eğer bu yapılmazsa, işte shader hesaplamaları üzere bir senaryo ortaya çıkıyor ve ekran kartı ne kadar güçlü olursa olsun, işlemciden istenen süratte karşılık gelmediği için oyun makus performans veriyor. Hem ekran kartı hem de işlemci tam performansını kullanamıyor bu durumda.
RAM (Hafıza) Mimarisi Farklılığı
Belki bu yeni bir şey değil fakat konsollarda, PC’nin bilakis, tek bir RAM alanı bulunuyor. PC’de ise ekran kartının başka (VRAM), sistemin başka (RAM) hafızası bulunur. Ve birçok PC sistemi için toplam hafıza alanının konsollara nazaran daha fazla olduğunu rahatlıkla söyleyebiliriz. Konsol odaklı geliştirilen bir oyun PC’ye portlandığında aslında avantajlı bir pozisyona geçmiş oluyor hafıza manasında. Lakin bu avantajı kullanmak için yeniden buna uygun kod yazmış olmak gerekiyor. Ve kestirim edin bu ne gerektiriyor? Vakit ve para.
Yazılımsal Dertler
Yukarıda bahsettiğimiz tüm bu optimizasyon tahlilleri aslında API’lar aracılığıyla gerçekleşiyor. API’lar, bu husus özelinde tanımlamak gerekirse, geliştiricilerin donanımı daha kolay biçimde yönetmesini sağlayan yazılım hizmetleridir. API’lar da bir yazılımdır ve geliştiricilerin daha az kod yazmasını sağlar.
Star Wars: Jedi Survivor’daki FSR seçeneği oyunu önemli manada bulanıklaştırıyor. Kaynak: Digital Foundry
PC tarafında hatırı sayılır yazılım tahlilleri var. Grafik programlama özelinde, Windows’ta bilhassa DirectX, OpenGL, Vulkan kullanılıyor. Ve bu yazılımlar, her yeni versiyonda farklılaşıyor. Yeni bir ekran kartı serisi, bu versiyonları destekleyerek ve tahminen de o versiyonda daha âlâ çalışarak piyasaya çıkıyor. Ortalama bir AAA oyun geliştirme mühletinin 5 sene olduğunu düşünürsek, yalnızca bu süreçte bile NVIDIA iki nesil ilerlemiş oluyor. Bu da daha fazla iş demek oluyor PC tarafında. Piyasada yeni API’ları bilen geliştiricileri bulmak da güç olduğundan ortaya sancılı bir süreç çıkmış oluyor.
Kapanış
PC portlarının şanssız mukadderatı aslında uzun müddettir bu türlü. 90’larda da konsolların farklı mimariye sahip olmasından dolayı çok sayıda makus PC portları görüldü. Lakin o vaktin geliştiricileri artık oyun geliştirmiyor ve yatırımcı baskısı altındaki bugünün firmaları yoğurdu üfleyerek yemiyor. Bu makus talih ne vakit değişir pek bilinmez lakin son aylardaki, tüketiciye hakaret denilecek düzeydeki PC portlarının önüne geçilmesi için tahminen de ulusal manada regülasyonlara gereksinim var.