MMO'lar PvP sırasında bağlantı kesilmesini nasıl ele almalı / yapmalıdır?


20

Bir MMO'da (bir MMORPG bile değil) PvP'nin ortasında bağlantıyı kesen oyuncularla başa çıkmak için bazı teknikler nelerdir?

Özellikle - ağ (hatta gerçek hayat) sorunları nedeniyle bağlantısı kesilen insanları olumsuz etkilemekten kaçınırken, onları ilgilendiren insanları olumsuz etkilemekten nasıl kaçınırsınız?

Ve daha da önemlisi, bağlantı kesmenin hile yöntemi olarak kullanılmamasını nasıl sağlıyorsunuz?

Yanıtlar:


15

Üzerinde çalıştığım bazı çevrimiçi CCG'lerde bu sorunu yaşadık. Gördüğüm en iyi çözüm:

1) Oyuncular doğrudan birbirine değil, sunucuya bağlanmalıdır ZORUNLU ve oyunculara aktardığınız verilerdeki rakiplerin IP adreslerini ASLA aktarmamalısınız. Bu, bir oyuncunun rakibini galibiyet için çevrimdışı zorladığı hizmet reddi saldırılarını önler.

2) Bağlantı kesildi = kaybedersiniz, rakip kazanır. Düşerseniz, belirli kayıplardan kaçınmanın bir damla olduğunu varsaymalıyız.

3) Bağlantı kesilmeleri, belirli bir süre boyunca yeniden bağlanma girişiminde bulunur, böylece hafif bir net hıçkırık, sizi hiçbir hata olmadan kaybetmeye zorlamaz. İdeal olarak, yanlışlıkla kabloyu tekmelediğinde birisinin yeniden bağlanmasına izin vermek için yeterince zaman vardır, ancak rakibin hayal kırıklığına uğramaması ve beklerken uykuya dalmaması için yeterince kısadır. Sanırım yaklaşık 45 ila 60 saniye doğru hissettik.

4) Oyuncuların rakiplerini bildirmelerine izin verin. Bu, herkesin politikanızda sinir bozucu bir yol bulmasını önlemek için gerekli bir şeydir. Mesela belki o kadar sözlü tacizde olmak, rakibin sadece oradan çıkmak için düşmesi ya da oyun uzunluğunu uzatmak için sürekli olarak bağlantısının kesilmesi ve yeniden bağlanması ya da bir kaybı veya herhangi bir şeyi önlemek için taş duvarlamanın olması. TÜM kötü davranışları durduramazsınız, ancak bunu bildirmek için bir oyun içi mekanizma ekleyebilir ve ardından müşteri destek departmanınızın geri kalanını halletmesine izin verebilirsiniz.


13

Popüler MMORPG RuneScape , 1 dakikalık bir zamanlayıcı kullanır. Bağlantıyı kestiğinizde, karakteriniz dünyada tam bir dakika kalır, saldırılara karşı savunmasızdır ve ne olmaz.


1
DAoC için de aynı şey geçerli. Harika çalışıyor, çünkü bunu yapmazsanız, kavgalardan kaçınmak için insanlar bağlantıyı kesebilir. Eskiden DAoC'da insanların anında çıkmasını sağlayan bir "Masaüstünden Çık" / qtd komutu vardı ve bu nedenle kaldırıldı.
furlafur Waage

8

Bu sorunu bir kez, kaybetmekte olan oyuncuların kayıtlarında kaybolmasını önlemek için konsollarını kapatacakları bir çevrimiçi yarış oyununda ele almak zorunda kaldım. Ancak herhangi bir PvP durumu için çok iyi uygulanır.

Benim çözümüm şöyle gitti:

  1. Maçın başında, tüm oyuncular katıldıktan ve oyun başlamak üzereyken, oyuncumuz maçı kaybederse sonucun ne olacağını hesaplayın. Yarış oyunumuzda, 'kayıp' demek 'en son sırada yer aldı' ve normal sonuç 'oyunculardan eksi N puan' olacaktır.

  2. Sonucu güvenli bir yere kaydedin (Savegame, afiş, Çevrimiçi veri alanı, vb.).

  3. Sonuçla birlikte, bir 'GameStarted' bayrağı saklayın. Bu sadece oyunun başladığını gösterir. Daha sonra ihtiyacımız olacak.

  4. Oyun tamamlandığında, gerçek sonucu hesaplayın ve oyuncu skoruna / istatistiklerine uygulayın. 'GameStarted' bayrağını kaldırın. Bu normal oyun tamamlama sürecidir.

  5. Ancak, oyuncu bağlantıyı keserse, kablosunu çeker veya kapanırsa, sonunda oyun menüsüne geri dönecektir. Menü kodunda, 'GameStarted' bayrağını kontrol ediyoruz. Ayarlanmışsa, daha önce oyun içi bağlantı kesildiğini tespit ettiğimizden eminiz. Daha sonra saklanan sonucu oyuncuların skoruna / istatistiklerine uygulayabiliriz. Oyuncu oyunu kaybetmiş gibi olacak. Oyuncuya neler olduğunu bildiren bir uyarı vermek de iyi bir fikirdir. Daha sonra, oyunun ortasında bağlantıyı kesmenin sonuçları olduğunu gördüğünde, bu davranışın değişmeye başladığını göreceksiniz.


