Wie gehen MMOs mit der Trennung während des PvP um?


20

Welche Techniken gibt es in einem MMO (nicht unbedingt in einem MMORPG), um mit Spielern umzugehen, die sich mitten im PvP trennen?

Insbesondere: Wie können Sie verhindern, dass Personen beeinträchtigt werden, die aufgrund von Netzwerkproblemen (oder sogar Problemen im realen Leben) vom Netz getrennt werden, während Sie diejenigen Personen nicht beeinträchtigen, die sich mit ihnen befassen?

Und vor allem, wie stellen Sie sicher, dass das Trennen der Verbindung nicht als Betrugsmethode verwendet werden kann?

Antworten:


15

Wir hatten dieses Problem mit einigen Online-CCGs, an denen ich gearbeitet habe. Beste Lösung, die ich gesehen habe:

1) Spieler MÜSSEN sich mit dem Server verbinden, nicht direkt miteinander, und Sie sollten NIEMALS IP-Adressen von Gegnern in den Daten, die Sie an die Spieler streamen, weitergeben. Dies verhindert Denial-of-Service-Angriffe, bei denen ein Spieler seinen Gegner zum Sieg zwingt.

2) Verbindung unterbrochen = Sie verlieren, der Gegner gewinnt. Wir müssen davon ausgehen, dass ein Sturz ein Sturz war, um einen gewissen Verlust zu vermeiden.

3) Disconnects versuchen für einige Zeit, die Verbindung wiederherzustellen, damit Sie durch einen leichten Netz-Schluckauf nicht unverschuldet zum Verlieren gezwungen werden. Im Idealfall ist die Zeit lang genug, um es jemandem zu ermöglichen, die Verbindung wiederherzustellen, wenn er versehentlich gegen das Kabel getreten hat, aber kurz genug, damit der Gegner nicht frustriert wird und beim Warten einschlafen kann. Ich denke, wir fanden ungefähr 45 bis 60 Sekunden richtig.

4) Erlaube den Spielern, ihre Gegner zu melden. Dies ist ein notwendiger Haken, um zu verhindern, dass jemand einen nervigen Weg um Ihre Politik findet. Vielleicht ist er so beschimpft, dass der Gegner einfach abbricht, um herauszukommen, oder er trennt sich ständig und stellt die Verbindung wieder her, um die Länge des Spiels zu verlängern, oder er blockiert, um einen Verlust zu vermeiden, oder was auch immer. Sie können ALLES schlechte Benehmen nicht aufhalten, aber Sie können einen Spielmechanismus einbinden, um es zu melden, und dann den Rest Ihrer Kundendienstabteilung überlassen.


13

Das beliebte MMORPG RuneScape verwendet einen 1-Minuten-Timer. Wenn Sie die Verbindung trennen, bleibt Ihr Charakter eine Minute lang in der Welt, ist anfällig für Angriffe und was auch immer.


1
Gleiches gilt für DAoC. Es funktioniert großartig, denn wenn Sie dies nicht tun, können die Leute die Verbindung trennen, um Kämpfe zu vermeiden. Früher gab es in DAoC den Befehl "Quit To Desktop" / qtd, der dazu führte, dass die Benutzer sofort beendet wurden. Dieser Befehl wurde aus diesem Grund entfernt.
Ólafur Waage

8

Ich musste dieses Problem einmal in einem Online-Rennspiel angehen, in dem Spieler, die verloren hatten, häufig ihre Konsolen ausschalteten, um zu vermeiden, dass der Verlust in ihren Aufzeichnungen auftauchte. Dies gilt jedoch sehr gut für jede PvP-Situation.

Meine Lösung sah so aus:

  1. Wenn zu Beginn des Spiels alle Spieler beigetreten sind und das Spiel beginnen soll, berechnen Sie das Ergebnis, wenn unser Spieler das Spiel verliert. In unserem Rennspiel bedeutet "verloren" "auf den letzten Platz gekommen" und das übliche Ergebnis wäre "minus N Punkte vom Spielerrang".

  2. Speichern Sie das Ergebnis an einem sicheren Ort (Spielstand, Bestenliste, Online-Datenbereich usw.).

  3. Speichern Sie zusammen mit dem Ergebnis ein "GameStarted" -Flag. Dies bedeutet nur, dass das Spiel begonnen hat. Wir werden es später brauchen.

  4. Wenn das Spiel beendet ist, berechne das tatsächliche Ergebnis und wende es auf die Punktzahl / Statistik des Spielers an. Deaktivieren Sie das Flag "GameStarted". Dies ist der normale Vorgang zum Beenden des Spiels.

  5. Wenn der Spieler jedoch die Verbindung trennt, das Kabel abzieht oder das Gerät ausschaltet, kehrt er schließlich zum Spielemenü zurück. Im Menücode prüfen wir, ob das Flag "GameStarted" vorhanden ist. Wenn es gesetzt ist, sind wir sicher, dass wir eine Unterbrechung im Spiel von früher erkannt haben. Wir können dann das gespeicherte Ergebnis auf die Punktzahl / Statistik des Spielers anwenden. Es ist dasselbe, als hätte der Spieler das Spiel verloren. Es ist auch eine gute Idee, einen Alarm auszulösen, der den Spieler über das Geschehen informiert. Sobald er sieht, dass es Konsequenzen für das Trennen der Verbindung während des Spiels gibt, wird sich das Verhalten langsam ändern.


