|| りんごのお味 || でこぽんリンク || りんごの味見 || りんごの聖地 || マクドサーバー ||

カップインバグに関する考察

先日からゴニョゴニョ書いてたカップインバグについてのぬるぽさん的な考察です。こういったシステム的な細かい話はどうでもいいって人は読まずに飛ばしておくと幸せになれるかもしれません。読みたい方だけ続きからどうぞ。

 

このカップインバグ、登場したのは昨年2012年10月24日の大型アップデート以降。何でこうなっちゃったのか…というと、恐らくパッティングの際のシステム内部(クライアントプログラム)における演算処理ロジックの変更ではないか、というもの。それまで同伴者間による結果の相違は発生していなかったものがいきなり発生する以上、必ず何処かでクライアント間で異なる演算結果が出されていることを意味する訳で、異なる結果が出されている以上別々の演算が行われていることの証左になると見ています。

ということで早速、考察してみます。先ずは大型アップデート以前の仕組み。

大型アップデート以前

注目するべき点はオレンジ枠の『ボール座標データ』のところ。これはターン側クライアントプログラムで出された演算結果、すなわち『カップまでのボールの位置、方角や距離』を指すパケットデータ。要するにターンクライアントからはホストクライアント、同伴者クライアントに対し、この打った後ボールがカップからどの方角にどれだけの距離の位置に行くかのパケットデータのみがインターネットを通じて投げられていた訳です。このあたりの詳細なパケットの中身は『SO、ハッキング、スニファリング、ハッキング』等で探してみると出て来るのでほぼ確定だと考えています。これらは古い情報ですがYouTubeに動画での解説もあったりするので興味のある方は探してみると良いかも…程度です。(探すの大変そうだからポインタだけ…謎の文字列『zxCOEc_nb5w』。ここから更に正体探せば…使い方の説明も何処かにあったはず…かなり昔から周知の手法なので今更隠す必要もないとは思うけど直接のポインタは無しで。)

ちなみにグローバル版だとこのパケットスニファリングによるパケット改竄手法は使えません(悪名高きGameGardによる)が、これらの何の対策も取られていなかった日本版(恐らく半島版も)では恐らく使えたものと思われます。が、後述の理由により現在はもう使う意味が無いものになったと考えられます。このパケットスニファリングによるパケット改竄は、SOクライアントが出した演算結果(ボールの止まる位置がカップからどの方角にどの程度離れたところかの数値データ)をインターネットに出してしまう前に一旦留め置き、場合によっては書き換えてPCという機械から回線に送り出す手法です。なのでこのパケット改竄においてカップからの方角0、距離0を示すデータを投げてしまえばカップインしたことになってしまう訳です。別の動画ではティーショットをウエッジでチョンっと打ち、FWからパターでショット==>パケ改竄==>カップインというふざけた実演になっていましたが、18ホール全てこれをやると全てのホールで各ホール最大2打でまわれるので-36という素晴らしいスコアになる様です。(パケット改竄が不可能:gamegardなグローバル版ではフォーラムでもカップインバグの指摘は無いので従来通りのターンクライアント側での演算処理だと想像されます)

話がだいぶ飛んじゃいましたが赤枠赤地の演算・計算部分に注目すると、特徴的なのはターン側のクライアントでの演算で他のクライアントにデータを投げる前にカップイン成否の結果が決まっていること。あとはボールの転がる軌跡を描画するための処理だけを残りのクライアントがそれぞれ行っているに過ぎず、何れもカップインすることになります。ですから当然、入っていたり入ってなかったりといった不可解な現象は起こらない訳です。

さて、ここからは想像ですが、大型アップデート以降の仕組みについてロジカルに考えて見ることにしましょう。ということでチャート。

大型アップデート以降

最も大きな違いはオレンジ枠のクライアント間に投げているデータの内容。以前は『カップまでの方角・距離』でしたが、『ショットの方角・強さ』に変わっています。どういうことかと言うと、この投げられたデータのみでは全てのクライアントでまだカップインの成否は決まっていないということを表わします。この与えられたデータを基に全てのクライアントがそれぞれ別個にカップインの成否を計算(赤枠赤地)している訳です。まぁ普通なら同じ結果が出るハズ(クライアントプログラムとしては同じという前提だから)なんですが、何故か異なる結果が出て来るのが摩訶不思議なSOのウンコな点。

では何故、計算結果が違ってくるのか…ですが、考えられる要素は幾つか存在します。簡単に思いつくものだけざっと列挙しておくことにします。

  1. ランダム要素
    入るか入らないかギリギリのデータだった場合、このランダム要素を適用し結果を出している可能性があります。ぬるぽさんはFFの有無でこのランダムテーブルに差が設けられているのではないかと推測します。FF有無両方でプレーする限り、同じ様に打っているにも関わらずFF無しの方がギリギリ外れる(蹴られる、かすめるといった状態)ことが増える気がします。要はギリギリの時にお情けが貰えるのがFF付き、お情けが貰えないのがFF無し、的な感覚でしょうか。
  2. ログイン時の判定テーブル差
    だいぶ前から薄々感じていたことなのですが、寄りまくる、入りまくる時もあれば微妙に寄らない、微妙に入らないことが続く時があります。ログインし直すといきなり逆になることもあるのでこれも想像の域を出ませんがログイン時に適用されるこの判定テーブルに差が設けてある可能性がありそうということ。ランダム要素とも関連しているのかもしれませんが、演算の際にどのテーブル(若しくは確実度というか良い方向性に転ぶという概念)を参照するかの違いなのかもしれないと感じます。例が悪いですが、四捨五入なのか、二捨三入なのか、みたいなイメージです。

アップデート前のところでハッキングに触れたのでここでも少し。この『ショットの方角、強さ』のデータだけではパケット改竄の手法がかなり難しくなります。何故かと言うと、絶対に入る『方角・強さ』というものは先のカップまでの残り距離(ゼロ=カップイン)・方角(距離ゼロなのでどのような方角かは問わない)と違い、ショット地点からの相対で常に変化するのでユーザ側で算出のしようが無い(事前に準備のしようがない)からです。これが算出できるならわざわざパケット改竄せずにその方向にその強さで打てば入るので改竄の意味すら無くなります。ということでもしかすると先述のパケット改竄インチキへの対応としてロジックを変えた結果、副作用としてカップインバグが生まれたのではないかと想像しています。半島を含め、どのぐらいのユーザがパケットを改竄していたのかは分かりませんが、少なくともパターを使ったインチキは誰も出来なくなったことだけは確かなんだろうなと思います。(ティーショットや他のクラブでのショットでは相変わらずパケット改竄は可能だとは思いますが…難易度は少し高くなりそうです)

この様な理由でカップインバグを取り除くことが非常に難しいのではないかと想像しています。以前のロジックに戻してしまうとパケ改竄の可能性が生まれ、判定を画一にしてしまうと誰でも寄って入りまくる仕様になる可能性が出てきてしまうのではないでしょうか。ぬるぽさん的にはポンポン寄って入りまくってくれる方が好きなんですけどねぇ。興味があるのは半島の方で1次パッチとして修正された点がどのぐらいプレーに影響し始めたか…という点。という理由から日本には適用せず、半島だけで様子見してる気がしなくもありません。その変化で内部的に何をやっている(やっていた)のかがおおよそ想像つくのがポイントでしょうか。カップインバグについて日本版では直すのか、そのまま放置されるのか暫く観察しようかと思っています。

※チャートでは省略しましたが、クライアント間の通信においては必ず中間にサーバが介在し、サーバを中心としたスター型ネットワークを形成していると思われます。

※件の代物が日本版で使えるのか、こんな怪しいモノをPCに入れて大丈夫なのかは知りません。ぬるぽさん的には怪しすぎてというか怖くて入れる気にすらなりませんが。使ってバレたらどうせBANだろうしねぇ。

※あの怪しい代物に関してはこれ以上一切の情報を持っていないので悪しからず。これ以上を知りたい方はご自身の責任においてお調べくださいです。

 

| コメント(0) | トラックバック(0) |

トラックバック(0)

トラックバックURL: http://mmaacc.ddo.jp/m/mt5/mt-tb.cgi/1787

コメントする

Author

たく@藤沢
Blog Facebook Custom RSS/Atom はてな Tumblr Twitter YouTube

覚え書きカテゴリ

▽で展開|△で折畳み

月別 アーカイブ

▽で展開|△で折畳み
CPU hour
MEMORY hour

この覚え書きについて

このページは、たくが2013年7月19日 09:16に書いた覚え書きです。

ひとつ前の覚え書きは「エルダの一部モーション改善」です。

次の覚え書きは「グローバル版メンテ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ddo.jp

アイテム

  • マウント変換アダプター
  • A賞 綾波レイフィギュア
  • クリスタルプリント無料体験キャンペーン|富士フイルム
  • 東山ひがし茶屋街
  • 紅葉は期待薄な兼六園
  • 秋の兼六園