MMOはPvP中の切断をどのように処理する必要がありますか?


20

MMO(必ずしもMMORPGである必要はありません)で、PvPの途中で切断されたプレイヤーに対処するためのテクニックは何ですか?

特に、ネットワーク(または実生活)の問題のために切断された人々に悪影響を与えないようにし、それらに関与している人々に悪影響を与えないようにするにはどうしますか?

そして、重要なこととして、切断を不正行為の方法として使用できないようにするにはどうすればよいでしょうか?

回答:


15

私が取り組んだいくつかのオンラインCCGでこの問題が発生しました。私が見た最高のソリューション:

1)プレーヤーは互いに直接接続するのではなく、サーバーに接続する必要があります。また、プレーヤーにストリーミングするデータで相手のIPアドレスを渡さないでください。これにより、プレイヤーが勝つために相手をオフラインにするサービス拒否攻撃を防ぎます。

2)接続の切断=負け、相手が勝ちます。あなたがドロップした場合、それは特定の損失を避けるためのドロップだったと仮定する必要があります。

3)切断は一定の時間再接続を試行するため、わずかなネットヒカップがあなた自身の過失によってあなたを強制的に失うことはありません。理想的には、誰かがケーブルを誤って蹴った場合に誰かが再接続できるほどの時間であるが、待機中に相手がイライラせずに眠りに落ちるのに十分な時間です。約45〜60秒が適切だと感じたと思います。

4)プレイヤーが対戦相手を報告できるようにします。これは、ポリシーに迷惑な方法を見つける人を防ぐために必要なキャッチオールです。たとえば、口頭で虐待しているために、相手がそこから抜け出すためにドロップしたり、ゲームの長さを伸ばすために絶えず切断して再接続したり、損失を避けるために妨害したりすることなどがあります。すべての悪い動作を止めることはできませんが、それを報告するゲーム内メカニズムを含めて、カスタマーサポート部門に残りを処理させることができます。


13

人気のMMORPG RuneScapeは1分間のタイマーを使用します。接続を解除すると、キャラクターは1分間世界に残り、攻撃に対して脆弱になります。


1
DAoCでも同じです。あなたがこれをしなければ、人々は戦いを避けるために切断することができるので、それは素晴らしい作品です。以前はDAoCに "Quit To Desktop" / qtdコマンドがあり、人々を即座に終了させて​​いましたが、このため削除されました。
オラフルWaage

8

オンラインレーシングゲームで一度この問題に取り組む必要がありました。このゲームでは、負けているプレイヤーがレコードを失うことを避けるためにコンソールをオフにすることがよくありました。ただし、PvPの状況には非常によく当てはまります。

私の解決策は次のようになりました:

  1. 試合の開始時に、すべてのプレーヤーが参加してプレーが開始されると、プレーヤーが試合に負けた場合の結果を計算します。私たちのレースゲームでは、「失われた」とは「最後の場所に来た」ことを意味し、通常の結果は「プレイヤーランクからマイナスNポイント」になります。

  2. 結果を安全な場所に保存します(Savegame、Leaderboard、Online data areaなど)。

  3. 結果とともに、「GameStarted」フラグを保存します。これは、ゲームが始まったことを示しています。後で必要になります。

  4. ゲームが完了したら、実際の結果を計算し、プレーヤーのスコア/統計に適用します。「GameStarted」フラグの設定を解除します。これは通常のゲーム完了プロセスです。

  5. ただし、プレーヤーが接続を外したり、ケーブルを抜いたり、電源を切ったりすると、最終的にはゲームメニューに戻ります。メニューコードでは、「GameStarted」フラグを確認します。設定されていれば、ゲーム内で以前の接続が切断されたことを確実に検出できます。その後、保存された結果をプレイヤーのスコア/統計に適用できます。プレイヤーがゲームに負けた場合と同じです。また、プレイヤーに何が起こっているかを知らせる警告を出すこともお勧めします。その後、ゲームの途中で接続を解除すると結果が生じることがわかると、その動作が変化し始めることがわかります。


それはかなりcです。明らかに、すべてのゲームタイプに同じようにうまく適用することはできませんが、潜在的な結果を事前に計算するという概念は素晴らしいものです。
キロタン

1
しかし、偶発的な切断にはかなり厳しいが、その分野でソリューションを使用することができます。
クズカイ

5

これを実現する唯一の方法は、ゲームの構造の問題だと思います。不正行為を望ましくないものにする2つの方法があります。罰と報酬です。したがって、不利な罰を望まない場合は、ドロップしなかったプレイヤーに報酬を与える方法を考えてください。

PvPからの報酬が被征服者の体の略奪品である代わりに(非常に悪いことをする)、経験値、金、または他の何か(ポイント?ランキング?)のような報酬を獲得できます。プレイヤーの1人がキックオフされた場合、残りのプレイヤーは報酬を受け取り、キックオフされたプレイヤーは何も獲得せず、何も失うことはありません。それがランキングシステムである場合を除き、その場合、退場するプレーヤーはいくつかのランキングポイントを失う可能性があります。


それはユニークな分析です、私はそれが好きです。
クズカイ

これは、お互いを知っている2人のプレーヤーによって悪用される可能性があります。敗者には罰則がないため、彼らは好きなだけこれを繰り返すことができます。
-unor

5