Das ist ziemlich gerissen. Natürlich kann es nicht für alle Spieltypen gleichermaßen angewendet werden, aber das Konzept, die möglichen Konsequenzen im Voraus zu berechnen, ist gut.
Kylotan

1
Ziemlich hart für ein versehentliches Trennen, könnte jedoch eine Lösung in diesem Bereich gebrauchen.
Kzqai

5

Ich denke, der einzige Weg, dies zu erreichen, ist eine Frage der Struktur Ihres Spiels. Es gibt zwei Möglichkeiten, Betrug weniger wünschenswert zu machen: Bestrafung oder Belohnung. Wenn Sie also keine negative Bestrafung wollen, überlegen Sie, wie Sie den Spieler belohnen können, der nicht gefallen ist.

Anstatt dass die Belohnung aus dem PvP die Beute des Körpers des Eroberers ist (was das Fallenlassen zu einer sehr schlechten Sache macht), wird durch das Gewinnen eine Belohnung wie Exp., Gold oder etwas ganz anderes verliehen (Punkte? Rangliste?). Wenn einer der Spieler abgesetzt wird, erhält der verbleibende Spieler die Belohnung und der Spieler, der abgesetzt wurde, erhält nichts, verliert aber nichts. Es sei denn, es handelt sich um ein Ranglistensystem. In diesem Fall kann der Spieler, der das Spiel verlässt, einige Ranglistenpunkte verlieren.


Das ist eine einzigartige Analyse, ich mag es.
Kzqai

Dies könnte von zwei Spielern ausgenutzt werden, die sich kennen. Sie können dies beliebig oft wiederholen, da der Verlierer keine Strafe bekommt.
oder

5

Lineage II macht das so:

  • Sie können den Spielclient während eines Kampfes nicht verlassen - jeder Kampf beginnt, egal ob Sie angegriffen haben, angegriffen wurden oder einen kämpfenden Teamkameraden geheilt haben und Sie sich in "Kampfhaltung" befinden, die nach der letzten Aktion 15 Sekunden lang anhält wurde gemacht.
  • Wenn Sie die Verbindung trotzdem trennen oder Ihr Spiel abstürzt, bleibt Ihr Charakter für diese 15 Sekunden im Spiel, bevor er verschwindet. Es wird sogar automatisch angegriffen, was immer es angegriffen hat, aber es werden keine Fertigkeiten eingesetzt - genau wie bei AFK.
  • Es gibt jedoch eine Möglichkeit, die Verbindung sofort zu trennen, indem Sie mit einem anderen Client erneut eine Verbindung zu demselben Konto herstellen. Dies wird von der Community als grenzwertiges Betrügen angesehen, wenn es im PvP ausgeführt wird. Einige Cheat-Tools bieten die Möglichkeit, es ebenfalls zu verwenden, sodass es dort nicht häufig verwendet wird. Wenn im PvE zu viel gebissen wird, um zu kauen, wenden einige Leute diesen Trick dennoch an, um unnötige Todesfälle zu vermeiden (obwohl es Gegenstände im Spiel gibt, die beinahe dasselbe ermöglichen, nämlich die "gesegneten Fluchtrollen").
  • Durch das erneute Verbinden mit einer Zone mit PvP-Flagge (z. B. Burgboden während einer Belagerung) und bestimmten nicht instanziierten Gegenden mit epischen Bossen wird der Charakter stattdessen in die nächste Stadt (sichere Zone) verschoben. Das Trennen der Verbindung, um ein "Verlieren" zu vermeiden, ist mit einer Strafe für Ihr Team verbunden, was bedeutet, dass es von den sozialen Normen des Spiels stark abgehalten wird.

Persönlich würde ich es ähnlich machen und den Spielern nur erlauben, die Aktionen, die ihr Charakter bei einer Trennung ausführt, vorab zu definieren (bleiben und kämpfen, zur nächsten sicheren Zone laufen, Aggro vermeiden, eine normale Fluchtrolle verwenden, eine gesegnete Rolle von verwenden) entkomme, ...) und lasse die Charaktere in der Spielwelt bleiben, auch wenn der Spieler nicht eingeloggt ist.


Nett! Ich mag das! :)
Klicken Sie auf

3

Derjenige, der die Verbindung getrennt hat, wird sterben, sobald er genug erstochen wurde, und der andere wird für die Tötung gutgeschrieben. Alles, was milder ist, wird ausgenutzt.