Oldukça kurnaz. Açıkçası, tüm oyun türlerine eşit derecede iyi uygulanamaz, ancak potansiyel sonuçların önünü hesaplama kavramı iyi bir şeydir.
Kylotan

1
Ancak, yanlışlıkla bağlantı kesilmesi için oldukça sert, bu alanda bir çözüm kullanabilir.
Kzqai

5

Bence bunu yapmanın tek yolu oyununuzun yapısıyla ilgili bir mesele. Hile yapmayı daha az arzu edilir kılmanın iki yolu vardır: ceza veya ödül. Eğer olumsuz ceza istemiyorsanız, düşmeyen oyuncuyu ödüllendirmenin yollarını düşünün.

PvP'den kazanılanın fethedilen vücudun ganimeti (bunun yerine düşmeyi çok kötü bir şey) yapmak, kazanmayı exp, altın ya da tamamen başka bir şey (Puan? Sıralaması?) Gibi ödüllendirir. Eğer oyunculardan biri atılırsa, kalan oyuncu ödülü alır ve atılan oyuncu hiçbir şey kazanmaz ama hiçbir şey kaybetmez. Bir sıralama sistemi olmadıkça, bu durumda ayrılan oyuncu bazı sıralama puanlarını kaybedebilir.


Bu eşsiz bir analiz, hoşuma gitti.
Kzqai

Bu, birbirini tanıyan iki oyuncu tarafından sömürülebilir. Bunu istedikleri kadar tekrarlayabilirler, çünkü kaybeden hiçbir ceza alır.
unor

5

Lineage II bunu şöyle yapar:

  • Dövüş sırasında oyun istemcisinden çıkamazsınız - herhangi bir dövüş başlar, saldırırsanız, saldırıya uğrarsanız veya iyileşirseniz, savaşan bir takım arkadaşınız ve son dövüşten sonra 15 saniye süren "dövüş duruşundasınız" yapıldığı.
  • Yine de bağlantıyı keserseniz veya oyununuz çökerse, karakteriniz kaybolmadan önce 15 saniye boyunca oyunda kalır. Saldırdığı her şeye otomatik olarak saldırmaya devam ediyor, ancak becerileri kullanmıyor - AFK'ya gittiğinizde olduğu gibi.
  • Orada olan başka bir istemci ile aynı hesaba yeniden bağlantı kurarak, ancak, anında kesmek için bir yol. Bu, PvP'de yapıldığında topluluk tarafından sınırda hile olarak kabul edilir ve bazı hile araçlarının da bunu kullanma seçeneği vardır, bu yüzden orada çok fazla kullanılmaz. Ancak PvE'de çiğnemek için çok fazla ısırırken, bazı insanlar gereksiz ölümleri önlemek için bu hileyi hala kullanıyorlar (buna rağmen neredeyse aynı olan oyun içi öğeler, yani "kutsanmış kaçış parşömenleri" olsa da).
  • PvP bayraklı bir bölgeye (örneğin bir kuşatma sırasında kale zemini) ve bazı belirli anlık olmayan destansı patron bölgelerine yeniden bağlanmak karakteri en yakın kasabaya (güvenli bölge) taşır. Bu nedenle, "kaybetmekten" kaçınmak için orada bağlantıyı kesmek takımınız için bir ceza taşır, bu da oyunun sosyal normları tarafından şiddetle cesaret kırıldığı anlamına gelir.

Şahsen ben de benzer şekilde yapardım, oyuncuların karakterinin bağlantısının kesilmesi ile ilgili eylemleri önceden tanımlamasına izin veririm (kal ve kavga, aggrodan kaçınarak en yakın güvenli bölgeye koş, düzenli bir kaçış kaydırma kullan, kutsanmış bir kaydırma kullan escape, ...) ve oyuncu giriş yapmasa bile karakterlerin oyun dünyasında kalmasını sağlayın.


Güzel! Bunu sevdim! :)
Tamam

3

Bağlantısı kesilen kişi yeterince bıçaklandıktan sonra ölecek ve diğeri ise öldürmek için kredilendirilecektir. Daha yumuşak olan her şeyden faydalanılacaktır.

