Oyunların PC Portları Neden Berbat Durumda?

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 halde çı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 yanlışsız da olur.Ancak buzdağının görünmeyen tarafında teknik kaygılar azımsanmayacak kadar fazla ve bu yazıda bu teknik kaygılara odaklanacağız.

Vizyon Sancıları

Her şeyden evvel, her oyunun birebir 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 formda geliştirirler. Akabinde bu versiyon, konsollara uyumlu olacak formda düzenlenir. Diğer firmalar ise tam karşıtı, 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 formda 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ı, olağan 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 problemlerden 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 belgeleri 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 şiddetli 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ı sıkıntısının 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 biçimde geliştirilmiyor. Buna, konsol odaklı geliştirilen bir oyunun tüm çekirdekleri kullanmasını gerektiren bir durum olmamasını neden olarak verebiliriz. Ancak bu yüzden konsolda problemsiz ç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 alışılmış ki tekrar ekstra kodlama, hasebiyle 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 berbat 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 tersine, tek bir RAM alanı bulunuyor. PC’de ise ekran kartının farklı (VRAM), sistemin farklı (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 varsayım 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 bahis özelinde tanımlamak gerekirse, geliştiricilerin donanımı daha kolay formda 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 sıkıntı olduğundan ortaya sancılı bir süreç çıkmış oluyor.

Kapanış

PC portlarının şanssız yazgısı aslında uzun müddettir bu türlü. 90’larda da konsolların farklı mimariye sahip olmasından dolayı çok sayıda makûs 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.

Oyun Haberleri

Gönderiliyor
Kullanıcı oyu
0 (0 Oy)