当サイトの読者ならとっくにご存じかもしれないが,「G-Cluster」とは,サーバー側でゲームの処理をすべて行い,画像配信によってゲームを行うという新しい形のゲーム配信システムだ(過去記事参照)。これにより,ネットワークにつながっていて,かつ入力機能と表示機能さえあれば,PCの性能をまったく問わず,セットトップボックスや,携帯電話などでも高品質なゲームが楽しめる可能性が出てきたわけだ。最近は,カプコンの往年の名作を多数リリースしたことでも話題を呼んでいる。
さて今回,クラビットのゲームオンデマンド事業部長 小野田哲也氏に時間をもらうことができたので,G-Clusterシステムの詳細について色々と話を聞いてみた。作品ではなくシステムについてのインタビューなので,どうしてもハードウェア系の話ばかりになってしまったが,そこはご容赦を。
|
ブロードバンド時代のゲーム配信について語るクラビットゲームオンデマンド事業部長の小野田哲也氏。工学博士でもある。 |
|
4Gamer:
本日はよろしくお願いいたします。いきなりハード寄りの話からで恐縮ですが,ゲームをサーバー側でやってしまうということなんですが,実際にそれを動かしているサーバーというのはどんなものなのでしょうか?
小野田哲也氏:
サーバーはゲームマシンではないので,一般的なCPUを積んだサーバーを使います。
4Gamer:
普通のWebサーバーなどで使われているサーバーと同じものなのですか?
小野田哲也氏:
ちょっと違いますね。基本的には似たようなものなのですが,ゲームの計算をしなければならないので,いわゆる画像処理をするGPU(グラフィックスチップ,以下GPU)を搭載しなければなりません。しかしサーバーにGPUを搭載することって,まずないですよね。
4Gamer:
それはそうですよね。
小野田哲也氏:
普通のサーバーではゲームの演算や画像処理をする必要はまったくないのでGPUは必要ありません。ただ,ゲームサーバーの場合はポリゴンの計算,ジオメトリの計算やレンダリングなどを行う必要がありますので,どうしてもGPUが必要になります。
4Gamer:
普通のサーバーにグラフィックスカードを載せたものという解釈でよいですか?
小野田哲也氏:
ええ,そうです。
4Gamer:
普通のサーバーにも載るものだと思いませんでした……。
4Gamer:
それにしても,そもそもこういうシステムを考え出した背景はどんなものだったんでしょうか。
小野田哲也氏:
そうですね,G-Clusterの発想からお話ししましょう。
家庭用のゲームマシンやPCに搭載される,CPUやグラフィックデバイスは,当面ムーアの法則に従うくらいの勢いで開発が続いていくと思います。家庭用ゲームマシンがアップデートされる数年のサイクルの間にも,CPUやGPUは改良品が作られているわけで,数年前の製品と比べると,明らかに高速なCPUやGPUが安く手に入ります。そういったものをサーバーに搭載することができるので,それを皆さんで“割り勘”にしていったほうがいいのではないかというのがG-Clusterの発想です。
4Gamer:
ハイエンドテクノロジーに対してのイニシャルコストの分配ですか。
小野田哲也氏:
ええ。そのときのハイエンドの製品は,CPUなりGPUなり色々とありますが,非常に割高です。ゲーム用PCなどを自分で購入する人はいるでしょうが,24時間ゲームをしている人というのはまずいないですよね。でも,そこにはそれなりに高性能なCPUなりが存在するわけで,能力が無駄に眠っているわけです。これをサーバーにまとめてみんなで効率よく使おうということです。
サーバーになれば,新しいものが出てきても,どんどん追加してやることができます。G-Clusterのいいところは,クラスタリングサーバーになっていて,ヘテロな環境をサーバーとして持つことができるんです。
4Gamer:
ヘテロ?
小野田哲也氏:
この場合の「ヘテロ」というのは,1種類のサーバーだけじゃなくて,構成の違ったCPUやGPUの違うサーバー同士を組み合わせて使えるという意味です。古い筐体をカスタマイズして作ったようなサーバーもあれば,新世代のサーバーもあり,それらが一緒になって動作しています。
4Gamer:
それらをどのように管理してるんですか?
小野田哲也氏:
G-Clusterのマスターコントローラのようなサーバーがありまして,それぞれのサーバーの状況をずっと監視しています。そしてお客様からゲームの実行要求がきた場合,CPU,GPU,メモリの使用状況に応じて,一番余裕のあるサーバーに割り当てることになります。
4Gamer:
具体的には,サーバー1台でどれくらいの数のゲームを走らせられるものなのでしょうか?
小野田哲也氏:
そこは,さすがにゲームによって全然違います。2,3世代前の3DのFPSのようなものであれば,いまの1Uクラスのサーバーで処理できるのは,30前後といったところです。もっとレガシーな,あまり3Dを使わない単純なゲームですと,最新のサーバーなら3桁くらいは走らせることができます。
4Gamer:
なるほど,ゲームの処理部分についてはそれくらいの負荷だろうとは思うのですが,G-Clusterでは,画面を圧縮して送信していますよね。その部分の負荷も含んでそれくらいのパフォーマンスなのでしょうか?
小野田哲也氏:
そうです。
4Gamer:
思ったより多いですね。圧縮部分はハードウェア処理ですか?
小野田哲也氏:
いえ,実はソフトウェアなんですよ。現状のハードウェアはだいたい3年で4倍の性能アップを続けていますので,来年の今頃同じことを聞かれると,サーバーの性能は同じ数字ではなかったりします。エンコードについても同じで,現在はMPEG-2コーデックを使用していますが,これは非常に軽いコーデックなんです。処理が軽いから現在使用しているわけですが,こういったコーデックが使用する帯域幅と画質はトレードオフの関係にあるわけです。圧縮率を下げれば画像は綺麗になりますが,帯域幅を食ってしまうことになります。
4Gamer:
そうですね。
小野田哲也氏:
これが,MPEG-4やH.264などの新しいコーデックを使えば,同じ帯域幅でより綺麗な画面が出せることになります。しかし,そういったコーデックでは圧縮に時間がかかるという問題があります。将来的に,もっとCPU速度が上がったり,コーデックの性能が上がるとH.264なども実現可能になるかもしれませんし,もっと低ビットレートで高画質なものも実現できるかもしれません。
4Gamer:
現在のネットワークの使用帯域はどれくらいなのでしょうか。
小野田哲也氏:
使用帯域といいましても,これは設定次第なんですよ。絵を綺麗に出そうと思えば,あまり圧縮しないで送ればよいわけで,デバイスごとに設定を変えています。
4Gamer:
デバイスごと,というのは,受け取る相手によってビットレートを変えているということですか?
小野田哲也氏:
そうです。受け取る相手が高ビットレートのものを受け取れなかったりすると,ビットレートを落としたり,画像の解像度を落として圧縮したりしています。同じゲームを同じ人がやる場合でも,どのデバイスでやっているかサーバー側で確認できるので,それによって設定を変えています。
4Gamer:
なるほど。
小野田哲也氏:
……といって終わらせるのもなんですし,元々の質問の回答もさせていただきますね(笑)。
現在,国内のビデオオンデマンドのサービスなどでは大まかに2Mbps程度の帯域を使ってストリーミング配信することが多いかと思います。その帯域を決めた背景には,おそらくADSLだと見られないお客様が増えてきてしまうということが理由ではないかと思っています。電話局からちょっと遠いとそれくらいが限界でしょうし。
G-Clusterもだいたい同じ理由で,2Mbps弱で収まるようにVBR(Variable Bit Rate)の設定で配信しています。映像が速く動いているときには帯域を多く使いますが,静止画ではほとんどデータを送らない設定です。その上限が2Mbpsを超えないようにしているわけです。世の中のたいていの人が光回線のユーザーであれば2Mであろうが3Mであろうが構わないんですが,現状ではまだこのあたりに設定しています。
4Gamer:
言語があまり関係ないシステムなので,ブロードバンドインフラさえ整っていればワールドワイドで展開できそうですね。
小野田哲也氏:
そうですね。韓国のKT(旧Korea Telecom)のG-Clusterのフィールドトライアルでは,多目的モバイルフォン用にもサービスを提供したんですが,IEEE802.11Bだったもので,1Mbps弱の設定で実験していました。
4Gamer:
では,帯域よりゲーマーが気にするであろうフレームレートはどれくらいなんでしょうか。標準的にはいくつくらい出るものですか?
小野田哲也氏:
日本国内のサービスでの映像のフレームレートは25fpsくらいです。ゲームとかデバイスによって変えることもできますよ。
4Gamer:
なるほど。経験上ですが,20fps以上あればたいがいの作品はゲームとして「遊べるレベル」にはなるかなといった印象ですので,ほぼ問題ないですね。フレームレートがそれくらいだとレイテンシもうまく誤魔化せているのでしょうか?
小野田哲也氏:
レイテンシはあるんですが,やっていただけると分かるのですが,そんなには気にならないところには収まっていると思いますよ。
4Gamer:
なるほど。クラビットでは,G-Cluster以外に映像配信などの事業も行っているわけですが,そういった部分の技術も使っているんですか?
小野田哲也氏:
映像配信というかCDNの技術ですね。CDN(Contents Distribute Network)のユーザーナビゲーションを使っています。
4Gamer:
なるほど。先ほどのレイテンシの話にもちょっと関連するのですが,CDNの場合,キャッシュサーバーなどがかなり重要な役目をしますよね。映像配信などでは,ある程度先読みして遅延を防いだりするのが常識的に行われています。しかしゲームの場合はそういったことはできませんよね。
小野田哲也氏:
ゲームの場合はキャッシュサーバーは一切使用していません。すべてオンタイムで計算処理しています。
4Gamer:
インフラ自体はCDNのものを使っていると考えていいのでしょうか?
小野田哲也氏:
CDNのユーザーナビゲーション部分のみ,そうですね。
4Gamer:
では,サーバー自体はあちこちに配置されているんでしょうか? すべてオンタイム配信というのは,やはりなかなか厳しいような気がするのですが。
小野田哲也氏:
バックボーンネットワークが混在した場合であっても,配信に影響がないように「あちこち」に配信サイトを設けて地域負荷分散を行っています