İstemci-sunucuya karşı p2p çok oyunculu oyunların sınırlamaları [kapalı]


12

Çok oyunculu oyun mimarisini okuyorum.

Şimdiye kadar bulduğum makalelerin çoğu istemci-sunucu modeli ile anlaşma.

Bir p2p mimarisi kullanmanın sınırlarının neler olduğunu bilmek ister misiniz? hangi "sınıf" oyunlarını kullanarak uygulamak mümkündür (veya daha yaygındır)? hangisi değil? ve genel olarak, istemci-sunucu modeline karşı temel farklılıkları ve sınırlamaları nelerdir.



Gerçek bir P2P oyunu örneği için, çok oyunculu ve bu nedenle hack'leme ile ilgili büyük sorunları olan Gunz: The Duel'e bakabilirsiniz.
17'de

Yanıtlar:


11

İşte iki sentim:

P2P :

  • Artıları:
    • Merkezi bir sunucuya gerek yok : Bu, düşük bütçeli indie oyunlar için çok daha ucuz ve daha uygun hale getirir.
    • Çok iyi ölçeklenir (ortalama bir istemci bant genişliğini kaldıramadığında belirli bir noktaya kadar).
    • Veri dağıtımı için çok iyi : Kullanıcı tarafından oluşturulan içeriğin dinamik olarak senkronize edildiği oyunlara uygundur (örn. Torrentler).
    • Daha Kararlı: Sunucunun sorunları olduğu ve hiç kimsenin oynayamayacağı (uygulamaya bağlı) asla olamaz.
  • Eksileri:
    • Gerçekleştirilmesi zor: Sağlam bir P2P mimarisi oluşturmak, sunucu istemciden çok daha zor.
    • Yetkili bir akran belirlemediğiniz sürece (P2P'den iyi ölçeklemenin faydalarını engelleyecek) böyle bir sistemde hile yapmak çok zordur .
    • Güvenlik elde etmek zordur.
    • Bir müşterinin internet bağlantısı oyunu başkaları için de etkileyebilir.
    • Gecikme genellikle çok daha fazladır (örneğin bir LAN ağından birden fazla kişiyle bir internet oyununa katılırken daha iyi olabilir).
    • Bağlantı noktası iletmeyi gerektirebilir : İnternet üzerinden P2P bağlantı noktası yönlendirmeyi gerektirir ve herkes bunu yapacak kadar teknik olarak eğimli değildir. Ayrıca, ISS bağlantı noktası iletmeyi önleyebilir ve giriş engelini artırır.

Sunucu-İstemci :

  • Artıları:
    • Uygulaması kolay: Olabildiğince basit.
    • İyi uygulanırsa, son derece iyi ölçeklendirilir (çalışma birden çok sunucuya dağıtılabilirse).
    • Hile kolayca önlenebilir (P2P ile karşılaştırıldığında).
    • Düşük Gecikme Süresi : Sunucunun sağlam bir bağlantısı varsa gecikme süresi çok düşük olabilir.
    • Bir oyuncunun internet bağlantısı başkasının oyununu asla etkilemez.
  • Eksileri:
    • Sunucuları çalıştırmak için size para maliyeti : ücretsiz bir oyun için kesinlikle uygun değil (oyuncuların özel bir sunucu kurmasına izin vermediyseniz, ancak bu bir güvenlik sorunu olabilir).
    • Sunucunun sorunları varsa, herkes yaşar.

P2P'yi iyi bir seçim olarak görecektim, çünkü ortalama internet bağlantısı gittikçe daha iyi hale geliyor, gelecekte P2P gecikmesi hiç sorun olmayabilir. Ayrıca P2P hakkında çok şey belirli uygulamaya bağlıdır.

P2P ile Server-client'ı birleştiren bazı mimariler de var.


P2P Con: Matchmaking, eğer bir LAN oyunu değilse, akranınızı nasıl bulacağınızı bilmiyorsunuz. CS: Diyelim ki Almanya'da ve diğeri Avustralya'da olan bir oyuncu düşük gecikme değil. 6 yıl sonra hala sorun. CS: Çok paraya değil, gerçekten. Sunucular oldukça ucuz hale geliyor. Ayrıca, oyunu işaret etmek için bazı web proxy kullanarak kendi PC'nizde barındırarak başlayabilirsiniz.
badunius

2

Eşler arası oyunların büyük bir riski, tarafsız bir sunucu biçiminde merkezi bir otorite olmadan, hile yapmayı önlemenin bir yolu olmamasıdır. Her müşteri, oyunun sonucunu istediği gibi yorumlayabilir. Bazı oyunlar, müşterilerden birini ev sahibi ilan eder ve yargıç olmasına izin verir, ancak bu müşteri bir dolandırıcı olduğunda, tüm oyunun sonucuna karar verirler.

Düşük gecikme ve yüksek bant genişliği gerektiren oyunlarda, oyunculardan hızlı tepki gerektiren herhangi bir oyun gibi, ev sahibinin sadece yüksek performanslı bir omurgaya sahip bir veri merkezinde oturmayan, tüketici sınıfı bir internet bağlantısı kullanması sorunu da vardır. bağ. Bu, kullanıcı deneyiminin acı çekeceği anlamına gelir. Bu daha strateji odaklı, "daha yavaş" oyunlarda bir sorun değil.


Bir konsensüs modeli kullanarak, hile bir istemci-sunucu modelinde olduğundan daha fazla bir sorun değildir.
Jeroen

1

Eşler arası çok oyunculu oyunların uygulanması kolay değildir ve şu anda uygulanamaz.

Sahip olduğunuz sorun, eşlerin hiçbirinin diğer tüm eşleri tanımamasıdır, böylece her ileti için birden fazla atlama gerçekleştirebilirsiniz, bu da bir istemci sunucu modeline kıyasla daha yüksek bir gecikme ile sonuçlanır. Bkz bu ek ayrıntılar için kağıt.

Yuvarlak tabanlı oyunlar böyle bir protokolü kolayca kullanabilirler çünkü gecikmeye çok fazla bağlı değildirler. Ayrıca, normalde bir oturumda sadece birkaç ana bilgisayar bulunur, böylece her mesajı diğer tüm oyunculara yayınlayabilir.

Eşler arası kullanan diğer oyunlar, oyunu barındırmak için eşlerden birini dinamik olarak seçer (örneğin, CoD MW2);


3
"Şu anda uygulanamaz" ne demek? Ağ için P2P kullanan birçok oyun var. Ayrıca, "akranların hiçbiri diğer tüm akranları tanımıyor" şeklinde yanlış ifade edilmiştir. Uygulamada, sağlamlığı artırmak için rölelerin desteklenmesi gerekirken, özellikle küçük eş sayımlarında veya herhangi bir NAT yönlendiricisinin müdahale etmediği LAN'da herkes için mükemmel bir ağ topolojisine sahip olmak tamamen mümkündür.
Tapio

@Tapio Elbette oyunlar için bir p2p ağı oluşturmak mümkündür, ancak gecikme süresi, kullanıcı sayısı veya kullanıldığı ortam açısından sınırlı olacaktır. Bu nedenle çoğu oyun p2p yaklaşımı kullanmaz.
Horstinator

@Horstinator Bir FPS oyunu için P2P kullanan bir oyunun biliyorum, o sağlam olursa olsun herhangi bir gecikme sorunsuz 50-100 oyuncu destekler (Onun adı verilen çöp adam savaş herkes için kim takar).
akaltar

@akaltar Açık kaynak mı? Nasıl yaptıklarını görmek istiyorum.
Horstinator

@Horstinator Çok kötü, ama bildiğim kadarıyla değil. Forumdaki yaratıcıya sorabilirsiniz (bu çok küçük bir proje, böylece birisi cevap vermelidir).
akaltar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.