Modern oyun fizikleri neden bu kadar kötü?

UserYeni

Centipat
Katılım
27 Ekim 2022
Mesajlar
154
Daha fazla  
Cinsiyet
Erkek
Çoğu oyuncun oyunların fiziklerinin uzun bir süredir gelişmediğini hatta kötüye bile gittiğini fark edip bunun sebebini anlamaya çalışmıştır. Red faction 2001'de, Half-Life 2 2004'te çıkmasına rağmen arada geçen bu kadar zamanda oyunlardaki fiziklerin neden beklendiği gibi gelişmediğini araştırırken bu konu hakkında çok güzel bir Reddit gönderisi buldum ve çevirisini yapıp paylaşmam gerektiğini düşündüm.

Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

Soru şu şekilde sorulmuş:
"Yakın zamanda Half-Life 2'yi ve iki bölümünü bitirdim ve eski olmalarına rağmen, oyunların fizik bölümleri son derece eğlenceliydi ve iyi işlenmişlerdi. Net bir şekilde hatırladığım bölümlerden biri, zombilere fırlatmak için testere bıçaklarını ve gaz tanklarını alabildiğiniz HL2'nin ravenholm bölü müydü? Bir de vincin ve depolama konteynerlerinin olduğu bölüm vardı.
Bu üç oyunu oynadıktan sonra, fizik motoru nedeniyle çok " canlı " hissettirdiklerini de fark ettim. Modern oyunlar ise, hareket eden tek şeyin karakterler olması nedeniyle oldukça durağan hissettiriyor. HL2'ye benzer bir his uyandıran yakın tarihli tek oyun Crysis oyunları, özellikle de 2 ve 3'te fizik özellikleri azaltıldığından ilki.
Neden HL2 gibi daha fazla sayıda fizik tabanlı oyun olmadığını düşünüyorsunuz?"
Bu soruya da gelen cevap oldukça bilgilendirici:

Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

"Merhaba, video oyunları için profesyonel fizik programcısı olarak buradayım. Temel olarak, fizik simülasyonlarının doğasında bulunan karmaşıklıktan kaynaklanan nedenler başlıca birkaç noktaya indirgenebilir. Karmaşıklık, simülasyonun öngörülemez olma potansiyeline sahip olmasına ve geliştirme, performans ve oyuncu deneyiminde öngörülemeyen sonuçlara yol açması anlamına gelir. İkinci örnek için, HL2 örneğini ele alalım ve gidip hızlandırılmış bir gösterimini izleyelim. Kullanılan sert cisim fiziği ihlallerinin miktarı şaşırtıcıdır ve şüphesiz oyunu pek çok beklenmedik şekilde bozmaktadırlar. Geliştiriciler genel olarak oyunlarında bu tür şeylerden kaçınmaya çalışırlar. Buna ilaveten, fizikler zordur. Sıfırdan AAA kalitesinde bir fizik motoru yazmış olan herkese sorun, size aynı şeyi söyleyeceklerdir. Sadece kodda değil, içerikte de pek çok farklı şekilde yanlış gidebilecek pek çok şey vardır ve tüm bu kötü şeylerin olmasını engelleyen herhangi bir fizik motoru olduğunu sanmıyorum. Görünüşte "basit" bir görevi yerine getirmek için bir fizik motoru kullanmaya çalışan herhangi birine sorun, büyük olasılıkla size hesaba katmak zorunda oldukları şeyin on farklı şekilde bozulabileceği / bozulduğu söyleyebileceklerdir. "fiziksel tabanlı" oyun mekanikleri söz konusu olduğunda genellikle hile yapmak daha kolaydır. Fizik öngörülemez olabilir ve oyuncular genellikle olayların bekledikleri gibi gerçekleşmesini isterler.

