In che modo gli MMO / dovrebbero gestire la disconnessione durante il PvP?


20

In un MMO (nemmeno necessariamente un MMORPG) quali sono alcune tecniche per gestire i giocatori che si disconnettono nel mezzo del PvP?

In particolare - come evitare di influenzare negativamente le persone che si disconnettono a causa di problemi di rete (o addirittura di vita reale), senza influire negativamente su quelle persone che le coinvolgono?

E, soprattutto, come si fa a garantire che la disconnessione non possa essere utilizzata come metodo per barare?

Risposte:


15

Abbiamo riscontrato questo problema con alcuni CCG online su cui ho lavorato. La migliore soluzione che ho visto:

1) I giocatori DEVONO connettersi al server, non tra loro direttamente, e non dovresti MAI passare gli indirizzi IP degli avversari nei dati che trasmetti ai giocatori. Questo impedisce attacchi denial-of-service in cui un giocatore costringe il proprio avversario offline per la vittoria.

2) Connessione abbandonata = perdi, vince l'avversario. Dobbiamo presumere che se hai lasciato cadere, è stata una goccia per evitare una certa perdita.

3) Le disconnessioni tentano di riconnettersi per un periodo di tempo, in modo che un leggero singhiozzo netto non ti costringa a perdere per colpa tua. Idealmente, il tempo è abbastanza lungo da consentire a qualcuno di riconnettersi se ha accidentalmente calciato il cavo, ma abbastanza breve da impedire all'avversario di sentirsi frustrato e addormentarsi durante l'attesa. Penso che abbiamo trovato circa 45 a 60 secondi sentiti bene.

4) Consentire ai giocatori di segnalare i propri avversari. Questo è un accorgimento necessario per impedire a chiunque di trovare un modo fastidioso per aggirare la tua politica. Ad esempio, essere così verbalmente offensivo che l'avversario cade solo per uscire da lì, o disconnettersi e riconnettersi continuamente per allungare la lunghezza del gioco, o stonewalling per evitare una perdita, o altro. Non puoi fermare TUTTI i comportamenti scorretti, ma puoi includere un meccanismo in-game per segnalarlo e quindi lasciare che il reparto di assistenza clienti gestisca il resto.


13

Il popolare MMORPG RuneScape utilizza un timer da 1 minuto. Quando ti disconnetti, il tuo personaggio rimane nel mondo per un minuto intero, vulnerabile agli attacchi e cosa no.


1
Lo stesso per DAoC. Funziona benissimo, poiché se non lo fai, le persone possono disconnettersi per evitare combattimenti. C'era un comando "Esci dal desktop" / qtd in DAoC che faceva uscire istantaneamente le persone e per questo è stato rimosso.
Ólafur Waage,

8

Ho dovuto affrontare questo problema una volta in un gioco di corse online in cui i giocatori che stavano perdendo spesso spegnevano le loro console per evitare la perdita che compariva nei loro record. Tuttavia, si applica molto bene a qualsiasi situazione PvP.

La mia soluzione è andata così:

  1. All'inizio della partita, una volta che tutti i giocatori si sono uniti e la partita sta per iniziare, calcola quale sarebbe il risultato se il nostro giocatore perdesse la partita. Nel nostro gioco di corse, "perso" significa "arrivato all'ultimo posto" e il risultato abituale sarebbe "meno N punti dalla classifica dei giocatori".

  2. Salvare il risultato in un luogo sicuro (Savegame, classifica, area dati online, ecc.).

  3. Insieme al risultato, memorizza un flag "GameStarted". Questo significa solo che il gioco è iniziato. Ne avremo bisogno in seguito.

  4. Al termine del gioco, calcola il risultato effettivo e applicalo al punteggio / alle statistiche dei giocatori. Disattiva il flag "GameStarted". Questo è il normale processo di completamento del gioco.

  5. Tuttavia, se il giocatore si disconnette, stacca il cavo o si spegne, alla fine tornerà al menu dei giochi. Nel codice del menu, controlliamo il flag "GameStarted". Se impostato, siamo sicuri di aver rilevato una disconnessione in gioco da prima. Possiamo quindi applicare il risultato memorizzato al punteggio / alle statistiche dei giocatori. Sarà come se il giocatore avesse perso la partita. È anche una buona idea mettere un avviso che informa il giocatore di ciò che sta accadendo. Quindi, quando vede che ci sono conseguenze per la disconnessione a metà partita, vedrai che il comportamento inizia a cambiare.


