2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

最近のトラックバック

ダメ人間友の会

無料ブログはココログ

« FFXIでも数字を選んで宝くじ(´∀`)(BlogPet) | トップページ | 6月から後部座席のシートベルト着用が義務化 »

2008年5月24日 (土)

モグボナンザでFFXIのシステム仕様を妄想してみた。・゚・(ノ∀`)・゚・。

モグボナンザでくじを購入したときに、お任せモードで5桁の数字を決めていったんだけど、数字の出方にどうも偏りを感じたので、なんでだろーなーなんてちょっと考えてみたんです・・・・が、結局、当然わかるわけもなく。。。┐(´∀`)┌

FFXIのバックエンドは、OracleのRACの固まりであることは、Oracle 10g Worldでの発表会などでも喧伝されていて結構有名な話しだけど、ゲーム内で発生するような乱数については、dbms_randomなのか、アプリケーションサーバ内で独自のランダム関数で作ってるのだろーかなんてちょっと疑問に思っちゃいました。

そーいや、FFXIのシステムの仕様ってどーなってんだろーと昔考えたとき、酷く極論すると、FFXIのシステムってのは、PlayOnlineのユーザIDを主キーとして、それにキャラクター名、アイテム、イベント、ミッションの進捗等は、全てユーザには見えない裏側で個別にIDが振られていて、紐付けられているんだろうなーなんて軽く妄想してました。

-----------------------------
サーバ構成はこんな感じかなぁ・・・
・ロビーサーバ
→ログイン、課金認証の入り口となるサーバ群?
・アプリケーションサーバ
→ユーザ操作対する挙動や結果を演算する実処理サーバ?
・ワールドサーバ
→各ワールド内と各エリアを管理するサーバ?
・ゲームデータベースサーバ
キャラクターに関するアイテム等情報や競売情報のサーバ群?


-----------------------------
で、FFXIで実際に遊んでいるときの裏の動きはこんなかなーなんて・・・
ユーザがクライアントPCでFFXIのゲーム操作

操作内容がクライアントPCからサーバーへデータ送信

サーバ側フロントエンドアプリケーションで処理

サーバ側バックエンドのデータベースに結果を反映

処理結果がサーバからユーザクライアントPCに送信

処理結果を画面表示


-----------------------------
画面表示用の部品、キャラクタのテクスチャや背景のテクスチャ等は、基本的には全部、クライアント側に入っているので、サーバ側からクライアントPCに送信される処理結果には、位置関係の情報やモーションの指定したコードなんかだけが返却されてきていると思うんだけどねー。

それに、NPCやイベントで表示される台詞、また新アイテムのグラフックなんかも、基本的にはバージョンアップ際に、ダウンロードするバージョンアップファイルに含まれていて、台詞なんかのテキストには、明らかにキャラクタ名を代入するための変数のような物なども見受けられ、また、アイテムのグラフィックなどにも必ずユニークなIDが振られています。

つまり、あるキャラクターAさんが移動する操作をした。自分から見てキャラクターAさんのX,Y座標がいくつずれたので、次の瞬間には、この位置にいるから、こんな感じで表示しなさい、そのときに表示する台詞のコードはYYYYで、キャラクターAさんの手に表示する武器・アイテムのコードZZZZだよーって感じのデータが送られて、その結果をクライアント側で表示しているのだろうと・・・

FFXIのゲーム画面右上に表示されているRead/Sendの数字が小さくなって、警告を表す赤色や黄色くなったりすると周りキャラも自分も止まっているのは、位置情報のやりとりのデータ送受信が、ネットワーク負荷か、サーバ負荷か、自分のクライアントPCの問題のためにできなくなり、位置情報が送信されてこないため、ずっとおなじ位置にいるものとしてクライアントPC側が処理しているため・・・

んで、現実では、実際にキャラクターは動き回っており、Read/Sendが正常な値に戻るとキャラクターの位置情報が一気に更新され、A地点→B地点→C地点と移動する様子が表示されれば自然に見えるのが、A地点→B地点への位置情報飛ばされて、A地点→C地点みたいな位置情報更新が走ると、一瞬前まで、すぐ目の前に見えていたキャラが遠くワープしているように見えているんだろうと思うと結構つじつまが合う気がします・・・(;´∀`)

なーんて考えると、まぁ、位置情報を解析して、サーバ側に位置情報などを送信する際に割り込みを掛けて、偽の位置情報に書き換えて送ってしまうのが、移動系のチートツールなのかなー?なんて妄想もしてみたり・・・。・゚・(ノ∀`)・゚・。

ちょっと今回は、トンでも理論を展開してみましたが、あながち全くの妄想でもないのかなーなんて思っています。もちろんチート対策や機密保全、セキュリティのため、FFXIの仕様は公開されておりませんが、SEっぽい職業な皆さんは、どー思いますか(´∀`)?

« FFXIでも数字を選んで宝くじ(´∀`)(BlogPet) | トップページ | 6月から後部座席のシートベルト着用が義務化 »

FFXI」カテゴリの記事

コメント

FFXIのシステム構成については

・スタート時の構成
 日経コミュニケーション2001/03/05
・最新の構成
 DB Magazine 2008/03

にスクエニ執筆で詳しく載っています。

ゲームデータは全て「1キャラクタ1ファイル」のファイルベースでの管理だそうです。利点として、パフォーマンスボトルネックの排除と、バージョンアップ毎に柔軟にデータ構成を変更できることを挙げています。

Oracleは課金とロビーの管理くらいにしか使ってないようです。高々50万人の会員管理になんでRACなんか必要なのかよくわかりませんw

とおりすがるひとさん、おいでやす!(´∀`)

コメント、タレ込みありがとうございますっ!
ハードとしては、スタート時の構成は、Sun、Oracleのバージョン入れ替えと共にDELLになったと言うには記事で見かけましたが、最近の構成、しかもつい数ヶ月前のDB Magazineでの特集ってーのは見てみたいですねー。

バックナンバー探してみます!ありがとうでした!

コメントを書く

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

トラックバック

« FFXIでも数字を選んで宝くじ(´∀`)(BlogPet) | トップページ | 6月から後部座席のシートベルト着用が義務化 »

Advertisement


  • カスタム検索

Analyze

  • blogram投票ボタン