Lineage IIは次のようにします。

  • 戦闘中にゲームクライアントを終了することはできません-戦闘中のチームメイトを攻撃したか、攻撃したか、治癒したかに関係なく、戦闘が開始され、最後のアクションの後15秒間「戦闘スタンス」になります作られた。
  • とにかく切断した場合やゲームがクラッシュした場合、キャラクターは消えるまで15秒間ゲーム内に留まります。攻撃しているものは何でも自動攻撃を続けますが、スキルは使用しません-AFKに行った場合と同じです。
  • そこ瞬時に切断する方法は、他のクライアントと同じアカウントに再接続することによって、しかし、。これは、PvPで行われたときにコミュニティによる境界線の不正行為と見なされ、一部の不正行為ツールにはそれを使用するオプションもあるため、あまり使用されていません。しかし、PvEを噛むために噛みすぎた場合、一部の人々はこのトリックを使用して不必要な死亡を回避します(ただし、ゲーム内のアイテムにはほとんど同じもの、つまり「祝福されたエスケープスクロール」があります)。
  • PvPフラグが設定されたゾーン(たとえば、攻囲中の城の地面)および特定のインスタンス化されていない壮大なボスエリアに再接続すると、キャラクターは代わりに最も近い町(セーフゾーン)に移動します。したがって、「切断」を避けるためにそこで切断すると、チームにペナルティが課せられます。これは、ゲームの社会的規範によって強く推奨されないことを意味します。

個人的には、私は同様にそれを行い、プレイヤーが切断時にアクションを事前に定義できるようにします(滞在して戦い、aggroを避けて最も近い安全なゾーンに走り、エスケープの通常のスクロールを使用し、祝福されたスクロールを使用します)エスケープ、...)、プレイヤーがログインしていなくても、キャラクターをゲームの世界に残します。


いいね!私はそれが好きです!:)
[OK]をクリック

3

切断された人は十分に刺されると死に、もう一人は殺されたとみなされます。より寛大なものはすべて悪用されます。

一般的に、あなたの体が世界を去る前に1〜5分のタイマーがあります。


3

切断の原因を特定する方法はありません(電源がオフになったのですか?マシンを壁にぶつけて激怒しましたか?) X分間。


3

EVE Onlineがこれを処理する方法は次のとおりです。

  • 船は、切断後15秒でワープを開始します。ワープスクランブルされている場合、船はワープしません。(あなたのキャラクターの船は、他のプレイヤーに「トラップ」されない限り、15秒後に「逃げ出します」)

  • PVPタイマー(PvP戦闘中にプレイヤーが「逃げる」までの時間)は3分に設定されます。(これは他の多くのタイマーに対抗するためです)。

  • NPCタイマーは1分のままですが、ワープがNPCによってスクランブルされない限り、船は15秒後にワープします。

  • 船がプレイヤーによってロックされたターゲットである場合、pvpタイマーに切り替える必要があります(タイマーが設定されるまでターゲティングできない状況で切断された場合、1分タイマーを使用してそれに対抗します)。



2

戦闘におけるプレイヤーの通常のパターンをモデル化する方法がある場合、再接続するか、戦闘が先に終わるまでAIモードに送信できます。ただし、X時間以内に戻って来ない限り、戦闘に対する報酬(経験値、アイテムなど)を与えないでください。


0

何らかのヒステリシスを実装します。ニンジンとスティックを使用できます。ただし、どちらを使用するかの選択は、実績に基づいて行うことができます(それらの接続と現在の「勝利可能性」の分析を行い、それを使用することもできます)。うまくいけば、それを直接やります。単純なモデル:

  • 私が「悪い」と私がDCである場合、私はスティックを手に入れます。私は今より悪いです。
  • 私が「悪い」と私が完了した場合、私はスティックを取得しませんが、報酬も取得しません。今、私は善に近づいています。
  • 私が「上手」でDCの場合、スティックはもらえませんが、報酬ももらえません。私は今、より悪い状態に近づいています。
  • 私が元気で完了したら、報酬がもらえます。私は今、もっと元気です。

はい、それを悪用できます。しかし、そうすることは、単に弾丸を噛むよりも多くの努力を要するかもしれません。(たとえば、DCが2つ悪くなった場合、技術的には損失の半分を取り除くことができます。しかし悪用を軽減します。賢いプレイヤーが少ない場合は、すべての乱用)。

これを使用すると、スコアボードの合計が100%になりません。良い状態でDCを行い、損失を記録することはできません。しかし、他の良いプレーヤーは勝利を記録することができます。また、合計が100%にならないということは、2人のプレイヤーが協力してDCプレイヤーをオフに切り替えて勝利することを意味します。

だから絶対確実ではありませんが、ゲーム状態と接続のベイズ分析を追加すると、おそらくファンキーネスを検出し、このスキームを防弾にすることができます。(あなたはベイジアン分析を打ち負かすことができますが、人間はこれを行うのが得意ではなく、ほとんどの人にとって数学は手の届かないところにあります。


うーん。修正不可能な問題が1つあります...スキームを非常にオープンに文書化しない限り、「悪い」勝利が「勝利」を得られないと文句を言う場合があります。もちろん、それは干渉を招きます。考えられる解決策:「シーズン」が終わるまで報酬を隠します。これにより、少なくとも問題が整理されますが、無駄な時間「投資」から「悪い」プレイヤーがドロップする可能性があります。ウィンウィン?
ブラック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.