In der Regel dauert es 1 bis 5 Minuten, bis Ihr Körper die Welt verlässt.


3

Es gibt keine Möglichkeit zu bestimmen, warum die Verbindung getrennt wurde (ist der Strom ausgefallen? Habe ich meine Maschine wütend gegen eine Wand geworfen?), Sodass Sie nur davon ausgehen können, dass der Benutzer versucht (oder versuchen würde), sie zu betrügen und anfällig zu machen für X Minuten.


3

So geht EVE Online vor:

  • Das Schiff beginnt 15 Sekunden nach dem Trennen mit dem Warpen. Wenn es Warp-Scrambling ist, wird sich das Schiff nicht wegwinden. (Das Schiff deines Charakters beginnt nach 15 Sekunden zu "rennen", es sei denn, es wird von einem anderen Spieler "gefangen".)

  • Der PvP-Timer (Zeit bis zum "Weglaufen" des Spielers im PvP-Kampf) ist auf 3 Minuten eingestellt. (Dies dient zum Zählen einer Reihe anderer Timer).

  • Der NPC-Timer bleibt bei 1 Minute, aber das Schiff verzieht sich nach 15 Sekunden, es sei denn, der NPC verschlüsselt den Warp.

  • Wenn ein Schiff vom Spieler als Ziel gesperrt ist, sollte es auf den PvP-Timer umschalten (um dem mit dem 1-Minuten-Timer entgegenzuwirken, wenn die Verbindung unter Umständen unterbrochen wird, bei denen es nicht als Ziel ausgewählt werden kann, bis der Timer eingestellt ist).



2

Wenn Sie die üblichen Muster der Spieler im Kampf modellieren können, können Sie sie in einen KI-Modus versetzen, bis sie sich wieder verbinden oder der Kampf beendet ist, je nachdem, was zuerst eintritt. Aber gib ihnen keine Belohnungen (Belichtung, Gegenstände usw.) für den Kampf, es sei denn, sie kehren innerhalb von X Sekunden zurück.


0

Ich würde eine Art Hysterese implementieren. Sie können die Karotte und die Peitsche verwenden. Die Auswahl der zu verwendenden Elemente kann jedoch auf der Grundlage der Erfolgsbilanz erfolgen (Sie können auch eine Analyse der Verbindung und der aktuellen "Win-Fähigkeit" durchführen und diese verwenden.). So würden Sie es hoffentlich persönlich machen. Einfaches Modell:

  • Wenn ich "schlecht" bin und ich DC, bekomme ich den Stock. Mir geht es jetzt schlechter.
  • Wenn ich "schlecht" und vollständig bin, bekomme ich nicht den Stock, aber ich bekomme auch nicht die Belohnung. Ich bin jetzt näher dran, gut zu sein.
  • Wenn ich "gut" und ich DC bin, bekomme ich nicht den Stock, aber ich bekomme auch nicht die Belohnung. Ich bin jetzt näher dran, böse zu sein.
  • Wenn ich gut und vollständig bin, bekomme ich die Belohnung. Mir geht es jetzt besser.

Sie können es ja missbrauchen. Dies könnte jedoch mehr Aufwand bedeuten, als nur in die Kugel zu beißen. (Wenn es 2 DCs nimmt schlecht zum Beispiel könnte man technisch loswerden Hälfte der Verluste bekommen. Aber es tut mildert einige Missbräuche und im Fall von weniger als geschickten Spielern all Missbrauch).

Wenn dies verwendet wird, summieren sich die Anzeigetafeln nicht zu 100%. Da kann man zwar gut gleich und keinen Verlust verzeichnen. Aber der andere gute Spieler kann einen Sieg verbuchen. Wenn die Summe nicht 100% ergibt, können 2 Spieler zusammenarbeiten und den DC-Spieler ausschalten, um Gewinne zu stapeln.

Also nicht narrensicher, aber die Bayes-Analyse von Gamestate + -Verbindung könnte wahrscheinlich Funkiness erkennen und dieses Schema kugelsicher machen. (Sie können die Bayes'sche Analyse besiegen, aber die Menschen sind nicht gut darin, und die Mathematik ist für die meisten Menschen unerreichbar, ganz zu schweigen von der Zeitinvestition, um einen Kampf "vorzubereiten", um damit fertig zu werden, dass DC in Ordnung ist.)


Hmmm. Ich sehe ein nicht behebbares Problem ... Wenn "schlechtes" Gewinnen sich darüber beschweren könnte, dass ihr "Gewinn" nicht erreicht wird, es sei denn, Sie machen das Schema sehr offen dokumentiert. Was natürlich zum Einmischen einlädt. Mögliche Lösung: Verstecke Belohnungen bis zum Ende einer "Saison", die das Problem zumindest konsolidiert ... aber dazu führen kann, dass "schlechte" Spieler von "Investitionen" in verschwendete Zeit abfallen. Win-Win?
Schwarz
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.