ファイナルファンタジーXIの仕組み(後編)
さて、お客様が増えて緊張しつつの後編です。
前回、高速でデータの送受信をするために
UDPを使うというところまでお話ししました。
では実際のところ、FFXIはどのくらいの頻度でクライアントと
サーバの間での情報のやり取りをしているのでしょう?
答えは、『1秒間に約3回』です。
つまり、333ミリ秒に一回、
プレイヤが操作データを送信し
サーバが結果データを返信しています。
かなり頻繁に送受信してますよね。
送信処理をするための時間も含めての333ミリ秒ですから、
ネットワーク上を流れる速度をかなり高めないと
予定時間内にやり取りを完了させることはできません。
このやり取りの速度を高めるために、
スクエニのサーバとプレイヤーのプロバイダとの間の回線は、
ピアリングという方式で接続されています。
◆
またまた用語解説になりますが、
プロバイダとインターネットを接続するときの仕組みには、
『トランジット』と『ピアリング』があります。
トランジットとは、
親のプロバイダ
→親から回線を借りている子のプロバイダ
→→子から回線を借りている孫のプロバイダ
といった形でネットワークが接続されており、
孫プロバイダと契約しているプレイヤの場合、
プレイヤのパソコン→孫→子→親→スクエニのサーバ
の順に回線を経由してサーバにたどり着きます。
そうすると、子と親のプロバイダを経由する分だけ
レスポンスが悪くなります。
ピアリングの場合は
プレイヤのパソコン→プロバイダ→スクエニのサーバ
のように、直接プロバイダとスクエニが接続するため
レスポンスが格段によくなります。
◆
FFXIの場合、333ミリ秒から送信処理時間を除いた250ミリ秒を
ネットワーク内をデータが流れることができる限界時間としています。
つまり、プレイヤのPCとスクエニのサーバの間が
250ミリ秒以内で到達可能でなければいけないわけです。
ピアリングで直接つないでいると、
だいたい30~40ミリ秒でデータが到達しますので、
遅延が発生しても250ミリ秒まではだいぶ余裕があります。
しかし、トランジットの場合、全体の5%程度の
トラフィックが250ミリ秒ギリギリで相手先に到達します。
これでは、ちょっとした遅延の発生で、
データの欠けが生じてしまいます。
全プロバイダがスクエニとピアリング接続をしているわけでは
ありませんが、全体の70~80%くらいのプレイヤが
ピアリング接続によってスクエニとやり取りをしているようです。
今後もピアリング接続できるプロバイダを増やしていく
ようですから、そのうちすべての接続がピアリングに
なる日がくるのかもしれません。
そうなれば、ネットワーク遅延による
障害などは発生しなくなることでしょう。
◆
最後にFFXIのサーバがどの程度の規模で
構成されているかについて書いてみます。
PlayOnlineでは、FFXIやフロントミッションオンラインなど
イロイロなゲームを合計2000台のサーバで運営しています。
この2000台の中には、アップデートサーバや
認証サーバなども含まれていますが、
そのほとんどはゲームサーバとして運用されています。
また、サーバの設置スペース自体はまだ残り半分が
将来のタメに用意されているそうなので、
最大で3000~4000台のサーバが設置できるように
なっているようです。
ゲームとはいえ、ものすごい規模のシステムですね。
FFXIをプレイされる方は、『すげー技術使ってんだなぁ』と
プレイ前にスクエニのエンジニアさんたちに
お礼と感謝の念をささげてからプレイするようにしましょう(^-^)/
前回、高速でデータの送受信をするために
UDPを使うというところまでお話ししました。
では実際のところ、FFXIはどのくらいの頻度でクライアントと
サーバの間での情報のやり取りをしているのでしょう?
答えは、『1秒間に約3回』です。
つまり、333ミリ秒に一回、
プレイヤが操作データを送信し
サーバが結果データを返信しています。
かなり頻繁に送受信してますよね。
送信処理をするための時間も含めての333ミリ秒ですから、
ネットワーク上を流れる速度をかなり高めないと
予定時間内にやり取りを完了させることはできません。
このやり取りの速度を高めるために、
スクエニのサーバとプレイヤーのプロバイダとの間の回線は、
ピアリングという方式で接続されています。
またまた用語解説になりますが、
プロバイダとインターネットを接続するときの仕組みには、
『トランジット』と『ピアリング』があります。
トランジットとは、
親のプロバイダ
→親から回線を借りている子のプロバイダ
→→子から回線を借りている孫のプロバイダ
といった形でネットワークが接続されており、
孫プロバイダと契約しているプレイヤの場合、
プレイヤのパソコン→孫→子→親→スクエニのサーバ
の順に回線を経由してサーバにたどり着きます。
そうすると、子と親のプロバイダを経由する分だけ
レスポンスが悪くなります。
ピアリングの場合は
プレイヤのパソコン→プロバイダ→スクエニのサーバ
のように、直接プロバイダとスクエニが接続するため
レスポンスが格段によくなります。
FFXIの場合、333ミリ秒から送信処理時間を除いた250ミリ秒を
ネットワーク内をデータが流れることができる限界時間としています。
つまり、プレイヤのPCとスクエニのサーバの間が
250ミリ秒以内で到達可能でなければいけないわけです。
ピアリングで直接つないでいると、
だいたい30~40ミリ秒でデータが到達しますので、
遅延が発生しても250ミリ秒まではだいぶ余裕があります。
しかし、トランジットの場合、全体の5%程度の
トラフィックが250ミリ秒ギリギリで相手先に到達します。
これでは、ちょっとした遅延の発生で、
データの欠けが生じてしまいます。
全プロバイダがスクエニとピアリング接続をしているわけでは
ありませんが、全体の70~80%くらいのプレイヤが
ピアリング接続によってスクエニとやり取りをしているようです。
今後もピアリング接続できるプロバイダを増やしていく
ようですから、そのうちすべての接続がピアリングに
なる日がくるのかもしれません。
そうなれば、ネットワーク遅延による
障害などは発生しなくなることでしょう。
最後にFFXIのサーバがどの程度の規模で
構成されているかについて書いてみます。
PlayOnlineでは、FFXIやフロントミッションオンラインなど
イロイロなゲームを合計2000台のサーバで運営しています。
この2000台の中には、アップデートサーバや
認証サーバなども含まれていますが、
そのほとんどはゲームサーバとして運用されています。
また、サーバの設置スペース自体はまだ残り半分が
将来のタメに用意されているそうなので、
最大で3000~4000台のサーバが設置できるように
なっているようです。
ゲームとはいえ、ものすごい規模のシステムですね。
FFXIをプレイされる方は、『すげー技術使ってんだなぁ』と
プレイ前にスクエニのエンジニアさんたちに
お礼と感謝の念をささげてからプレイするようにしましょう(^-^)/
紹介されました。その2
大手サイトでご紹介を受けているいうことで
yu-riさんからお知らせのコメントをいただきました
カトゆー家断絶
http://www6.ocn.ne.jp/~katoyuu/
さんからご紹介を受けたようです。
あちらは4000万ヒットを超えるニュースページですので、
こちらへいらっしゃる方もかなりの数にのぼってます。
昨日の夜、左側のカウンタの数字を控えたメモが
私の手元にあるのですが、その数字は『6225』となってます。
あれ?すでに『10000』超えてるんですけど。。。
大手さんの集客力ってやっぱりすごいですね。
『カトゆー家断絶』からお越しのお客様へ
FFXIネタ、内容が薄くて申し訳ないです<(_ _)>
怒らずにほかのネタも見てってくださいな。
それと、ご紹介どうもありがとうございます>カトゆーさん
yu-riさんからお知らせのコメントをいただきました
カトゆー家断絶
http://www6.ocn.ne.jp/~katoyuu/
さんからご紹介を受けたようです。
あちらは4000万ヒットを超えるニュースページですので、
こちらへいらっしゃる方もかなりの数にのぼってます。
昨日の夜、左側のカウンタの数字を控えたメモが
私の手元にあるのですが、その数字は『6225』となってます。
あれ?すでに『10000』超えてるんですけど。。。
大手さんの集客力ってやっぱりすごいですね。
『カトゆー家断絶』からお越しのお客様へ
FFXIネタ、内容が薄くて申し訳ないです<(_ _)>
怒らずにほかのネタも見てってくださいな。
それと、ご紹介どうもありがとうございます>カトゆーさん
カウンター壊れた?
ページビュー設定にしているので
普段から来客数以上に数字が上がるのですが
昨晩当たりからグンと伸びてます。
またどこかのサイトさんで
ご紹介でも受けたのでしょか。。。
それともカウンターの故障?
さっぱり理由が分かりません。
アクセス解析がないってのは
やっぱ不便ですね。
普段から来客数以上に数字が上がるのですが
昨晩当たりからグンと伸びてます。
またどこかのサイトさんで
ご紹介でも受けたのでしょか。。。
それともカウンターの故障?
さっぱり理由が分かりません。
アクセス解析がないってのは
やっぱ不便ですね。
ファイナルファンタジーXIの仕組み(前編)
マイニングとかデータウェアハウスとかの話ばかり
書いていると『よくわからん(-_-)』という方も出てくると
思いますので、たまには身近なゲーム関連のお話を書いてみます。
FFXIやリネージュなどの、サーバに接続して多人数で遊ぶ
大規模オンラインRPGのことを総称して、MMORPGと言います。
(Massively Multiplayer Online Role Playing Game)
FFXIはスクウェア・エニックスがサービスとして提供し、
ユーザー数55万人、同時接続人数は最大17万人にもなります。
毎日遊んではいるものの、どういう技術でこの仕組みが
実現されているかを理解している人は少ないと思います。
日経ネットワーク2005年2月号に、
このMMORPGの仕組みを紹介する記事が載っていましたので、
私なりの解説を交えながら簡単に紹介します。
◆
FFXIは、クライアントサーバ型のシステムです。
クライアント(ユーザーのパソコン)
サーバ(スクエニのサーバ)
の連係でシステムを構成します。
プレイヤは、パソコンのマウスやキーボードを使って、
ゲーム中のキャラクターを操作します。
しかし、ただ単純にパソコンの画面に
操作結果が表示されるわけではありません。
このような流れで、処理が行われます。
1.プレイヤの操作情報をサーバに送る
2.サーバは送られてきた全プレイヤの位置や
ステータスを管理し、すべてのプレイヤの操作内容を
計算してから、結果を個々のプレイヤに返信する。
3.クライアントはサーバからの返信をもとに画面を表示する。
基本的にはこの一連の処理を繰り返しているだけですが、
この処理を短時間で済ませないと、キャラクターの動きが
ぎこちなくなったり、コマ落ちが発生して快適に遊べません。
メールやファイルの転送などでネットワークを使う場合は、
送受信の時間にばらつきがあってもそれほど影響は出ませんが、
MMORPGの場合はそれが致命傷となります。
たとえば、
ボスキャラと戦っている最中にネットワークが重くなって、
処理が返ってきたと思ったらすでに全滅していた。
なんてことがあっては、誰も利用してくれませんよね。
(初期のネットワークRPGだとこういう話がタマにありました)
FFXIでは、ネットワークレスポンスを向上させるため、
UDPという通信上の仕組み(プロトコル)を使って
クライアント-サーバ間の通信を制御しています。
◆
ネットワーク関係の用語解説をしときますと、
TCP/IPでよく使われるプロトコルにTCPとUDPがあります。
TCPはデータが相手に届いたかどうかを確認しているので、
途中でデータが失われた場合には再送信が行われます。
メールやファイルのダウンロードなど、必ず相手先に
データを届けなければいけない場合に使います。
UDPは相手に届いたかどうかの確認も無ければ
データを再送信することも無い、送りっぱなしの送信方法です。
TCPに比べ、UDPは確認手順を省略できるため、
高速なデータ送受信に向いています。
ストリーミングビデオ再生などがこの方式です。
途中で一部のデータが欠けても、雑音が少し入ったり
画像がコマ落ちしたりする程度でそれほど影響が出ません。
◆
FFXIでは、このUDPを用いてレスポンスを向上させています。
しかし、UDPはデータが途中で失われても再送信を行わないため、
『サーバ→クライアント間』でデータが失われた場合は、
結果情報が画面に反映されなくなってしまいます。
そのため、FFXIではサーバからのデータを時間内に
受け取れなかった場合、クライアント側で予測処理を行い、
欠けた分のデータを補完する仕組みになっています。
これがあるおかげで、ネットワークが一時的に重くなっても
スムーズにキャラクタ達が動いてくれるわけです。
<長くなるので次回に続く。。。>
書いていると『よくわからん(-_-)』という方も出てくると
思いますので、たまには身近なゲーム関連のお話を書いてみます。
FFXIやリネージュなどの、サーバに接続して多人数で遊ぶ
大規模オンラインRPGのことを総称して、MMORPGと言います。
(Massively Multiplayer Online Role Playing Game)
FFXIはスクウェア・エニックスがサービスとして提供し、
ユーザー数55万人、同時接続人数は最大17万人にもなります。
毎日遊んではいるものの、どういう技術でこの仕組みが
実現されているかを理解している人は少ないと思います。
日経ネットワーク2005年2月号に、
このMMORPGの仕組みを紹介する記事が載っていましたので、
私なりの解説を交えながら簡単に紹介します。
FFXIは、クライアントサーバ型のシステムです。
クライアント(ユーザーのパソコン)
サーバ(スクエニのサーバ)
の連係でシステムを構成します。
プレイヤは、パソコンのマウスやキーボードを使って、
ゲーム中のキャラクターを操作します。
しかし、ただ単純にパソコンの画面に
操作結果が表示されるわけではありません。
このような流れで、処理が行われます。
1.プレイヤの操作情報をサーバに送る
2.サーバは送られてきた全プレイヤの位置や
ステータスを管理し、すべてのプレイヤの操作内容を
計算してから、結果を個々のプレイヤに返信する。
3.クライアントはサーバからの返信をもとに画面を表示する。
基本的にはこの一連の処理を繰り返しているだけですが、
この処理を短時間で済ませないと、キャラクターの動きが
ぎこちなくなったり、コマ落ちが発生して快適に遊べません。
メールやファイルの転送などでネットワークを使う場合は、
送受信の時間にばらつきがあってもそれほど影響は出ませんが、
MMORPGの場合はそれが致命傷となります。
たとえば、
ボスキャラと戦っている最中にネットワークが重くなって、
処理が返ってきたと思ったらすでに全滅していた。
なんてことがあっては、誰も利用してくれませんよね。
(初期のネットワークRPGだとこういう話がタマにありました)
FFXIでは、ネットワークレスポンスを向上させるため、
UDPという通信上の仕組み(プロトコル)を使って
クライアント-サーバ間の通信を制御しています。
ネットワーク関係の用語解説をしときますと、
TCP/IPでよく使われるプロトコルにTCPとUDPがあります。
TCPはデータが相手に届いたかどうかを確認しているので、
途中でデータが失われた場合には再送信が行われます。
メールやファイルのダウンロードなど、必ず相手先に
データを届けなければいけない場合に使います。
UDPは相手に届いたかどうかの確認も無ければ
データを再送信することも無い、送りっぱなしの送信方法です。
TCPに比べ、UDPは確認手順を省略できるため、
高速なデータ送受信に向いています。
ストリーミングビデオ再生などがこの方式です。
途中で一部のデータが欠けても、雑音が少し入ったり
画像がコマ落ちしたりする程度でそれほど影響が出ません。
FFXIでは、このUDPを用いてレスポンスを向上させています。
しかし、UDPはデータが途中で失われても再送信を行わないため、
『サーバ→クライアント間』でデータが失われた場合は、
結果情報が画面に反映されなくなってしまいます。
そのため、FFXIではサーバからのデータを時間内に
受け取れなかった場合、クライアント側で予測処理を行い、
欠けた分のデータを補完する仕組みになっています。
これがあるおかげで、ネットワークが一時的に重くなっても
スムーズにキャラクタ達が動いてくれるわけです。
<長くなるので次回に続く。。。>
紹介されました。
どうも今日はカウンターの回りが速いと思ったら
『面白いサイトを見つけたよ。』
さんでご紹介いただいたんですね。
どうもありがとうございます<(_ _)>
でも、うちにはトラックバック来てないや(笑)
アクセス解析がないもんで、
自分のブログ名でググって気づいた次第です。
最近SEのタメになりそうなことを書いている比率が
減ってきてるんですけど、だいじょぶですかね(^-^;)
大手の有名どころさんに紹介していただけるというのは
とても光栄なことなので、今後も頑張りたいと思いまっす。
2/22 追記
その後、無事に?TBをいただきました。
どうもありがとうございます>スマイルさん
『面白いサイトを見つけたよ。』
さんでご紹介いただいたんですね。
どうもありがとうございます<(_ _)>
でも、うちにはトラックバック来てないや(笑)
アクセス解析がないもんで、
自分のブログ名でググって気づいた次第です。
最近SEのタメになりそうなことを書いている比率が
減ってきてるんですけど、だいじょぶですかね(^-^;)
大手の有名どころさんに紹介していただけるというのは
とても光栄なことなので、今後も頑張りたいと思いまっす。
2/22 追記
その後、無事に?TBをいただきました。
どうもありがとうございます>スマイルさん