Alan Wake 2’de Northlight teknolojisi
(remedygames.com)- Remedy’nin Northlight ekibi, Alan Wake 2 için motor mimarisinden render’a kadar temel teknolojileri yeniden geliştirdi veya büyük ölçüde elden geçirerek daha büyük ve daha karmaşık dünyaları işleyebilecek bir temel hazırladı
- Yeni ECS tabanlı oyun nesnesi modeli, bellek verimliliğini ve güvenli paralel yürütmeyi artırarak farklı CPU çekirdek sayılarına sahip donanımlarda daha dinamik dünyaların kurulmasını mümkün kılıyor
- Voxel tabanlı karakter kontrolcüsü ve animasyon tabanlı NPC hareketi, dar ve karmaşık alanlarda bile karakterlerin doğal hareket etmesine yardımcı olurken, Scattering aracı yoğun bitki örtüsü üretimini destekliyor
- Render tarafı, GPU güdümlü pipeline ile mesh shader, meshlet culling, GPU tabanlı bitki örtüsü animasyonu, HDR ve MBOIT şeffaf render sayesinde daha fazla geometri ile sis ve şeffaflık efektini işleyebiliyor
- PC sürümü, donanım yapılandırması izin verdiğinde DLSS Frame Generation, DLSS Ray Reconstruction ve Path Traced Indirect Lighting kullanarak Control’e kıyasla daha doğru ve daha sağlam ray tracing sunuyor
Northlight motoru ve oynanış temelli teknolojiler
- Alan Wake 2 geliştirme sürecinde Northlight, tamamen yeni bir veri odaklı oyun nesnesi çerçevesine geçti
- Yeni model, entity component system (ECS) temelli
- ECS, bellek açısından verimli depolama ile verimli ve güvenli paralel yürütmeyi mümkün kılıyor
- Hedef donanımlardaki farklı çekirdek sayılarını verimli biçimde destekleyerek daha büyük, daha dinamik ve daha zengin dünyalar oluşturulmasını sağlıyor
- Büyük ölçekli bitki örtüsü yerleşimi için kullanılan Scattering aracı da ECS’nin avantajlarından yararlanıyor
- Dünyaya daha fazla entity yerleştirilebiliyor
- Nesne dağıtımı için ayrı bir özel çözüm oluşturma ihtiyacı azalıyor
- Oynanış uygulamalarında da ECS yineleme hızını artırıyor
- Saga’nın kanıt topladığı görsel hikâye panosu olan Case Board bununla hayata geçirildi
- Yeni sistemler veya oyun nesneleri eklemek ve değiştirmek kolaylaştı
- Case Board kaydetme ve yüklemede performans artışı görüldü
Karakter kontrolü ve NPC hareketi
- Alan Wake 2, Northlight’ın karakter kontrol sistemini yeniden tasarlamasına yol açan bir yapım oldu
- Yeni voxel tabanlı karakter kontrolcüsü, dar, karmaşık ve dinamik ortamlarda akıcı navigasyonu mümkün kılıyor
- Karakter hareketleri daha doğal ve akışkan hale geliyor
- Özellikle dar alanlarda karakterlerin nesnelere çarpması veya sıkışması sorununu azaltmaya odaklanıyor
- NPC hareketi de büyük ölçüde elden geçirildi
- Tüm NPC’ler, animasyon tabanlı hareketi yeni mesafe tabanlı Motion Matching ile birlikte kullanıyor
- Hareket kalitesi yükselirken, animasyonların ne zaman ve nasıl kullanılacağı daha iyi kontrol edilebiliyor
Rüzgâr, bitki örtüsü ve betikleme araçları
- Alan Wake 2’deki gerçekçi rüzgâr; fizik, partikül ve kumaşı etkiliyor
- Oyun tasarımcıları iç ve dış mekân alanları için farklı rüzgâr hızlarını kolayca tanımlayabiliyor
- İki alan arasındaki geçişler yumuşak ve durum tutmayan bir şekilde gerçekleşiyor
- Saga ve Casey’nin bindiği aracın içine hareketli bir wind box uygulanarak araç içi rüzgârsız bir iç mekân alanı olarak tanımlanıyor
- Rüzgâr sistemi, Signed Distance Fields(SDF) yaklaşımı üzerine kurulu
- wind box, yumuşak bir küresel rüzgâr şiddeti alanı tanımlayan primitive olarak kullanılıyor
- Her bölgenin rüzgâr gücünü belirleyen temel yapı taşı gibi çalışarak iç ve dış mekân arasındaki rüzgâr desenlerini yumuşatıyor
- Yeni Scattering aracı, büyük ölçekli bitki örtüsü ve çevresel prop üretimi için geliştirildi
- Alan Wake 2’nin daha sık, daha zengin ve daha canlı çevrelerini oluşturmakta kullanıldı
- Öncekine göre daha uzun görüş mesafesi (draw distance) ile birlikte kullanılarak oyuncuların daha uzaktaki nesne ve detayları görmesini sağlıyor
- Betik dili, şirket içi bir dilden Roblox’un Lua’dan türettiği gömülü betik dili Luau’ya geçirildi
- Luau, motorun geniş işlevlerini açığa çıkarıyor ve canlı düzenlemeyi destekliyor
- Seviye betikleme ve silah yükseltme sistemi gibi çeşitli oynanış sistemlerinde kullanılıyor
- Oyun ekibi, motor programcılarından yardım almadan farklı oyun özelliklerini ve VFX efektlerini prototipleyip uygulayabildi
- Remedy, kendi VS Code language server eklentisini geliştirip bunu geliştirme pipeline’ına entegre etti
- Luau’ya geçişle artık bakım gerektirmeyen yaklaşık 80.000 satır kod kaldırıldı
GPU merkezli render ve bitki örtüsü animasyonu
- Alan Wake 2, Northlight’ın yeni GPU güdümlü render pipeline’ını sergiliyor
- Performanstan ödün vermeden dünyaya daha fazla geometri eklenebiliyor
- Mesh shader kullanan GPU güdümlü render ile tek piksel hassasiyetinde occlusion culling yapılabiliyor
- Sahnedeki tüm öğeler occluder olarak kullanılabiliyor
- Yalnızca görünür olanı çizme yeteneği sayesinde Alan Wake 2’nin dünyası önceki yapımlara kıyasla daha fazla geometrik ayrıntı barındırıyor
- Render pipeline, mesh’lerin yanı sıra meshlet’leri de culling işleminden geçiriyor
- Meshlet, bir mesh’ten çıkarılan daha küçük ve optimize edilmiş üçgen grubu
- Cauldron Lake’teki market konumu örneğinde meshlet yapısı görülebiliyor
- Geniş ilkel orman ortamı, yeni shader tabanlı bitki örtüsü sistemi ile oluşturuldu
- Bu sistem, tamamen GPU üzerinde çalışan yeni bir skinning sistemi temelli
- Sanatçı yönlendirmeli bone shader animasyonunu destekliyor
- Alan Wake 2’de çevrede görülen tüm bitki örtüsünde karakter tarzı rig’lerin kullanılmasına imkân tanıyor
- Bone shader, sanatçıların doğrudan shader kodu yazıp bunu temel sisteme bağlayabilmesini sağlayan bir API sunuyor
- Yalnızca bitki örtüsünde değil, su üstünde sallanan nesneler veya rüzgârda salınan elektrik kabloları gibi alanlarda da teknik olarak uygulanabiliyor
- Cauldron Lake’te her karede neredeyse 300.000 bone işleniyor
HDR, şeffaf render, VFX ve ray tracing
- Alan Wake 2, HDR desteğini tam olarak sunuyor
- Varsayılan ayarlar bile hem SDR hem HDR ekranlarda iyi görünecek şekilde ayarlandı
- HDR desteği, tone mapping için yeni bir yaklaşım gerektirdi
- Renk düzenleme, gerçek bir colorist tarafından HDR referans alınarak yapıldı; böylece hem HDR hem SDR’de oyunun özgün sanat tarzı, atmosferi ve hikâye anlatımı korunabildi
- Yoğun sis sahneleri, şeffaf render iyileştirmeleri üzerine kurulu
- Northlight, Alan Wake 2 geliştirilirken şeffaf render sistemini tamamen elden geçirdi
- MBOIT(Moment-Based Order-Independent Transparency) kullanılarak farklı ayrıntı seviyelerine sahip şeffaf yüzeylerin sorunsuz biçimde karışması sağlanıyor
- Şeffaf öğeler üç farklı çözünürlükte MBOIT ile çiziliyor
- Sis, şeffaf geometri ve efektler kesintisiz biçimde harmanlanabiliyor
- Dünyadaki sis yerleşimini daha hassas kontrol etmeye yönelik pipeline da iyileştirildi
- Piksel düzeyinde şeffaf aydınlatma ile sisten etkilenen yansımalar birleştirilerek opak ve şeffaf öğelerin önceki projelere göre daha iyi uyum sağlaması mümkün oldu
- Sis, çoklu ışık saçılımını yaklaşık olarak hesaplayarak kalın ve gerçekçi bir atmosfer oluşturuyor
- Northlight’ın düğüm tabanlı VFX aracı, desteklenen özellikler ve çalışma zamanı performansı açısından ciddi biçimde gelişti
- VFX sanatçıları yağmur, ıslaklık, su simülasyonu ve karakter yaraları gibi karmaşık ve dinamik efektler üretebiliyor
- VFX aracı da GPU güdümlü render’ın avantajlarından yararlanarak GPU üzerinden çok sayıda geometriyi işleyebiliyor
- Örneğin iç mekânlarda veya örtü altında yağmurun görünmemesi için dinamik maskeye rain blocker nesneleri render ederken kullanılıyor
- Ray tracing, tam ray-traced direct lighting desteği sunuyor
- Nvidia ile birlikte geliştirilmiş gürültü giderme ve dolaylı aydınlatma algoritmaları birleştiriliyor
- Alan Wake 2’deki ray tracing, Control’de görülene göre daha doğru ve daha sağlam
- Tüm bitki örtüsü geometrisi skinning ile üretildiği ve simüle edildiği için, ray tracing animasyonlu bitki örtüsünü daha iyi gösteriyor
- PC oyuncuları, GPU ve CPU yapılandırmaları elverdiğinde en yeni Nvidia DLSS teknolojilerini kullanabiliyor
-
DLSS Frame Generation
-
DLSS Ray Reconstruction
- Path Traced Indirect Lighting
-
1 yorum
Hacker News görüşleri
Remedy, stüdyonun toplamda yalnızca birkaç yüz kişilik ölçekte olduğu düşünülürse, grafik tarafında sürekli kendi sıkletinin üstünde işler çıkaran bir şirket
Aklıma gelenler arasında, görüntü kalitesi ve performans açısından Unreal, Unity, EA Frostbite gibi büyük motorlarla boy ölçüşebilecek yerler olarak yalnızca Remedy ve CD Projekt Red görünüyor
Bilgisayar grafikleri ya da teknik sanatla ilgileniyorsanız, bunların GDC/SIGGRAPH sunumları harika
Alan Wake 2, teknik olarak şimdiye kadarki en güzel oyunlardan biri ve bence sanatsal olarak da öyle. Tüm ayarları en düşüğe çekseniz bile hâlâ iyi görünmesi gerçek bir başarı; eski donanıma kadar ölçeklenirken aynı zamanda iyi görünmesini sağlamak zor
Yine de Digital Foundry gibi analistlerin dediği gibi, GPU mesh shader desteğine sahip değilse performans çok kötü. Bu yazıda da culling için mesh shader kullanıldığı belirtiliyor; bu sayede kahve kupası ya da lastik gibi nesneleri tamamen yuvarlak yaparken, Cities Skylines 2 performansını mahveden “her NPC’nin ağzında 10 bin poligonluk dişler var” tarzı sorunlardan kaçınılabiliyor. Unreal 5’in Nanite ile sunduğu büyük avantajlardan biri de bu
1993’teki inanılmaz demo Second Reality ile 30 yıl sonraki Alan Wake 2 arasında oldukça net bir çizgi çizilebilir
https://www.youtube.com/watch?v=iw17c70uJes
Performans sorunu, sadece “görünmeyen dişleri render etmekten” çok daha büyük: https://blog.paavo.me/cities-skylines-2-performance/
Örnek olarak anlaşılması kolay ama daha büyük sorunlar LOD eksikliği ve yetersiz culling
CD Projekt Red gelecek işleri için UE5’e geçmiyor mu? Yazık. Cyberpunk gerçekten çok güzeldi ve o motorla yapılmış bir çok oyunculu oyun görmek isterdim
CDPR 1236, Frostbite’ı yapan DICE 714, Epic ise son işten çıkarmalardan önce 2200 kişiydi
Bunların hepsi Wikipedia’ya göre
Modern bilgisayar grafiklerini tanımlayıp yaygınlaştıran insanlar değillerse, GPU’ları sınırına kadar zorlayacak başka kim olurdu?
İlk örnekte bile ayakların zeminde kayması ya da bir nesne tarafından engellenip ileri gidemediği hâlde yerinde yürüyormuş gibi kayması oldukça rahatsız edici
Bu tür sorunlar ne zaman çözülecek merak ediyorum
Tabii motorun kendisi inanılmaz ve görsel efektler ile sistemler şimdiye kadar gördüklerimin en iyileri arasında
RDR2’de animasyonlar çok gerçekçi ama kontrol hissi biraz “yüzer gibi”
Ben kişisel olarak, sola bastığımda ekrandaki karakterin anında sola hareket ettiği çevik hareketi tercih ederim. Daha gerçekçi görünen animasyon sistemleri, ayak animasyonları oyuncu girdisini “yakalayana” kadar gecikme yaratıyor
Ama sürekli raycast ve IK hesaplaması bedava değil; yani performansla takas ediyorsunuz ve tepki verme hissiyle de çatışıyor
Birçok oyun daha hızlı hareketi ve daha duyarlı kontrolü seçiyor. Sonuçta bu teknik olarak yıllardır çözülmüş bir mesele ama oyundaki her tasarım unsuru gibi bu da bir seçim ve ödünleşim meselesi
Naughty Dog dahil birçok yer bunu kullanıyor. Ama diğer yorumlarda dendiği gibi, tepki verme ile animasyon doğruluğu arasındaki temel gerilim hâlâ sürüyor
Northlight’ın önceki oyunu Control’de bu daha azdı [2]
[1] https://youtu.be/jQb07FHJ-bQ?t=628
[2] https://youtu.be/fcDK6tnx4vM?t=6700
Aslında konu, geçişlerin doğal görünmesi için animasyonları harmanlayan bir algoritma hakkındaydı
Bir başka Unreal Engine tabanlı oyun yerine farklı bir şey görmek ferahlatıcı
Kendi şirket içi motoruna sahip olmak inanılmaz derecede zor olmalı; motorun kendisi zaten bir mesele ama seviye, animasyon vb. üretim araçları tarafı belki daha da zor olabilir
Yine de avantajları da vardır herhâlde. Düşük seviye mimari üzerinde daha fazla denetim, daha fazla optimizasyon fırsatı demek. Unreal gibi genel amaçlı motorlarda bu daha zor
Bu oyunu oynamayı dört gözle bekliyorum
Shader compilation yüzünden takılmalar yaşanmasının nedenini hâlâ anlamıyorum ve diğer şirket içi motorların çoğunda böyle bir sorun yok. Bunun neden hâlâ düzeltilmediğini de bilmiyorum. Yarın bir düzeltme güncellemesi gelse bile oyunların bunu kullanması yıllar alacaktır
Arkasında bu kadar büyük topluluklar olan hazır motorlar varken, bunu kendin yapmak için gerçekten tam denetim istemen gerekirdi
Yazının tonunu beğendim
Mesela pazarlama ekibi "karakter her zamankinden daha tepkisel ve daha canlı" derdi ama dahili geliştirme notlarında "karakter dar alanlarda nesnelere çarpmaz veya sıkışıp kalmaz" yazıyor olması kısmını sevdim
Cümlenin tamamı pazarlama, içindeki komedi de pazarlama
Remedy'nin ekosisteminde D dili kullanımı hakkında şimdi ne düşündüğünü merak ediyorum. Hâlâ kullanıyorlarsa AW2 geliştirirken ne tür zorluklar yaşadıklarını da görmek isterim
Referanslar: Using an Emerging Language in Quantum Break (https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdceurope201...)
DConf 2016: Quantum Break: AAA Gaming With Some D Code -- Ethan Watson (https://www.youtube.com/watch?v=7YjLW7anNfc)
Şu an D programcısı aramadıkları ise kesin
Kaynağın izini sürmek istersen başlangıç noktası olarak şu bağlantı işe yarayabilir: https://forum.dlang.org/post/lymybpygzfalbdgoaizr@forum.dlan...
O sunumu yapan kişi artık orada çalışmıyor ve Facebook gibi büyük yerler de D kullanımını bıraktıysa artık kullanmıyorlardır diye düşünüyorum. Yine de yanıldığımın ortaya çıkmasını isterim
O kişi ayrıldığında ya da katkı sunup bakım yapabileceği bir rolden çıktığında, ekibin ve stüdyonun geri kalanından destek ve benimseme yoksa zamanla yerini başka şeyler almaya başlıyor
D ile yazılması için bastıran bir kişinin olduğu söyleniyordu ama hâlâ orada mı bilmiyorum
Unreal Marketplace'te üst düzey içerikler üreten ekiplerden bazılarının bu oyunda da yer aldığını hatırlıyorum
https://mawiunited.com/
Harika içerikler. Bu şekilde UE5 içeriği üreten daha fazla stüdyo çıkmasını isterim
Betik ortamı olarak Roblox'un Luau diline geçmeleri ilginç
Oyun teknolojilerinde neden bu kadar çok yerde betikleme için Lua kullanıldığını hep merak etmişimdir. Özellikle de en baştan tasarlarken bile
C çalışma zamanını kullanabilen her şeye Lua betikleme gömülebilir
Bu yüzden Baldur’s Gate 1'den Warcraft III'e ve Roblox gibi modern yapımlara kadar varsayılan seçenek gibi kullanılageldi
Karakter hareketi hâlâ epey tekinsiz vadi hissi veriyor
"Voxel tabanlı karakter denetleyicisi" videosunda yürüyüş kayıyormuş gibi duruyor, "NPC hareketi" videosunun ilk birkaç saniyesinde de yürüyüş tuhaf görünüyor
Sanırım bunun nedeni her adımın tamamen aynı olması ve hepsinin aynı adım uzunluğunu kullanması. Bu yüzden karakterler rahatsız edecek kadar senkronize hareket ediyor
Videonun ilerleyen kısmında karakterler yürüyüş ve koşu arasında bireysel olarak geçiş yaptığında hareket daha çeşitli görünüyor ve çok daha gerçekçi hissettiriyor. Hareketin ince farklarını genel olarak daha fazla eklemenin neden bu kadar zor olduğunu merak ediyorum
Ama bu noktayı desteklemek gerekirse, dost NPC'lerin neredeyse hepsi yerinde duruyor. Düşman bölgede düşmanlar üstüne gelirken nasıl yürüdüklerine bakmıyorsun, zaten sisin içinde kalıyorlar
Bana kalırsa Control bütün bunların teknoloji demosuydu. Düşman sayısının çok daha az olması ve korku hikâyesi formatında kurulmuş olması da bunu açıklıyor
Yani bunların elinde ECS oyun motoru, AAA seviye bir render sistemi, Nanite benzeri bir teknoloji, Lua tabanlı bir betik motoru ve Hollywood seviyesinde yüz animasyonu mu var?
Motoru piyasaya sürmeleri lazım. Unreal için güçlü bir rakip olabilir. ECS sayesinde daha ölçeklenebilir, Luau ile yazması da daha kolay
Linux'ta oyunu almaya çalışırken bunu acı şekilde öğrendim. O yüzden Unreal ile rekabet ederlerse bu ilişkinin bozulma ihtimali yüksek
Ama iç yazılımı başkalarının kullanacağı bir ürüne dönüştürmek bambaşka bir iş
Remedy'nin meshlet pipeline benimsediği doğru ama ileri düzey render tarafında artık neredeyse ana akım sayılır. Nanite'taki gibi küçücük üçgenleri gerçekten render etmek için compute shader kullandıklarına dair bir ifade görmedim, tabii gözümden kaçmış olabilir
Şimdi de Alan Wake 2'de ray tracing kapalıyken bile High ayarlar ancak çalışıyor
Görsel olarak etkileyici bir motor ama bence sistem gereksinimleri fazla yüksek
Varlık-Bileşen-Sistem (ECS) mimarisi, Bevy[1] gibi yeni açık kaynak oyun motorlarında da kullanılıyor
Uzun zamandır oyun geliştirmesem de, oyunlarda sık gördüğüm ağır ve karmaşık nesne yönelimli yapıyı ortadan kaldıran bir mimariden söz edildiğini duyunca yeniden el atmak istedim
[1]: https://bevyengine.org/
2000'lerin başından itibaren ivme kazanmaya başladı; bugün evrensel olmasa da uzun süredir temel bir yaklaşım gibi kullanılıyor ve bazı açık kaynak motorlarda da durum aynı
Örneğin https://github.com/Adelost/entity-component-systems-study#re... bağlantısına bakılabilir