Oyun sahibi otorite mi yoksa başka bir aptal müşteri mi olmalı?


15

Bir oyuncunun ev sahibi ve diğerlerinin bağlandığı bir ağa bağlı çok oyunculu oyun tasarlarken, farkında olduğum iki strateji var:

  • Ev sahibi oyuncunun oyununun otorite olmasını sağlayın , diğer tüm oyuncular aptal müşteriler olarak mevcut oyun durumuna yetişmeye çalışıyor. Kodda, geçerli oynatıcının ev sahibi olup olmamasına bağlı olarak birçok özel durum olması gerekir.
  • Başka bir iş parçacığında gizli bir özel sunucu çalıştırarak ana bilgisayarı herkes gibi aptal bir istemci yapın . Adanmış sunucu otorite olacaktır ve ana bilgisayar herkes gibi (localhost aracılığıyla) sunucuya bağlanacaktır.

Bunların her birinin avantajları / dezavantajları nelerdir? En çok hangisi kullanılır (veya oyun türüne / boyutuna göre değişir)?


Tanımladığınız ilk durum, bir P2P ağ iletişimi (bir yetkili müşteri ile) ve genellikle çok daha karmaşık ve uygulanması ve bakımı daha zor olabilir.
akaltar

Yanıtlar:


13

Aptal-istemci yaklaşımı en iyi saf tasarım bakış açısıyla en iyisidir - ana bilgisayar ve istemciler arasında ihtiyacınız olan farklı kod miktarını büyük ölçüde sınırlar ve sunucunun eşzamansız çalışmasına izin verir. Olumsuz ana bilgisayarın makine ekstra kaynaklar - gerektirir ama her zaman yaptı sanırım.


8

Bu iki seçenek arasında aptal istemci yaklaşımı kesinlikle DeadMG'nin nedenlerinden dolayı en iyisidir.

Her istemciyi bir otorite haline getiren başka bir seçenek var, tüm eşlerin aynı kodu paylaşması aptal-istemci avantajına sahip. Diğer avantaj, doğru kuralları ayarlamanızın çok daha adil olabileceğidir, çünkü kimsenin sunucuya 0 gecikme avantajı yoktur.

Bu, oyun türüne bağlı olarak uygulanması oldukça zor olabilir. Protokolünüz, muhtemelen bir tür mülkiyet şeması kullanarak, akranlar arasındaki çatışmaları çözmekle uğraşmak zorunda kalacak. Sadece 2 eşin aynı oyun nesnesine sahip olduğunu iddia ettiği çatışmaları bırakmak.

Google Peer-2-Peer çok oyunculu protokolleri size bu yaklaşım hakkında daha fazla ayrıntı verebilir.



İlginç. Bu yazı, "çoğu strateji başlığı" nın ağı nasıl uyguladığını iddia ediyor. Bu gerçekten doğru mu? Öyle mi böyle. Komuta ve Conquer ve Starcraft çalışır?
BlueRaja - Danny Pflughoeft

@BlueRaja, Starcraft böyle çalışır, evet. Starcraft'da hiçbir otorite yoktur. Warcraft III ve Starcraft II, daha merkezi bir mesaj alışverişi modeline, gecikme ve bağlantı kesme işlemine sahiptir, ancak her müşterinin kendi oyun durumunu barındırması temelde aynıdır.
Rotsor

Bu ağ modelinin diğer avantajı, minimum senkronizasyon trafiğiyle tutarlı ve tutarlı büyük dünya devletini desteklemesine izin vermesidir.
Rotsor

Bu modelin en büyük dezavantajı, oyuncunun normalde göremediği bazı oyun durumu verilerini ortaya çıkaran "harita saldırısı" na karşı savunmasızlığıdır.
Rotsor
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.