Bu da bizi başka bir noktaya götürüyor. Oyunlardaki fizikle ilgili özellikler genellikle oldukça zaman tüketir. Bir karakterin ragdoll'unun bile prodüksiyon kalitesine ulaşması 20 veya 30 saat sürebilir. Ayrıca, farklı bir donanıma sahip her karakter için farklı bir ragdoll öğesinin ayarlanması gerekecektir. Buna oyunlarda sıklıkla beklenen kumaş veya diğer fiziksel olarak yönlendirilen karakter öğeleri (zincirler, saçlar vb.) Gibi diğer "standart" özellikler de eklendiğinde, genellikle oynanış üzerinde çok fazla etkisi olmayan bu basit, "standart" özellikler için potansiyel olarak binlerce çalışma saatinin gerekli olduğu ortaya çıkıyor. Bu da çoğu zaman idealin altında ayarlanmış fiziklerden kaçtığımız anlamına geliyor. Örnek olarak, SFV'deki karakterlerin dinamik kısımlarına yakından bakın. Aslında biraz titriyorlar ve kırpışıyorlar, ancak bunlar genellikle kabul edilebilir yapaylıklar olarak değerlendiriliyor. Oyuncunun inşa ettiği ve bir üst seviyeye tırmanmak için kullandığı bir kutu yığınındaki titreme, yığının düşmesine ve ilerlemeyi engellemesine neden olabileceğinden kabul edilebilir değildir. Bu nedenle, kısıtlayıcı çözücünün bu kutuları sabit tutmak için yeterince yinelediğinden, bu kutulardan herhangi birinin tünel açarak oyun alanından çıkmasının ve ilerlemeyi engellemesinin veya meydana gelebilecek diğer sorunların mümkün olmadığından emin olmak için bir dizi şeyi test etmek için fazladan zaman harcanıyor. Yani, şimdi tekrar hile yapmaya dönüyoruz. Kutuları dinamik yapmayın. Onları kinematik hale getirin, yere bırakıldıklarında/tutulduklarında herhangi bir şeye çarpmadıklarından emin olmak için bazı temel çarpışma testleri yapın ve zaten kırılmış milyonlarca başka şey olduğu için kırılabilecek milyonlarca şey hakkında endişelenmeyi atlayın.

Sonraki konu ise ağ oluşturma. Bu tüm oyunlar için geçerli değildir ancak yine de belirtilmesi gereken önemli bir noktadır. Ağ kurmak zordur. Fiziksel olarak simüle edilen nesnelerin istemciler arasında eşitliği koruduğundan emin olmak da zordur. Ve biraz pahalı olabilir. Örneğin crackdown 3'e ve imha yöntemlerine bakın. Çok oyunculu oyunlarda yıkımı bulut üzerinden hesaplamak için geliştirdikleri teknoloji kesinlikle harika. Bununla birlikte, yalnızca hesaplama açısından pahalı olmakla kalmıyor, aynı zamanda sunucu ek yükü de var, bu da artık oturum başına 1 iş parçacığı olmadığı için tüm çok oyunculu oturumlar için yeterli sayıda sunucunun bakımında ekstra maliyetlere neden oluyor. Dolayısıyla bu, sektörde yer almayan pek çok kişinin düşünmediği bir noktadır. Özel birçok oyunculu sunucu ne kadar hafif olursa, tek bir CPU tarafından çalıştırılabilecek o kadar çok sunucu olur. Eğer özel sunucu sadece 1 iş parçacığı ile çalışabiliyorsa, o zaman bir hesaplama sunucusu maliyetine n sayıda oturum çalıştırabilirsiniz, burada n çalıştırılabilecek iş parçacığı sayısıdır. Diyelim ki çok oyunculu sunucuyu çalıştıran bilgisayarın 64 iş parçacığı var. Bu tek bilgisayar 64 çok oyunculu örneği çalıştırabilir. Ancak çalıştırmak için 2 iş parçacığına ihtiyaç duyan özel bir sunucu, aynı bilgisayarda yalnızca 32 örneğe sahip olabilir. Şimdi, aynı sayıda oturuma ev sahipliği yapmak için iki kat daha fazla bilgisayara ihtiyacınız var. Artık yayıncı/geliştirici/birisi bu ekstra bilgisayar için ödeme yapmak durumundadır. Dolayısıyla, oyununuzun temel pazarlama noktası "hadi fizik kullanarak bir şehri yok edelim" değilse, bir grup işlemci gücünü böyle bir özelliğe ayırmak pek mantıklı değildir, çünkü bu işlemci gücünü oyunun temeliyle daha fazla ilgili olan diğer özelliklerden çalacaktır. Bu, "yapabiliyoruz diye illa yapmalıyız anlamına gelmez" düşüncesidir.