È piuttosto astuto. Ovviamente non può applicarsi altrettanto bene a tutti i tipi di gioco, ma l'idea di calcolare le potenziali conseguenze in anticipo è buona.
Kylotan,

1
Abbastanza duro per la disconnessione accidentale, tuttavia, potrebbe utilizzare una soluzione in quella zona.
Kzqai,

5

Penso che l'unico modo per riuscirci sarebbe una questione di struttura del tuo gioco. Ci sono due modi per rendere meno desiderabile imbrogliare: punizione o ricompensa. Quindi, se non vuoi una punizione avversa, pensa a come ricompensare il giocatore che non ha lasciato cadere.

Invece che la ricompensa del PvP sia il bottino del corpo conquistato (il che rende la caduta una cosa molto brutta), fare vincere conferisce un premio come exp., Oro o qualcos'altro (Punti? Classifica?). Se uno dei giocatori viene espulso, il giocatore rimanente riceve la ricompensa e il giocatore che è stato espulso non guadagna nulla ma non perde nulla. A meno che non sia un sistema di classificazione, nel qual caso il giocatore che se ne va potrebbe perdere alcuni punti di classifica.


Questa è un'analisi unica, mi piace.
Kzqai,

Questo potrebbe essere sfruttato da due giocatori che si conoscono. Possono ripeterlo tutte le volte che vogliono, perché il perdente non ottiene penalità.
unor

5

Lineage II fa così:

  • Non puoi uscire dal client di gioco durante un combattimento: ogni combattimento inizia, indipendentemente dal fatto che tu abbia attaccato, attaccato o guarito un compagno di squadra che sta combattendo e sei in "posizione di combattimento", che dura 15 secondi dopo l'ultima azione del genere era fatto.
  • Se ti disconnetti comunque o il gioco si blocca, il tuo personaggio rimane in gioco per quei 15 secondi prima di scomparire. Continua anche ad attaccare automaticamente qualunque cosa stesse attaccando, ma non usando le abilità - lo stesso che farebbe se tu fossi andato in AFK.
  • V'è un modo per staccare immediatamente, tuttavia, ricollegando allo stesso account con un altro cliente. Questo è considerato come un imbroglio borderline da parte della comunità quando fatto in PvP, e alcuni strumenti di cheat hanno un'opzione per usarlo anche, quindi non viene usato molto lì. Quando morde troppo per masticare in PvE, tuttavia, alcune persone usano ancora questo trucco per evitare morti inutili (anche se ci sono oggetti di gioco che consentono quasi lo stesso, vale a dire i "benedetti rotoli di fuga").
  • Ricollegandosi a una zona contrassegnata da PvP (terreno del castello durante un assedio, per esempio) e alcune aree specifiche di boss epici non istanziati sposta invece il personaggio nella città più vicina (zona sicura). Quindi, disconnettersi lì per evitare di "perdere" comporta una penalità per la tua squadra, il che significa che è fortemente scoraggiato dalle norme sociali del gioco.

Personalmente, lo farei allo stesso modo, consenti solo ai giocatori di pre-definire le azioni che il loro personaggio sta compiendo al momento della disconnessione (rimani e combatti, corri verso la zona sicura più vicina evitando aggro, usa un normale rotolo di fuga, usa un benedetto rotolo di fuga, ...) e fai in modo che i personaggi persistano nel mondo di gioco anche se il giocatore non ha effettuato l'accesso.


Bello! Mi piace! :)
Fai clic su OK il

3

Colui che si è disconnesso morirà una volta pugnalato a sufficienza e l'altro verrà accreditato per l'uccisione. Qualunque cosa più indulgente verrà sfruttata.

