Gerçekçi fiziğe sahip araçlarla MMO oyunları görmedim ve bu yüksek hıza ulaşabilir, neden? Ağ bant genişliği sınırlamaları nedeniyle mi?
Second Life'ın araçları var, ancak fizik zayıf ve maksimum hız acıklı.
Gerçekçi fiziğe sahip araçlarla MMO oyunları görmedim ve bu yüksek hıza ulaşabilir, neden? Ağ bant genişliği sınırlamaları nedeniyle mi?
Second Life'ın araçları var, ancak fizik zayıf ve maksimum hız acıklı.
Yanıtlar:
Evet ve hayır (ama çoğunlukla hayır).
Herhangi bir MMO oyununun fiziğini etkileyen çeşitli sınırlamaları vardır. Bunlardan en önemlisi gecikmedir . Gecikme, bir istemcinin sunucuya istek göndermesi ve geri yanıt alması gereken zamandır. En iyi koşullarda bile, bu süre yaklaşık 50-100 milisaniyedir. Gerçek dünyada, 500 ms kadar yüksek olabilir. Bu, bir oyuncu her ne zaman (örneğin, arabanın tekerleğini çevirdiğinde) bir şey yaptığında, oyunun ona sadece 100-500 ms sonra tepki verdiğini görebileceği anlamına gelir.
100 ms aslında oldukça fazla. Gecikme süresine sahip herhangi bir oyun yanıt vermeyecek ve 500 ms düpedüz oynanamayacak. Bu nedenle oyun istemcileri bu gecikmeyi maskelemek için birçok püf noktası kullanıyorlar. Örneğin, oyuncunun arabası, sunucuyu beklemeden tekerleği çevirdiği anda dönmeye başlayabilir. Bununla birlikte, bu hileler sadece gecikmeyi maskeler ve asla azaltamaz.
Örneğin, arabalarda aynı anda birbirine doğru iki oyuncumuz olduğunu varsayalım . Her müşteri hemen kendi arabasını çevirmeye başlayacaktır ; ancak diğer oyuncunun arabası dönmeyecektir - çünkü parkur değiştiren bilgileri gecikmeden dolayı henüz müşteriye ulaşmamıştır. Her iki oyuncu da arabalarını mutlu bir şekilde yönlendirir ve sonra bam! - sunucu aslında birbirlerine çarptıklarını fark eder.
Bu gibi durumlar önlenemez. Hangi akıllı tahmin şemalarını kullanırsak kullanın, başka oyuncuların olduğu yerlerde, her zaman bir şeyler ters gitme şansı vardır. Herhangi bir MMO oyununda, henüz gördüğünüz yaklaşık yarım saniye henüz gerçekleşmedi ve her an değişebilir. Şimdi, geleneksel MMORPG'ler gibi daha yavaş oyunlarda, yarım saniye o kadar da uzun değil. Bu süre zarfında karakterler yalnızca bir veya iki metre hareket edebilir. Ancak, hızlı tempolu araba yarışı hakkında konuşursak, yarım saniye gerçekten uzun bir süre! Saniyede üç kez (-8
Aslında, hızlı tempolu bir oyun bu sınırlamalarla bile çalışabilir. Hoş olmayan anları olacaktır, ancak tüm oyuncuların iyi bağlantıları olduğu sürece oynanabilir olacaktır. Çok oyunculu yarış oyunları bu şekilde çalışır. Ancak, başka bir MMO sınırlaması daha vardır: N kare güncelleme sayısı.
Aynı anda 10 oyuncunun oynadığını hayal edin. Birbirlerini görebilmeleri için, sunucunun diğer her oyuncu hakkında her oyuncu bilgilerini göndermesi gerekir. Bu, örneğimizde hazırlanacak ve gönderilecek 10x10 = 100 parça bilgi anlamına gelir. Bu, "N-kare" olan oyuncuların karelerinin sayısıdır. Bu sayı oldukça hızlı büyüyor ve geleneksel MMORPG'ler bile aynı alanda çok sayıda oyuncu olduğunda mücadele etmeye başlıyor. Arabalarla hayali hızlı tempolu oyunumuz için, bu bilgi parçaları daha yavaş bir oyundan çok daha hızlı gönderilmelidir. VE muhtemelen kendileri daha büyüktür - sadece pozisyonları değil, hızları, ivmeyi, açısal hızları vb. Gönderirsiniz.
Yukarıdaki her iki sorun da prensip olarak yazılım tarafından çözülemez, sadece bir dereceye kadar maskelenir. Oyuncu sayısını sınırlayarak biraz azaltılabilirler - örneğin, hızlı arabaların sadece sınırlı sayıda oyuncuya sahip durumlarda kullanıldığı bir oyun muhtemelen yapılabilir. APB'nin yaptığı şeyin bu olduğuna inanıyorum. Ancak hızlı arabalara sahip tam bir açık dünya MMO oyunu olmayacak. Kuantum-entaglement ağ arayüzleri falan alana kadar değil.
Evet.
Ağ gecikmesi ve ağdaki oyun durumunu senkronize etmeniz gerekir. Arabalar ne kadar hızlı hareket ederse ağ gecikmesi o kadar belirgin hale gelir. Oyuncular bir duvara çarpabilir, çünkü oyun istemcileri ağ sorunları nedeniyle sunucudaki oyun durumunu güncelleştiremez. Oyuncular yürüme hızında hareket ettiğinde bu bir sorun değildir ;-)
Bir MMO sunucusunun yükü daha fazladır. Çok oyunculu bir yarış oyunu 10 kişi bağlıyken iyi çalışabilir, ancak sunucu yüzlerce kullanıcıdan ağır yük altında yanıt vermezse çökecek ve yanacaktır.
Second Life'ın araç fiziği kötü bir şekilde uygulandı. (Bu hala hayatta mı?)
Garry's Mod hemen hemen tüm fiziktir. Sunucu başına 32 oyuncuyu desteklese de MMO olarak sayıldığını sanmıyorum ve gördüğüm en gerçekçi fiziğe sahip (sadece araçlar değil).
Sanırım fizik düşünülerek tasarlanmış bir MMO yoktu.
Bunu tüm puan bülteni denilen bir oyunun büyük bir başarısızlığında başarmaya çalıştılar. Konsept, yürütmenin çok fazla olmaması harikaydı. Rastgele arabalar hiçbir yerden çıkmazdı. Sürüş ve sadece bir arabaya dönüşecek bir duvara çarpacaktı. Önümüzdeki beş yıl içinde daha fazla işlemci daha az gpu olsa da bir şekilde yapıldığını görebiliyorum.
Önce referansınıza bakalım.
GTA'nın çok oyunculu ile birkaç sorunu var, ancak bu beklenen bir şey. Gecikme, araba kovalamacınızı kabusa dönüştürdüğü bir örnektir. Bazen oyuncular gecikme yüzünden birbirlerini öldürürler.
Ancak gecikme tek sorun değildir, bir MMO'yu yalnızca istemcilerle çalıştıramazsınız, sunuculara ihtiyacınız vardır ve hile yapanlardan kaçınmak için tüm fizik olmasa bile bu sunucuların çoğunu yönetmek zorundadır.
Binlerce oyuncu ile koşmak zorunda olduğunuzu düşünün. Yoğun fizik aktiviteleri sırasında CPU'lar üzerindeki stresi de hayal edin. Stresin bir kısmını özel GPU'lara mahsup edebilirsiniz . Bullet Physics , CPU üzerinde çalışan bir uygulamaya sahiptir.
Ancak bir sunucuda aşırı yüklenmeyi önlemek için, oyuncuların yoğunluğuna bağlı olarak dinamik bölgelerin yeniden tanımlarını işlemek için bir mekanizma uygulamanız gerekir. Bu durumda diğer MMO'lardan çok daha önemlidir.
Bu yapılabilir. Buradaki sorun, daha fazla oyuncuyu ele almak ve oyunun sunuculara dağıtılan ana örneğini çalıştırmak için oyunu ölçeklendirme gereğidir.
Fiziklerinizi optimize etmeyi, nesneleri sunucular arasında hızlı ve verimli bir şekilde aktarmayı ve mega kalabalıklardan (örneğin örnekler) kaçınmanın bir yolunu bulmayı başarırsanız, referansınızla benzer sınırlamalar ve MMO doğası nedeniyle birkaç tane daha yapabilirsiniz. Oyunun
Tüm oyun durumu güncellemelerini her zaman tüm oyunculara göndermeniz gerekmediğini unutmayın, sadece oyuncu ile hemen ilgili değişiklikler sürekli olarak gönderilmelidir, geri kalanı daha düşük bir oranda gönderilebilir.