Bu da bir başka önemli husus. "yapabiliyoruz diye, yapmalıyız anlamına gelmez." hususu. Diyelim ki oyunumuzdaki bütün duvarları havaya uçurabiliyoruz. Bu fizik için aşırı zor bir özellik değil (tabii ki göreceli olarak). Ancak artık bir duvarı havaya uçurabilmenin diğer oyun sistemleri üzerinde bir etkisi olacaktır. Örneğin yapay zekanın artık patlatılan duvarın içinden geçebilmesi gerekiyor. Ağ oluşturma, havaya uçurulan duvarın oturumdaki diğer tüm insanlara kopyalanması gerektiği anlamına geliyor. Render için, artık o duvar için ışıklandırma yapamayız çünkü artık orada olmayabilir. Bu duvar yok edildiğinde performans düşer çünkü dinamik nesnelerin sayısı artar, ağ trafiği artar ve render maliyeti artar. O duvarı yıkmak için harcadığınız tüm çabaya gerçekten değer mi? Oyunumuz, oyunun temel dayanaklarından birini yerine getirmek için o duvarı havaya uçurabilmenize ihtiyaç duyuyor mu? Hayır mı? O zaman buna değmez.

Yani, kısacası, oyununuzun tasarımının temel unsurlarından biri "fiziksel güdümlü..." değilse, beklenen diğer tüm fiziksel güdümlü şeylerin üzerine bir de bu kadar uğraşmaya değmez. Fantastic contraption, Angry Birds ve goat Simulator gibi fizik tabanlı oyunlar hala var. Bununla birlikte, "fizik tabanlılık" temel bir mekanizma olmadığı zaman, fizik öğelerini estetik tutmak ve oynanışa çok fazla etki etmemek genellikle daha iyidir."
 
Son düzenleme:
Çoğu oyuncun oyunların fiziklerinin uzun bir süredir gelişmediğini hatta kötüye bile gittiğini fark edip bunun sebebini anlamaya çalışmıştır. Red faction 2001'de, Half-Life 2 2004'te çıkmasına rağmen arada geçen bu kadar zamanda oyunlardaki fiziklerin neden beklendiği gibi gelişmediğini araştırırken bu konu hakkında çok güzel bir Reddit gönderisi buldum ve çevirisini yapıp paylaşmam gerektiğini düşündüm.

Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

Soru şu şekilde sorulmuş:
"Yakın zamanda Half-Life 2'yi ve iki bölümünü bitirdim ve eski olmalarına rağmen, oyunların fizik bölümleri son derece eğlenceliydi ve iyi işlenmişlerdi. Net bir şekilde hatırladığım bölümlerden biri, zombilere fırlatmak için testere bıçaklarını ve gaz tanklarını alabildiğiniz HL2'nin ravenholm bölü müydü? Bir de vincin ve depolama konteynerlerinin olduğu bölüm vardı.
Bu üç oyunu oynadıktan sonra, fizik motoru nedeniyle çok " canlı " hissettirdiklerini de fark ettim. Modern oyunlar ise, hareket eden tek şeyin karakterler olması nedeniyle oldukça durağan hissettiriyor. HL2'ye benzer bir his uyandıran yakın tarihli tek oyun Crysis oyunları, özellikle de 2 ve 3'te fizik özellikleri azaltıldığından ilki.
Neden HL2 gibi daha fazla sayıda fizik tabanlı oyun olmadığını düşünüyorsunuz?"
Bu soruya da gelen cevap oldukça bilgilendirici:

Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

"Merhaba, video oyunları için profesyonel fizik programcısı olarak buradayım. Temel olarak, fizik simülasyonlarının doğasında bulunan karmaşıklıktan kaynaklanan nedenler başlıca birkaç noktaya indirgenebilir. Karmaşıklık, simülasyonun öngörülemez olma potansiyeline sahip olmasına ve geliştirme, performans ve oyuncu deneyiminde öngörülemeyen sonuçlara yol açması anlamına gelir. İkinci örnek için, HL2 örneğini ele alalım ve gidip hızlandırılmış bir gösterimini izleyelim. Kullanılan sert cisim fiziği ihlallerinin miktarı şaşırtıcıdır ve şüphesiz oyunu pek çok beklenmedik şekilde bozmaktadırlar. Geliştiriciler genel olarak oyunlarında bu tür şeylerden kaçınmaya çalışırlar. Buna ilaveten, fizikler zordur. Sıfırdan AAA kalitesinde bir fizik motoru yazmış olan herkese sorun, size aynı şeyi söyleyeceklerdir. Sadece kodda değil, içerikte de pek çok farklı şekilde yanlış gidebilecek pek çok şey vardır ve tüm bu kötü şeylerin olmasını engelleyen herhangi bir fizik motoru olduğunu sanmıyorum. Görünüşte "basit" bir görevi yerine getirmek için bir fizik motoru kullanmaya çalışan herhangi birine sorun, büyük olasılıkla size hesaba katmak zorunda oldukları şeyin on farklı şekilde bozulabileceği / bozulduğu söyleyebileceklerdir. "fiziksel tabanlı" oyun mekanikleri söz konusu olduğunda genellikle hile yapmak daha kolaydır. Fizik öngörülemez olabilir ve oyuncular genellikle olayların bekledikleri gibi gerçekleşmesini isterler.

Bu da bizi başka bir noktaya götürüyor. Oyunlardaki fizikle ilgili özellikler genellikle oldukça zaman tüketir. Bir karakterin ragdoll'unun bile prodüksiyon kalitesine ulaşması 20 veya 30 saat sürebilir. Ayrıca, farklı bir donanıma sahip her karakter için farklı bir ragdoll öğesinin ayarlanması gerekecektir. Buna oyunlarda sıklıkla beklenen kumaş veya diğer fiziksel olarak yönlendirilen karakter öğeleri (zincirler, saçlar vb.) Gibi diğer "standart" özellikler de eklendiğinde, genellikle oynanış üzerinde çok fazla etkisi olmayan bu basit, "standart" özellikler için potansiyel olarak binlerce çalışma saatinin gerekli olduğu ortaya çıkıyor. Bu da çoğu zaman idealin altında ayarlanmış fiziklerden kaçtığımız anlamına geliyor. Örnek olarak, Sfv'deki karakterlerin dinamik kısımlarına yakından bakın. Aslında biraz titriyorlar ve kırpışıyorlar, ancak bunlar genellikle kabul edilebilir yapaylıklar olarak değerlendiriliyor. Oyuncunun inşa ettiği ve bir üst seviyeye tırmanmak için kullandığı bir kutu yığınındaki titreme, yığının düşmesine ve ilerlemeyi engellemesine neden olabileceğinden kabul edilebilir değildir. Bu nedenle, kısıtlayıcı çözücünün bu kutuları sabit tutmak için yeterince yinelediğinden, bu kutulardan herhangi birinin tünel açarak oyun alanından çıkmasının ve ilerlemeyi engellemesinin veya meydana gelebilecek diğer sorunların mümkün olmadığından emin olmak için bir dizi şeyi test etmek için fazladan zaman harcanıyor. Yani, şimdi tekrar hile yapmaya dönüyoruz. Kutuları dinamik yapmayın. Onları kinematik hale getirin, yere bırakıldıklarında/tutulduklarında herhangi bir şeye çarpmadıklarından emin olmak için bazı temel çarpışma testleri yapın ve zaten kırılmış milyonlarca başka şey olduğu için kırılabilecek milyonlarca şey hakkında endişelenmeyi atlayın.

