節政暁生氏(左)と外木和洋氏(右) |
コンシューマゲームコンソール用としては世界初のネットワーク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が使える使えないというのは、プロバイダによっても変わってきますので。