国産オンラインRPGの先行者「PHANTASY STAR ONLINE」成功を支えたバックエンド(前編)
|
2002年2月24日
コンシューマゲームコンソール用としては世界初のネットワークRPGであるドリームキャスト(以下“DC”)版「PHANTASY STAR ONLINE」(以下“PSO”)。昨年6月にはドリームキャスト版「Ver.2」が登場し、また年末にはPC版も発売され、いずれも多くのプレーヤーを集めることに成功している。果たして、その舞台裏はどうなっているのか? 成功の理由はどこにあるのか? PSOのサーバを運営を担当する、ソニックチームの節政暁生氏と外木和洋氏にお話を伺った。前編となる今回は、PSOのサーバができるまでの課程、そして注目のPSOサーバシステムについて掘り下げてみたい。
PSOのできるまで
――そもそも最初はどういったカタチでプロジェクトがスタートしたんですか?
節政暁生氏(以下“節”):はじめにまず「ネットワークゲームが作りたい」っていうのがあったんですね。でも「ネットワークゲームを作るためにどうしたらいいか?」というと、誰も知っている人がいない。じゃあまず、金のかからない範囲ではじめてみよう、と。最初の段階ではLinuxのインストール方法さえ知らなかった(笑)
――となると、「行けるぞ」と確信に至るまでにはかなり時間がかかった?
節:結構かかりましたね。まずは簡単なシステムでネットワークゲームを試してみようと「チューチューロケット!」(※1)用のサーバを作って、ドリームキャスト用として稼働させてみました。PSO用のサーバはこの段階ですでに作っている最中だったんですが、手応えを感じたのはこの「チューチューロケット!」用サーバを運営したときですね。「これならいけそう」という。そこから、またPSOのサーバ構築を続行しています。プログラム的にはPSOが先に始まってるんですが、途中で「チューチューロケット!」にほぼ半年くらいかかりきって、また再開、という流れになっています。
※1 「チューチューロケット!」 ソニックチーム製のアクションパズルゲーム。画面上へ任意に配置できる矢印パネルにより,特定の法則性を持って走り回るネズミを自分のロケットに誘導。一方でパネルで対戦相手の邪魔をしつつ、最終的にネズミを対戦相手よりもたくさん自分のロケットに乗せれば勝ちとなる。家庭用ゲームコンソール初の全世界オンライン対戦可能なタイトルだとして話題となった。現在はゲームボーイアドバンス版も販売中。
――「チューチューロケット!」はモデムでなんの不満もなくプレイできました。あれはどこからどこまでサーバ側で処理しているんですか?
節:「チューチューロケット!」の場合は、純粋にマッチング(※2)だけです。あとはDC間で処理しています。
※2 マッチング ロビーサーバなどを用意して、ユーザーとユーザーを引き合わせること。「チューチューロケット!」の場合、サーバはマッチングのみを行っているため、オンライン対戦のデータはすべてDC間でやりとりされる。
――その仕様は“PSOに向けたテストの一環”としての意味合いが強かったと理解していいのでしょうか?
節:ですね。「チューチューロケット!」で見つかったいろいろな問題点を潰しながら、同時に機能拡張したものが最終的なPSOサーバになっています。今から振り返ってみると、「チューチューロケット!」のサーバは「全然ダメダメじゃん」といったところなんですが、実験としては非常に役に立っていますね。
――問題というのは?
節:ネットワークの不安定さってものがこんなにあるのか、と。パケットが届いたり届かなかったり、というのが頻発するんですよ。そこでPSOでは、パケットが届かなくても大丈夫なように心がけています。あと、実験の一環としてなんですが、「チューチューロケット!」はネットワーク利用料が無料だったじゃないですか。あれは「いったいコストはどこまで下げられるか」というのを意識的に試していました。今だから言えることなんですけど、「チューチューロケット!」のサーバって月々いくらのレンタルサーバだったんですよ。「そのへんのサーバでもなんとかなるじゃん」みたいな(笑) 普通の人が「ネットワークゲームサーバ運営してます」なんて聞くと、経済ニュースで見るようなスゴいサーバを用意してるんじゃないかとなるんですが、こちらとしてはその程度のもので大丈夫だろうと踏んでました。実際に大丈夫だったんですが。
――「チューチューロケット!」は最大で何人くらいが同時に接続できたんですか?
節:1000人くらいですね。最盛期でそれくらいです。でも「チューチューロケット!」の場合は人数が少ないからなんとかなったのであって、PSOはもっとちゃんとしたサーバが必要だな」とも思いました。PSOは「チューチューロケット!」に比べるとだいぶいいサーバを使ってますよ(笑)
――“ちゃんとした”部分というのは?
節:PSOのサーバっていうのは、「チューチューロケット!」のようにマッチングだけというわけには当然いきません。サーバ側で処理しているものがあります。でも一方で、全部サーバ側で処理するとなると、非常に重くなってしまう。それでPSOでは、重要なデータだけをサーバ経由で送るようにしています。重要でないものはDC同士で送りあうという。PSOのネットワークシステムは、クライアント・サーバ型とPeer to Peerの複合型なんですよ。重要なパケットっていうのは、チャットやメールの内容だったり、アイテムの受け渡しだったりといった、絶対に届かなきゃならないもの。これらはサーバを介して送っています。
――では、絶対に届かなきゃならない“わけではない”もの、というのは?
節:実は、通信の中で占めているパケットって、移動がほとんどなんです。全体の8割くらいは移動のデータですね。全パケットの8割だと、どうしてもパケットが届かなかったときの影響も大きいですから、こちらとしてははじめから、パケットが届かなくてもつじつまが合うように作っているわけです。たとえば、キャラクターが歩くじゃないですか。そうするとたまに歩いてるキャラが画面上でぴょんと飛んだりすることがありますよね。あれはパケットがロストしているということになります。言ってしまえば、チャットデータなどに比べると、移動データの優先度は大したものじゃない。なので、移動という大半の部分で信頼度を下げることによって重要な部分の精度を上げています。具体的な送信プロトコルの話ですと、移動データはUDPで、チャットやメールやアイテム受け渡しはTCP/IPで。
――ブロードバンドアダプタ(BBA)やPCで遊んでいる人だと、ブロードバンドルータを利用している人も多いと思います。そうすると、UDPによる通信が問題になったりするかと思うんですが。
節:そうですね。DC版でもVer.2からUDPのオン/オフっていう設定が入ったんですが、あれはブロードバンドルータとかで使えない場合があるために追加したものです。UDP使えない人はTCPで。TCPの方が若干重いので、UDP使えるならUDP使った方が速いですね。UDPが使える使えないというのは、プロバイダによっても変わってきますので。
サーバはゼロから“手作り”で
――実際のPSOサーバはどの程度の規模なんですか?
節:DCとPC版で、それぞれ別にサーバを用意していいます。DC版は全部で29台。日本に13台、アメリカに9台で残る7台がヨーロッパで稼働しています。PC版は日本に10台ですね。国内のサーバはDC版もPC版も池袋のサーバセンタに置いてあります。PC版は現在、日本サーバしかないですが、今後は韓国とか台湾とか中国とか、アジア方面を中心に展開して行こうと考えています(※3)。
※3 インタビュー後の2月2日にPSOの韓国語版が韓国で発売された。
――DC版でサーバ29台とのことですが、その構成は?
節:まずデータベースがあって、あとはゲームのサーバと認証サーバですね。まず認証があって、そこからゲームの「Ship」(※4)へ入っていって。データベースサーバには他よりも若干いいマシンを使っています。あとは基本的に同じ性能ですね。導入時期によって微妙にスペックの差はありますが。
※4 Ship サーバのこと。PSOではゲームサーバをこう呼ぶ。認証サーバからShipにログインしたユーザーは、Ship内に用意される複数の「Block」から1つを選択し、ロビーへと下りていくことになる。Ship(=サーバ)あたりのユーザー数は最大1600〜1700人程度。Blockひとつあたり最大100人程度。
――複数のゲームサーバは、クライアント側からどうやって接続されるのですか?
節:まったく等価だと考えてもらっていいと思います。それぞれがバックエンドのデータベースと繋がっています。
――ということは、負荷分散のスイッチがあるのですか? ロードバランサのような。
節:純粋にプログラムで処理しています。ハード的に何かをやっている、というわけではありません。簡単に言うと、Shipがサーバで、ひとつのBlockが1プロセスになっています。だから、ロビー間の移動は簡単にできるわけですね。あとプログラム的な話でいえば、スレッドは使わないようにして、高速化しています。サーバだとスレッドを使ったものが多いですが、重くなるので…。そのあたりも分厚い本を読んで1から勉強して(笑)
サーバに関して言うと、普通のネットワークゲーム用のものに比べてかなり軽くなっていると思います。
――1台1台のサーバはどの程度のスペックなんですか?
節:サーバと言っても、その実はPCですね。Pentium 4などを搭載したごく普通のPCで、メモリだけは普通よりも多めに積んであるという。だから値段的にはそれほどかかってないです。OSにはLinuxを採用しています。Linuxを採用したのもコスト面からの理由が強くて、単純にコストがかからないモノを、というのが選択した経緯です。
――当然、テストサーバなどの初期投資もかかったかと思うんですが。
節:もともとゼロからソニックチーム社内でシステムを構築したものですから、ハード面での初期設備投資費用はまったくといいほどかかっていません。テストサーバも、余ってるPCにLinuxを突っ込んで(笑) DCって電話回線じゃないですか。なので、回線エミュレータを構築してPC側にモデム繋いで、それとDCを繋いでテストした程度。ホントに金はかかってないです(笑) 機材を買うときには稟議書を書かなきゃならないんですけど、小口で買える範囲でしか買ってないんですよ。3万円以内で買えるものしか買ってない(笑)
――データベースサーバもLinuxベースで?
節:そうですね。むっちゃ安いのを使ってます(笑) 「チューチューロケット!」を「無料でやろう」というところから始めたので、その流れもありますね。実際、ソフトのなかでもっともかかるのはデータベースなので。オラクル買った日には毎年何百万かかるか(笑)
――ハード同様、なるべく低コストで、ということですね。
節:PSOが出た当時、プレイ料金を徴収するゲームなんて国内にはほとんどなかったじゃないですか。PSOは最初の1カ月無料ですが、その期間が終わった後、どれだけのユーザーが利用料金を払ってくれるかはまったく未知数だったわけです。そんな状況で「10万人来ればペイできます」なんてシステムは、とてもじゃないけど作れなかった。最悪、1カ月経ったら誰も利用しなくなったとしてもなんとか続けられるようなものに抑えなければと。ケチケチ路線で(笑)
――最初の採算分岐点は、購入者のどれくらいが利用料金を払うと仮定して設定されていたんですか?
節:ソフトを購入した人の1割くらいですね。とにかく低く見積もって。
――その“ケチケチ路線”が成功の秘訣?
節:ですね。完全な黒字状態です。
――某社さんがゲームサーバ1000台用意すると聞いたとき「1000台もあるとあると1日に何台も壊れそうだなあ」と思ったんですが(笑)、PSOでも日本のサーバだけで26台。これだけあると、壊れることもあるんじゃないですか?
節:ありますよ。1番酷かったのはDC版の発売日初日に壊れたのが(笑) 初日にデータベースサーバがふっ飛んだんですよ。それでハードウェア交換。1番肝心なものだったので大変でした。
外木和洋氏(以下“外”):復旧には1晩かかりました。
節:初日なんで、朝からわーっと来るじゃないですか。それで「入れないぞ」ということになって。それでデータベースがおかしいということになっていったん直したんですが、これでよしと思ったところで今度は夜になって派手に壊れて。
外:まぁ、壊れるたびにそのトラブルに対するノウハウも貯まりますね。もう1台データベースやハードウェアを用意しておいたり、とか。また別件でサーバが飛んだこともあったんですが、そのときはサーバの入れ替えだけで対処できたので、3時間くらいで対処できました。「一度災害が起きるとそれに対する災害本部が機能するんだなぁ」と(笑)
ブロードバンド回線対策
――Ver.2が発売になったときに中さんにお話を伺わせていただいてるんですが、その時、ブロードバンド系のプロバイダはモデムの時よりさらに対応が難しかったと話されていました。
節:DC版で最初に一番苦労したのはプロバイダ側の問題ですね。「このプロバイダでは動きません」というのが結構あって。「チューチューロケット!」のときに1回体験していて、当然動く動かないという話はいろいろサポートセンタに来たわけですよ。それで大分対応はできたんですが、PSOは母数が違うので…。開始当時はネットワークでゲームをサービスする、なんてことをまったく想定していないプロバイダも結構ありまして、メールとHTTPしか通らない、なんていうのもあったんですよ。
外:セガにはプロバイダとしてISAOがあるので相当助かっています。おかげで、ユーザーさんには「動かないならちょっとISAOで試してみてください」と言えるわけですよ。それでも動かないならなにかしら問題がある、と。一方でプロバイダさんには、ISAOのデータを必要に応じて提供しています。「こうやって対応してください」と。
――データのシェアでプロバイダ側の問題はなんとか対応できたんですか?
節:いえ(笑) なので、ウチにはシス研(「システム研究開発部」)っていうのがあるんですが、そこがドリームキャストとPSOを各CATV会社さんとかに持っていって、一件一件実際に動かして。
外:イメージとしてはキャラバン隊ですね(笑) 「明日広島でーす」みたいな(笑) 一件一件処理していくわけですが、電話受けるたびにどんどん遠くの街に行っているんですよ。ああ、ずいぶん遠くまで行ったなぁと(笑) それでいま、プロバイダからの「どうしたらいいですか」といった連絡っていうのはほとんどなくなっています。
――たとえば弊社のメールサービスでも、SMTPは本当は100件同時に受けられないといけないのに20件しか受けられない、といった制限かかってるプロバイダがあって困ります(笑)
節:あと、1番の敵はADSL(笑) ADSLは規格自体があまり良くなくて、データがたまに欠落するんですよ。速いけども、エラーが出る。そのせいでADSLでは動かない、というケースもまだ多くありますね。タイミングの問題というよりも、データの欠落が痛いです。「ルータからMTU(※5)の設定をいじってください」とか、そういった対処をしていますが、Ver.2の頃からそういった連絡が増えてきましたね。ちなみにPC版ではその問題にもようやく万全な対処ができました。
※5 MTU Maximum Transmission Unitの略で、1回の転送で送信できるデータの最大値のこと。送信側は接続ごとに、受信側も端末ごとに数値を設定できる。単純なデータ送受信時だけでなく、通信時にエラーが発生した際に送り直すデータサイズの値としても用いられるため、単純に大きければいいというものでもない。
――PC版が発売されたのは昨年末。DC版の登場時に比べて、ブロードバンド回線の普及率が格段に向上しています。
節:PC版のサーバを立ち上げたとき大きな問題となったのは、みんなLANで繋ぐじゃないですか。やたらとスピードが速いんですよ(笑) そこで、通信パケットが大量に来すぎて通信が切れてしまう、という、今まで出なかった問題が出始めたんですね。“速すぎる”という。ブロードバンドの普及によって、そういった細かな問題への対処も必要になってきました。
――それは、どの段階で気づいたんですか?
節:チェックに出したときですね。社内でやってるときは気づかないんですよ。
外:大量のパケットが来て回線が切れる、なんていう現象は、なかなか内部では検証しきれないですね。いくらなんでも「回線チェックするからテスター200人用意してくれ」と言うのは難しいじゃないですか(笑) 実際に稼働させてみて「あれ、なんで動かないんだ?」っていうのは、実はあります。
――弊社のも単純なニュース系ウェブサイトですが、それでもぶっつけ本番みたいなところありますからね。
節&外:(笑)
外:実際に外部からアクセスしてもらってテストするのが、チェック作業としてはもっとも難しい部分ですね。
――では、最近は接続できない、といった基本的な問題は全般的に減ってきた?
節:そうですね。これまで培ってきたものでノウハウが蓄積され、対処できるようになっています。ネットゲームの運営はこの積み重ねですね。日々問題が現れて、それに対処していくという。「チューチューロケット!」の時は、私ひとりでネットワーク全般を担当していたんですよ。で、PSOもある程度自分でやって、もうこれは人が足りないと外木を入れてもらって。
外:結局、なんだかんだ言って2人なんですけど(笑)
「PHANTASY STAR ONLINE」
(C)SONICTEAM / SEGA, 2000, 2001
「チューチューロケット!」
Original Game (C)SEGA,1999
(C)SEGA/SONICTEAM,2001
(インタビュー:加賀(ウェブ技術部)/小磯、構成:小磯)
|