Bilgi Paylaşımı

Oyunların PC Portları Neden Makus 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 kederler 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 biçimde düzenlenir. Öteki firmalar ise tam aksisi, evvel konsollara akabinde PC’ye geliştirme yapar, ki günümüz AAA oyunlarında gördüğümüz trend de bu istikamette.

Bunun bu halde 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 kesiminden sayısız kombinasyon çıkarmak mümkün. Bu da her bir kombinasyon için başka (ve önemli emek isteyen) bir iş manasına geliyor. Firmaların önceliği, geliştirme sürecini olabildiğince kısa tutmak istemelerinden dolayı, doğal 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 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ı probleminin 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 formda geliştirilmiyor. Buna, konsol odaklı geliştirilen bir oyunun tüm çekirdekleri kullanmasını gerektiren bir durum olmamasını neden olarak verebiliriz. Fakat bu yüzden konsolda meselesiz çalışan bir oyun PC’ye portlandığında işlemcinin yalnızca belli bir yüzdesi çalışır oluyor. Bu durumu düzeltmek için doğal ki yeniden 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 yanıt gelmediği için oyun makûs 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 ancak 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 iddia 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 uygun çalışarak piyasaya çıkıyor. Ortalama bir AAA oyun geliştirme müddetinin 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 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.

Daha Fazla Göster

Benzer Paylaşımlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu