« ダーク・テンプテーション | トップページ | インカ帝国の謎 »

2008年9月18日 (木)

Erigleとネットゲームの構造の話

Erigleへの意見を書いてから、そのキーワードで検索し、私のblogに来る人が多いようだ。いったいアレの何について求めにやってくるのだろうか。なんで検索キーワードの一位がErigleなんだよ・・・。

正直、気にしすぎなんだと思う。キャラクターのステータスがわかったところでなんだというのだ。ほとんどの人は自分のキャラクターが検索されまくるなんて ことはないだろう。変なタグをつけられて困るとかいう人もいたが、気にしてるのは自分と書いた人ぐらいだろう。自意識過剰というか何というか・・・。キャ ラクターから個人情報が漏れることは今のところない。あのシステムが不正かそうでないかというと、それを判断するのは運用会社の仕事である。

あのシステムの構造はサーバから送信されてくる自キャラクターの視界内のキャラクターデータの解析によるデータ収集システムと、集めたデータを集計して表示するWebアプリケーションが組み合わされたものであり、サーバへのハッキング(クラッキングと呼ばないと文句を言い出す人もいるだろうか?)は行っていないだろう。システムの製造時にクライアントのハッキングは行われたかもしれない。しかし、例えばBOTと呼ばれるような互換クライアントプログラムを流用し、システムが作成された場合、直接的にはクライアントへのハッキングは行われていないことになる。この辺は、何とでもいいわけができるだろう。BOTなどだったらソースコードの入手が可能かもしれない。だとしたら、データ収集システムを作るのはたやすいだろう。はっきり言って、Webアプリケーションを仕事で作っているような人には、技術的にはそれほど注目すべき点はないだろう。

「装備品の公開を禁止しているのに装備データが抜かれている。よって、サーバがクラッキングされている。」という意見もあるようだが、素人くさい意見だ。 それはあくまで表示上の問題であり、実際にはErigleで公開されているキャラクターのデータはクライアントに送信されているのだろう。公開・非公開の 設定にしたがって、それを表示できる形でゲーム画面に出すか出さないかの制御が入っているだけだ。データとしては送信されているわけだ。通常、プログラミ ングを行う場合、例えばゲームを作るときはキャラクターのデータをひとまとめとして扱う。一部のデータを送受信する必要がなくっても、そのまま送ってしま うというのはあり得るだろう。ネットワークを介してやりとりするデータは小さい方がいいに違いないのだが、インターネットでやりとりされるデータの最小単 位というものが存在する。携帯電話でおなじみとなったパケットのサイズが、その最低のサイズだ。パケットのデータサイズはOSの設定 や、その他の要因によって変化する。しかし、恐らくゲームのキャラクター一体分のデータ程度は楽に入ってしまう。だとしたら、必要なデータだけをより分け る処理で速度が低下するよりそのまま送ってしまった方がいいこともあるのだろう。

単にサボってプログラムが煩雑になるのを避けるため、そのまま送っているだけかもしれない。まあ、いずれにせよ、ネットゲームでやりとりされるデータは巨大なものではない。ネットゲームには高速のインターネット回線が必要みたいなことがよく書いてあったりするが、実際には超高速のインターネット回線でなくとも帯域のほとんどは遊んでいることだろう。たぶん、ゲーム中でも帯域の10%も使ってないのではないだろうか。

ゲームの通信を暗号化しろという意見もある。すでに速度優先の暗号化は行われていると思われる。この際、復号化に時間のかかる強度の強い暗号を用いることができないのはわかっているのだろうか。ゲームの画面は一秒間に何度も更新される。画面を構成するために必要なデータをサーバから受け取って、それを復号化してデータをとりだし、キャラク ターの容姿を再構成し、他にもいろいろとデータを処理して画面を描画する。これだけの処理を非常に短い時間で行うのがゲームだ。データの複合化に時間をとられすぎるのではゲームにならない。

ネットワークに起因するラグは常時発生する。ラグが発生しないようにすることは不可能だ。電気信号が光速でやりとりされていると仮定しても、距離が長くなったり、間にたくさんの機械を通ったりすればその分ラグが発生する。だから、どんなネットゲームにも先読み機能が搭載されている。ゲームが正常に動作しているのは、次の動作を予測する機能をゲームが持っているからだ。例えば、立っているキャラクターは次の瞬間も恐らく立っているだろう。走っている・歩いているキャラク ターもその状態を維持している可能性が高い。攻撃モーションに入っているキャラクターは攻撃モーションを続けるだろう。マビノギをやっているとキャラクターが壁の中に走り込んでいって、しばらくして画面が巻き戻ったり、普通に歩いていても以前の場所に戻されることがある。それはサーバからのデータが届かず、サーバとクライアントの同期ができなかったために、先読み機能だけがどんどん処理を進めてしまった結果だ。同期のデータが届いた段階で、先読みしたデータと比べて、その瞬間の状態を決定している。その同期データが遅れてしまったので変なことが起こっているように見えるのだ。

ボス戦の時などにキャラクターが大量に押し寄せてカクカクするのは、描画するべきデータの受信量が多すぎて、短い時間内に画面の描画を完了できなかったからだ。次の描画を行うときには、間の描画を省いてしまわないとダメなどうしようもない状態なのだ。

まあ、何が遅いかって、人間の反応速度が一番遅い。あらゆる処理に人間のための無駄な待ち時間を入れてあるのは確実だ。通常利用の範囲内においては、速すぎる現代のパソコンは無駄の固まりだ。

とまあ、なんだか、よくわからない話題になってしまったが、ここに来る人が期待しているようなことは書けただろうか?ここに書いたことは推測の話である。それなりにはプログラミングの経験者なので、多少の真実には迫れているとは思うが、実際にはどうだかわからない。それだけは注意である。

|

« ダーク・テンプテーション | トップページ | インカ帝国の謎 »

マビノギ」カテゴリの記事

コメント

コメントありがとうございました。

blogに何かリアクションがあるというのはうれしいものです。もしリアクションが必要ないならば、blogの管理者がコメントをつけられないように設定すればいいのです。コメントの書ける状態であるということは、いつでもコメント歓迎ということです。遠慮なしにどんどん書いてしまってください~。

で、エリグルの話。

あそこに載っていても、大半の人は影響がないはずなんですよね。普段、普通にゲームをしてて、あそこに載って困ってるという話は*あまり*聞きません。キモチワルイという話は聞きますが、自分の気持ちの問題の範囲内で収まっている場合がほとんどでしょう。

個人の情報がバリバリ出てくるようならば問題でしょうが、がんばってもゲームのキャラクターの情報しか出てこない。まあ、気にすることもないかと思います。あれがゲームにとって本当の問題であるというなら、運用会社がいずれ何とかするかもしれません。

投稿: 白石晶 | 2008年11月 1日 (土) 11時41分

はじめまして。
記事の最初に「何を求めてやってくるのだろうか」とありましたので、自分がココへ辿り着いた理由を書いておきます。
えー、それは「Erigleの問題点が知りたくて」です。
自分の周りにはどうも毛嫌いしてる人が多いのですが、自分には嫌う理由がわからなくて…。
実際にErigleで自キャラを検索し、HITした際にも「あ、載ってたスゲー…で?」ぐらいにしか思えなかったのです。
で、嫌う理由が何かあるのかと少々気になったので「Erigle 問題点」でググったところ検索上位に来ていたので辿り着いた、というわけでした。
記事を読ませて頂いた所、気にしすぎなだけ…で落ち着いたのでありがたいです。

blogにコメントするの初めてでして、過去記事にコメント残すのがマナー違反でしたら本当に申し訳ありません。(こういう言い訳は良くないんですけど)

では失礼しました。

投稿: ディル | 2008年11月 1日 (土) 10時03分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1005414/23817696

この記事へのトラックバック一覧です: Erigleとネットゲームの構造の話:

« ダーク・テンプテーション | トップページ | インカ帝国の謎 »