Generalmente c'è un timer da 1 a 5 minuti prima che il tuo corpo lasci il mondo.


3

Non c'è modo di determinare cosa abbia causato la disconnessione (è stata interrotta l'alimentazione? Ho lanciato la mia macchina contro un muro?), Quindi puoi solo supporre che l'utente stia cercando (o proverebbe) di imbrogliare e renderlo vulnerabile per X minuti.


3

Il modo in cui viene gestito da EVE Online è il seguente:

  • La nave inizia a deformarsi 15 secondi dopo la disconnessione. Se viene deformato, la nave non si deformerà. (La nave del tuo personaggio inizierà a "scappare" dopo 15 secondi, a meno che non sia "intrappolata" da un altro giocatore)

  • Il timer PVP (tempo che il giocatore "scappa" mentre è impegnato in un combattimento PvP) è impostato su 3 minuti. (Questo per contrastare un numero di altri timer).

  • Il timer NPC rimane a 1 minuto, ma la nave si deforma dopo 15 secondi, a meno che l'ordp non venga confuso da NPC.

  • Quando una nave è bersaglio bloccato dal giocatore, dovrebbe passare al timer pvp (per contrastarlo usando il timer da 1 minuto se si disconnette in circostanze in cui non è bersaglio finché non viene impostato il timer).



2

Se hai un modo di modellare i soliti schemi dei giocatori in battaglia, potresti inviarli in una modalità AI fino a quando non si riconnettono o la battaglia termina a seconda di quale evento si verifichi per primo. Ma non dare loro ricompense (exp, oggetti, ecc.) Per la battaglia a meno che non ritornino in X tempo.


0

Realizzerei una sorta di isteresi. Puoi usare la carota e il bastone. Ma scegliere quale usare può essere basato sul track record (potresti anche fare un'analisi della loro connessione e dell'attuale "abilità di vittoria" e usarla.). Spero che lo faresti di persona di persona. Modello semplice:

  • Se sono "cattivo" e io DC ottengo il bastone. Ora sono più cattivo.
  • Se sono "cattivo" e completo non ricevo il bastone ma non ricevo nemmeno la ricompensa. Ora sono più vicino all'essere buono.
  • Se sono "bravo" e io DC non ottengo il bastone ma non ricevo nemmeno la ricompensa. Ora sono più vicino all'essere cattivo.
  • Se sono bravo e completo ottengo la ricompensa. Ora sono più bravo.

Puoi abusarne sì. Ma farlo potrebbe richiedere più sforzo del morso del proiettile. (Se per esempio ci fossero voluti 2 DC per farti male potresti tecnicamente sbarazzarti della metà delle tue perdite. Ma mitiga alcuni abusi e nel caso di giocatori meno che intelligenti tutti gli abusi).

Concesso usando questo significa che i tabelloni non si sommeranno al 100%. Dal momento che puoi DC mentre è buono e non registrare una perdita. Ma l'altro buon giocatore può registrare una vittoria. Inoltre, non sommare al 100% significa che 2 giocatori possono cooperare spegnendo il giocatore DC per accumulare vittorie.

Quindi non infallibile, ma l'aggiunta dell'analisi bayesiana della connessione gamestate + potrebbe probabilmente rilevare la stranezza e rendere questo schema a prova di proiettile. (Puoi sconfiggere l'analisi bayesiana ma gli umani non sono bravi a farlo e la matematica è fuori portata per la maggior parte delle persone, per non parlare del tempo impiegato per "innescare" una lotta per farcela con DC che va bene).


Hmmm. Riesco a vedere un problema non rettificabile ... Se una vincita "cattiva" potrebbe lamentarsi di non ottenere la "vincita" a meno che non si realizzi uno schema documentato in modo molto chiaro. Che ovviamente invita a intromettersi. Possibile soluzione: nascondere i premi fino alla fine di una "stagione" che almeno consolida il problema ... ma può portare a giocatori "cattivi" che cadono dal tempo "investimento" sprecato. Win-win?
Nero,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.