Sonraki konu ise ağ oluşturma. Bu tüm oyunlar için geçerli değildir ancak yine de belirtilmesi gereken önemli bir noktadır. Ağ kurmak zordur. Fiziksel olarak simüle edilen nesnelerin istemciler arasında eşitliği koruduğundan emin olmak da zordur. Ve biraz pahalı olabilir. Örneğin crackdown 3'e ve imha yöntemlerine bakın. Çok oyunculu oyunlarda yıkımı bulut üzerinden hesaplamak için geliştirdikleri teknoloji kesinlikle harika. Bununla birlikte, yalnızca hesaplama açısından pahalı olmakla kalmıyor, aynı zamanda sunucu ek yükü de var, bu da artık oturum başına 1 iş parçacığı olmadığı için tüm çok oyunculu oturumlar için yeterli sayıda sunucunun bakımında ekstra maliyetlere neden oluyor. Dolayısıyla bu, sektörde yer almayan pek çok kişinin düşünmediği bir noktadır. Özel birçok oyunculu sunucu ne kadar hafif olursa, tek bir CPU tarafından çalıştırılabilecek o kadar çok sunucu olur. Eğer özel sunucu sadece 1 iş parçacığı ile çalışabiliyorsa, o zaman bir hesaplama sunucusu maliyetine n sayıda oturum çalıştırabilirsiniz, burada n çalıştırılabilecek iş parçacığı sayısıdır. Diyelim ki çok oyunculu sunucuyu çalıştıran bilgisayarın 64 iş parçacığı var. Bu tek bilgisayar 64 çok oyunculu örneği çalıştırabilir. Ancak çalıştırmak için 2 iş parçacığına ihtiyaç duyan özel bir sunucu, aynı bilgisayarda yalnızca 32 örneğe sahip olabilir. Şimdi, aynı sayıda oturuma ev sahipliği yapmak için iki kat daha fazla bilgisayara ihtiyacınız var. Artık yayıncı/geliştirici/birisi bu ekstra bilgisayar için ödeme yapmak durumundadır. Dolayısıyla, oyununuzun temel pazarlama noktası "hadi fizik kullanarak bir şehri yok edelim" değilse, bir grup işlemci gücünü böyle bir özelliğe ayırmak pek mantıklı değildir, çünkü bu işlemci gücünü oyunun temeliyle daha fazla ilgili olan diğer özelliklerden çalacaktır. Bu, "yapabiliyoruz diye illa yapmalıyız anlamına gelmez" düşüncesidir.

Bu da bir başka önemli husus. "yapabiliyoruz diye, yapmalıyız anlamına gelmez." hususu. Diyelim ki oyunumuzdaki bütün duvarları havaya uçurabiliyoruz. Bu fizik için aşırı zor bir özellik değil (tabii ki göreceli olarak). Ancak artık bir duvarı havaya uçurabilmenin diğer oyun sistemleri üzerinde bir etkisi olacaktır. Örneğin yapay zekanın artık patlatılan duvarın içinden geçebilmesi gerekiyor. Ağ oluşturma, havaya uçurulan duvarın oturumdaki diğer tüm insanlara kopyalanması gerektiği anlamına geliyor. Render için, artık o duvar için ışıklandırma yapamayız çünkü artık orada olmayabilir. Bu duvar yok edildiğinde performans düşer çünkü dinamik nesnelerin sayısı artar, ağ trafiği artar ve render maliyeti artar. O duvarı yıkmak için harcadığınız tüm çabaya gerçekten değer mi? Oyunumuz, oyunun temel dayanaklarından birini yerine getirmek için o duvarı havaya uçurabilmenize ihtiyaç duyuyor mu? Hayır mı? O zaman buna değmez.

Yani, kısacası, oyununuzun tasarımının temel unsurlarından biri "fiziksel güdümlü..." değilse, beklenen diğer tüm fiziksel güdümlü şeylerin üzerine bir de bu kadar uğraşmaya değmez. Fantastic contraption, Angry Birds ve goat Simulator gibi fizik tabanlı oyunlar hala var. Bununla birlikte, "fizik tabanlılık" temel bir mekanizma olmadığı zaman, fizik öğelerini estetik tutmak ve oynanışa çok fazla etki etmemek genellikle daha iyidir."

Bu kadar yazıyı yazdıysanız, elinize sağlık. Çünkü ben okuyamadım.
bu kadar metni kontrol ettimi gerçekten modlar
 

Yeni konular

Geri
Yukarı