Genellikle vücudunuz dünyadan ayrılmadan önce 1 ila 5 dakikalık bir zamanlayıcı vardır.


3

Bağlantı kesilmesine neyin sebep olduğunu belirlemenin bir yolu yoktur (güç kesildi mi? Makinemi bir duvara fırlattım mı?), Böylece yalnızca kullanıcının hile yapmaya ve onları savunmasız hale getirmeye çalıştığını (veya deneyeceğini) varsayabilirsiniz. X dakika boyunca.


3

EVE Online tarafından bu şekilde ele alınabilir:

  • Gemi bağlantıyı kestikten 15 saniye sonra çözgü yapmaya başlar. Çözgü karıştırılmışsa, gemi çözülmez. (Karakterinizin gemisi, başka bir oyuncu tarafından "tuzağa düşürülmedikçe) 15 saniye sonra" kaçmaya "başlar)

  • PVP zamanlayıcısı (PvP savaşındayken oyuncunun "kaçmasına" kadar süre) 3 dakikaya ayarlanmıştır. (Bu, diğer zamanlayıcılara karşı koymak içindir).

  • NPC zamanlayıcı 1 dakikada kalır, ancak çözgü NPC tarafından karıştırılmadığı sürece gemi 15 saniye sonra çözgü yapar.

  • Bir gemi oyuncu tarafından hedef kilitlendiğinde, pvp zamanlayıcısına geçmelidir (zamanlayıcı ayarlanana kadar hedeflenemediği durumlarda bağlantısı kesilirse 1 dakikalık zamanlayıcıyı kullanarak karşı koymak için).



2

Oyuncuların savaşta olağan kalıplarını modellemenin bir yolu varsa, yeniden bağlanana veya hangisi önce gelirse bitene kadar bir AI moduna gönderebilirsiniz. Ancak X süresinde dönmedikleri sürece savaş için onlara ödül (exp, eşyalar, vb.) Vermeyin.


0

Bir tür histerezis uygulardım. Havuç ve sopayı kullanabilirsiniz. Ancak hangisinin kullanılacağını seçmek geçmiş kaydına dayandırılabilir (ayrıca bağlantılarının ve mevcut "kazanma yeteneğinin" bir analizini yapabilir ve bunu kullanabilirsiniz.). Umarım bizzat böyle yaparsınız. Basit model:

  • Eğer "kötüyüm" ve DC'ysem, sopa alıyorum. Artık daha kötüyüm.
  • Eğer "kötü" isem ve bitirirsem sopayı almam ama ödülü de almam. Şimdi iyi olmaya daha yakınım.
  • Eğer "iyi" ve ben DC isem, sopa alamadım ama aynı zamanda ödül alamıyorum. Artık kötü olmaya daha yakınım.
  • Eğer iyi ve tamamsam ödülü alırım. Şimdi daha iyiyim.

Evet, kötüye kullanabilirsiniz. Ancak bunu yapmak mermiyi ısırmaktan daha fazla çaba gerektirebilir. (Örneğin, 2 DC'nin kötü olması gerekiyorsa, teknik olarak kayıplarınızın yarısından kurtulabilirsiniz. Ancak, bazı kötüye kullanımları ve akıllı oyuncuların tüm kötüye kullanımlarından daha azı durumunda ).

Bu şekilde kullanıldığında, skor tabloları% 100'e ulaşmayacağı anlamına gelir. DC yapabilirsiniz iyi ve zarar kaydedemezsiniz çünkü. Ama diğer iyi oyuncu bir galibiyet kaydedebilir. Ayrıca% 100'e yazmamak, 2 oyuncunun kazanç kazanmak için DC oynatıcıyı kapatmak için işbirliği yapabileceği anlamına gelir.

Bu yüzden kusursuz değildir, ancak oyun oyunlarının + bağlantısının Bayes analizi muhtemelen eğlenceyi algılayabilir ve bu şemayı kurşun geçirmez hale getirebilir. (Bayesci analizi yenebilirsiniz, ancak insanlar bunu yapmakta iyi değildir ve matematik çoğu insan için erişilemez, DC'nin iyi olması için mücadele etmek için "prime" yapmak için zaman yatırımından bahsetmiyoruz).


Hmmm. Düzeltilemez bir sorun görüyorum ... Eğer "kötü" kazanma düzeni çok açık bir şekilde belgelenmiş yapmadıysanız onların "kazanmak" alamama şikayet olabilir. Tabii ki karıştırmaya davet ediyor. Olası çözüm: Ödülleri en azından sorunu pekiştiren bir "sezonun" sonuna kadar gizleyin ... ancak "kötü" oyuncuların boşa harcanan "yatırım" dan düşmesine neden olabilir. Win-win?
Siyah
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.