Bir oyun sunucusunun oyun yayınlanmadan önce istemcileri işleyip işlemediğini nasıl kontrol edebilirim?


13

çok oyunculu desteği olan iOS tabanlı bir oyun geliştiriyoruz. şu ana kadar her şey gerçekten iyi görünüyor ama şimdi sunucunun 10000 istemciyi işleyip işlemediğinden emin olmak istiyoruz. herhangi bir fikir nasıl bu kadar trafik hayatta kalacak emin olun?

Yanıtlar:


15

Trafik yükü testi için birçok araç vardır, ancak ağ trafiği denklemin sadece bir parçası olduğu için oyun sunucunuza özgü olacak başka şeyleri de test etmeniz gerekecektir - işlemci kullanımı ve sabit veritabanı sorguları Hemen ölçmek isteyeceğiniz önemli faktörler olarak akla gelen diğer iki kişi (şüphesiz, oyun sunucunuzun nasıl çalıştığına dair bilginize dayanarak belirlemeniz gereken başka faktörler de olacaktır).

Bunu yapmanın gerçekten iyi bir yolu, bir " oyun oyuncu simülasyonu " istemci programı yazmak ve birden çok örneğini birden çok bilgisayarda çalıştırmak olabilir. Aşağı tarafı, bunun çok fazla bilgisayar kullanımını gerektirebileceği, ancak bazı yerel üniversitelerin bunları çalıştırabileceğiniz büyük bilgisayar laboratuarları olabilir (üniversite profesörleri gerçekten meraklı olma eğilimindeyken profesör test sonuçlarınızla ilgilenebilir iyi araştırma).

Müşterinizin bir oyuncu kadar sofistike olması gerekmeyebilir, ancak aşağıdakileri yaptığından emin olmak isteyebilirsiniz (sarhoş bir yazılım geliştiricisinden biraz daha işlevsel olabildiği sürece çok akıllı olması gerekmez. gerçekten kendini eve sürmemeliyiz, bu yüzden karakterleri özel bir şekilde işaretlemek isteyebilirsiniz, böylece duvarlarda yürümek gibi aptalca şeyler yapabilirler, oyun içi tüccarlardan rastgele seçilmiş ürünler satın almak için sınırsız bütçeye sahip olabilirler, sonsuz mühimmat ikmali ve ne değilse):

  • Rastgele zamanlı olarak rastgele sohbet metni gönderme
  • Dünya genelinde rastgele yönlerde gezinin (ancak büyük şehirlere daha yakın olma eğilimindedir)
  • Yakınlarda başka oyuncular varken rastgele silahları rastgele yönlendirmeyi seç
  • Tüccarlardan rastgele ürünler satın al / sat ve bazen dünyaya ürün dök
  • Ateşe rastgele hafif bir şekilde ışık verin (veya diğer yerel imha şekillerine neden olun)
  • Vahşi hayvan ordularını üzün ve peşinden koşarak yoğun bir kasabaya koşun, sonra oturumdan çıkıp çıkmayacağınıza rastgele karar verin (çıkış yapmayı seçerseniz, belki de bu vahşi hayvanlar kasabadaki diğerlerine saldırmaya başlayacaktır?)
  • Sakatlanan oyuncuları iyileştir
  • Kalabalık yerlerde rastgele seçilen sihirli büyülere başla
  • Çiğ yiyecekleri pişirin, çiğ kereste ve diğer malzemeleri (madencilik gibi) vb.
  • ... oyuncularınızın düzenli olarak yapması muhtemel diğer basit görevler

Bir seferde 9.000 oyuncuya sahip olduğunuzu tahmin ederseniz, bu sayının en az 3 kez test edilmeye çalışın, böylece sunucularınızın 27.000 benzetilmiş meşgul oyuncunun yükünü nasıl ele alabileceğini bilirsiniz (birçok oyuncu eğilimindedir) özellikle sosyal türler.

Ayrıca ( ve bu çok önemlidir ), bunu yaparsanız, lütfen, lütfen, lütfen, normal bir karakterle giriş yapın ve aptalca şeyler yapan tüm bu bilgisayarlı oyuncuların bir videosunu kaydedin ve bu videoyu burada bizimle paylaşın, böylece iyi bir gülmek ( sadece doğru oyun içi senaryoyu bulabilirseniz " sarhoş ahır dansı " nın bu film için iyi bir başlık olabileceğini düşünüyorum)! ;-D


2
Cevabınız için çok teşekkürler, sanırım bu simüle edilmiş oyuncuları kullanarak test etmemiz gerekiyor ve sonuçta müşterileri çalıştırmak için bulut hizmetlerinden birini kullanacağımızı düşünüyoruz. tıpkı bir sidenote gibi, çok oyunculu bir oyundur, ancak oyuncular sadece dünyada gezinebilir ve birbirlerini avlayabilirler, bu yüzden bahsettiğiniz bu görevlerin neredeyse hiçbiri örnek istemcilere uygulanmayacaktır! Umarım aynı soruya sahip bir sonraki kişi, tüm bu şeyleri test etmek için yaşam simülasyonu oyununu serbest bırakmak üzeredir!
Ali1S232

Sadece oyununuz için nelerin geçerli olduğunu test edin (rica ederim!). Oyununuzun özellikleri hakkında hiçbir şey bilmiyordum, bu yüzden ele alınacağı umuduyla birçok olasılık eklemeye çalıştım.
Randolf Richardson

Bazı oyunlar da erken beta ön sürümüyle başlar, ancak bu zor bir karar olabilir, çünkü bir oyuncunun beta aşamasında oyunu beğenmediğini bulabileceği kötü bir faktör vardır ve daha sonra denemek için asla geri gelmez yine (karşılaştıkları sorunlar çözülse bile).
Randolf Richardson

2
-1, gerçekçi olmayan cevap. Kadın oyun geliştiricileri mevcut değil. (Jks, +1, test sonuçlarını görsel olarak paylaşmayı kabul etti).
yavaşladı

3
Bunu, el konsolunda bir MMO için yaptığımı da ekleyeceğim; simüle oyuncular, sunucuların stres altında nasıl baş edebileceğini test etmek için gelmiş geçmiş en iyi şeydi. Ayrıca kapalı bir beta düzenledik (yaklaşık 500 kişiyle sınırlı) ve simülasyon testindeki oyuncuları yönetebildiğim kadar gerçek oyuncular gibi davranacak şekilde ayarlamak için beta test kullanıcılarının davranışıyla ilgili oluşturulan istatistikleri kullandım. Beta sürümü bittikten sonra, 40.000 simüle edilmiş oyuncuyu sunuculara zarar vermek için serbest bıraktım. Çok kargaşa!
Trevor Powell

0

Bu eski bir soru için bir cevap, arama motoru tarafından buraya almak isteyenler için yararlı olabilir umuyoruz. Netgend , 50.000 VU'yu taklit edebilen ve tüm esnek istemci emülasyonlarını yapabilen bir performans test platformuna sahiptir.

Bloglara bakın , özellikle

  • Ağ iletişimi kolaylaştı
  • sunucu yanıtlarından alan ayıklar
  • İkili verilerle performans testi

İleti işlemenin http iletileri ile sınırlı olmadığını, tüm iletiler için geçerli olduğunu unutmayın.

Umarım faydalıdır.

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.