Game Developers Conference 2012レポート

【GDC 2012】「Microsoft Developer Day」レポートその1

クロスゲームプラットフォームとしてのWindows 8とMetro


3月5日~9日開催(現地時間)

会場:San Francisco Moscone Center


 「GDC 2012」会期2日目は、昨日に引き続きチュートリアルセッションが数多く執り行なわれた。このチュートリアルセッションの人気ぶりが、現在のゲーム業界の世相を表しているのだが、やはり今年も昨年に引き続き、Google主催の「Google Developer Day」の人気ぶりが凄かった。この日は、この他、「Unity Developer Day」「Qualcomm Developer Day」なども執り行なわれている。

 筆者の参加した「Microsoft Developer Day」はセッションのメインテーマが、2011年9月にMicrosoftが開催した大イベント「BUILD」で詳細アナウンスされた「Windows 8」で、目新しさに乏しかったこともあってか、例年と比べると人気は低かったように思い受ける。Google Developer Dayに入室できなかった人たちが、「何も参加しないよりは」という感じで流れてきた受講者も多かったようで、開場後は空席が目立っていたのに、セッション開始直前になって一気に席が埋まるという事態が起こっていた。とはいえ、セッション事態の内容は密度が濃く、Windows 8に関して一通り学べるようにはなっていた。

 本レポートでは、このMicrosoft Developer Dayで執り行なわれたセッションのエッセンスをまとめることにする。




■ 基調講演ではMicrosoftプラットフォームの好調ぶりをアピール


Microsoft Developer Dayの開会宣言的な基調講演を行なったRob Copeland氏(Partner Group program Manager,Graphics,Microsoft)

 Microsoft Developer Dayの基調講演では、Xbox 360が、累計6,600万台の販売実績があること、Kinectの累計販売台数が1,800万台で、最も短期間で売れた民生家電製品としてギネスに記録されたことが報告された。また、2011年末には、ワールドワイドで90万台もXbox 360が売れたとのことで、非常好調だと言うことが意気揚々と語られた。日本のXbox 360の状況とはまさに陰と陽の関係だ。

 Windows Phone 7は、5万タイトルのアプリケーションがリリースされており、毎日数百ペースの割合で新作アプリが登場しているほど人気が高いことがアピールされた。また、Windows Phone 7ユーザーの70%がXbox Liveでゲームをダウンロードした経験があり、その80%がXbox Liveの新会員だという。

 現在WindowsベースのPCは12億5,000万台が利用されており、うち、5億2,500万台がWindows 7ベースだという。2012年には4億台のPCが売れる見込みがあり、結果、人々が使うPCのうち5億台以上でWindows 8を動作できるようになるだろうと、Microsoft側は見積もっている。

 広がるMicrosoftプラットフォームを相互に結びつけるエンターテインメント向けネットワーキングサービスがXbox Liveであり、このXbox LiveはWindows 8に標準搭載される。

 Windows 8は2012年に登場予定とされているが、このWindows 8時代に突入後は、Xbox Liveを架け橋にして、スマートフォン、タブレット、PC、Xbox 360の全てで1つのゲームを透過的にプレイできる環境を提供するという。さらには、異なるハード……具体的にはスマートフォン、タブレット、PC、Xbox 360のいずれの組み合わせ間でも、相互にマルチプレイができる仕組みを実現していくことをアピール。言葉には出さなかったが、GoogleのAndroidやAppleのiOSよりも、幅広い情報機器間で相互にコンピュータ・エンターテイメントを提供していける……と言うのがMicrosoftの強みだということなのだろう。




■ Windows 8のMetroをゲームのクロスプラットフォームとしても訴求したいMicrosoftの思惑


Metro Style app APIs

 続くセッションでは、Windows 8の新しくも特徴的な開発プラットフォームである「Metro」について、ゲーム開発よりな機能解説が行なわれた。

 Metroとは、一般的にはWindows 8が提供する新しいユーザーインターフェイスの形として紹介されることが多いが、技術的視点から見た場合には、Windows環境下の新しいアプリケーションプラットフォームとして説明される。


Live Tile

 Windows 8の特徴的なマスで区切られたアイコンのようなウィンドウのようなMetro UIは、Metroプラットフォーム上で動作しているアプリケーションが立ち並んだ状態なのだ。このアイコンのようなタイル状態は「Live Tile」と呼ばれ、単なるアプリの起動アイコンではなく、それ自体がアプリの動作状態を表す情報表示ウィンドウ的な役割を果たしている。感覚的にはWindows Vista以降に搭載されたガジェットのような振る舞いをするイメージだ。

 Metroスタイルアプリケーション(以下Metroアプリ)は、Live Tile状態でクリック(あるいはタッチ。以下略)すると、Metroアプリは全画面表示がなされる。全画面状態はアスペクト比4:3では1,024×768ドット、16:9では1,366×768ドットが最低対応要件となり、Snap Viewと呼ばれる画面端に縦長に帯状に表示される表示モードにもMetroアプリは対応しなければならない。ただし、「全画面で表示して下さい」という警告表示を行なうだけでもいいとのことだ。


サポートすべき画面縦/横への対応は必須ではないが、対応が奨励される


Metroアプリは常にVSYNC有効

 Metroアプリは、全画面に描画されるピクセルの全てをMetroアプリ側でコントールできるのも特徴で、昔の一般的なデスクトップアプリのようにWindowsのシステム側のウィンドウフレームやメニュー画面などが出てくることがない。だからこそ、ゲームアプリケーションを製作するには適しているという。

 グラフィックス描画にはDirectX(Direct3D)が利用できるので、当然プログラマブルシェーダベースのグラフィックスが利用できる。描画の最大フレームレートは、そのWindows 8環境の設定に依存し、最大フレームレートから1/1、1/2、1/3……という感じの設定の仕方でフレームレートを下げることはできる。


Metroアプリの実行形態

 Metroアプリは、「Contracts」という仕組みを利用することで互いに情報をやりとりすることができ、基本Contractsとしてデータの共有を行なうShare、検索結果をやりとりするSerach、文字や画像を初めとした各種データを取り出して受け渡せるPickerなどがある。例えば、ゲームをプレイしていてそのキャプチャ画面をチャットアプリなどを利用して送る場合などにはこのContractsの仕組みが利用されることになる。

 各Metroアプリは、Windows Live ID(Xbox Liveアカウント)でログインしてから使うことになり、各ユーザーごとに各Metroアプリのステートデータ、設定データがXbox Live側のクラウドに保存される。

 これはどういうことかというと、例えば、ゲームならば、途中経過のセーブをクラウド側に行なう事ができると言うことだ。もし、MetroベースのゲームがWindows 8ベースのPC、Xbox 360、Windows Phoneで提供されている場合は、Windows 8でプレイして途中でやめて、その続きをXbox 360やWindows Phoneでプレイできると言うことだ。


Windows 8版のMetroベースの「ソリティア」を開発したKenny Rosenblatt氏(Arkadium,CEO&Co-Founder)ちゃんとスナップ状態での表示、プレイもサポートゲームだけでなく映像の視聴も同じ。続きを別のデバイスで見ることができる

 セッションのなかでは、このマルチプラットフォーム展開されるMetroアプリのゲームとして「ソリティア」と「ブラックジャック」がデモンストレーションされた。

 ネットワーク回線のトラブルもあり、何度かの失敗もあったものの、最終的にはデモは大成功。ちゃんと、Windows 8、Windows Phone、Xbox 360で動作している「ソリティア」や「ブラックジャック」がXbox Liveを介して相互に接続してリアルタイム対戦するライブデモが披露された。

 なお、「ソリティア」はWindows 8標準添付のゲームとして搭載される予定で、「ブラックジャック」の方はMetroアプリのゲームサンプルコードとしてSDKに含まれるようだ。

うまく動かずにてんやわんやの場面もWindows 8ベースのPCで動作しているMetroベースのソリティア。この状態でクラウド側に途中経過を保存Windows Phone版でその続きをプレイ。確かに場のカードは同じ
MetroアプリのブラックジャックをWindows Phone、ノートPC、Xbox 360で動作させ、異なる3つのハードウェアをマッチングして対戦するライブデモの様子




■ WinRTとDirectX フィーチャーレベル


Platform Architecture

 このMetroプラットフォームの根幹を支えているのが「WinRT」(Windows Runtime)と呼ばれるコアAPIだ。

 Windows 8でも、これまでのWindowsデスクトップで動作する一般的なWindowsアプリケーションを開発したり動作させることはできるが、Metroアプリに関しては、このWinRTを使用して開発することになる。

 WinRTはC/C++、C#/VBあるいはHTML5/CSS、JavaScriptから利用することができ、なおかつWinRTはハードウェアネイティブなので、パフォーマンス的にも申し分はない。

 WinRTは当然DirectX 11.1へのアクセスも提供されており、極めてネイティブに近い形でこの機能を利用することができる。

 午後のセッションでは、「Metroアプリからも利用できるDirectX 11.1」という括り方ではあったが、Windows 8に搭載されるDirectX 11.1についての紹介も行なわれた。

 細かいDirectX 11.1の仕様についての解説は、あらためてレポートすることにして、ここでは大枠のみを解説することにするが、Windows 8およびWinRTでは、使用するDirectX のフィーチャーレベル設定を行ない、その範囲内の機能を使ってグラフィックス描画を行なう流れになる。

 設定できるフィーチャーレベルはDirectX 9からDirectX 11.1で、具体的には

DirectX 9.0(D3D_FEATURE_LEVEL_9_1)
DirectX 9.0c(D3D_FEATURE_LEVEL_9_3)
DirectX 10.0(D3D_FEATURE_LEVEL_10_0)
DirectX 10.1(D3D_FEATURE_LEVEL_10_1)
DirectX 11.0(D3D_FEATURE_LEVEL_11_0)
DirectX 11.1(D3D_FEATURE_LEVEL_11_1)

というレベル設定が行なえる。


DirectX 9のフィーチャーセットレベルDirectX 10のフィーチャーセットレベル
DirectX 11のフィーチャーセットレベルDirectX Control Panel

 Windows 8は最新OSのはず。なのに対応範囲がDirectX 9~DirectX 11までといささか、古い世代までサポートしすぎなのではないか、と思った人もいるかも知れない。

 これは、Mteroアプリが、広い範囲のハードウェアでの動作が想定されるからだ。例えば、なじみ深いXbox 360のGPUも、実はDirectX 9.0c相当であり、もはや最新世代からすれば2世代前のものなのだ。

 Windows 8はx86、x64といったインテル系CPUアーキテクチャ以外にARM系CPUアーキテクチャにも対応することが決まっている。ARM系CPUと組み合わされた高機能SoCとして著名なNVIDIA TEGRAシリーズも、実はTEGRA3まではDirectX 9.0c相当だ。DirectX 9からのサポートは、Windows 8、Metroアプリのコンセプトからすると必然な流れなのだ。

 セッションでは、「DirectX 11.1レベルにGPUが対応していても、シェーダユニットの数が非常に限定的で、パフォーマンスが低いことを忘れてはならない」という注意も促された。


DirectX 9世代グラフィックスのネットブック。60fpsを前提とすると500パーティクルが限界DirectX 10世代グラフィックスのノートPC。60fpsを前提とすると5,000パーティクルまで出せたDirectX 11世代グラフィックスのハイスペックノートPC。60fpsを前提としても50,000パーティクルも出せる。いずれも同一プログラムだが、ターゲットハードウェアのパフォーマンスに応じてビジュアルクオリティを可変とした例

 NVIDIA TEGRAシリーズでいえば、TEGRA4(Wayne)はDirectX 11相当に対応すると言われるが、シェーダユニット数は、PC向けGeForceと比較すると数は少なく、不用意にDirectX 11フィーチャーで動かすと遅くなりすぎてしまう場合がある。

 セッションでは、Metroアプリは、グラフィックスはDirectX 9ベースでの設計を行ない、所々にフィーチャーを上げていくか、あるいはアプリ起動時にパフォーマンス測定を行なって、適当なフィーチャーレベルを設定するようなガイドラインが示された。この辺りは、とても面倒そうに思えるが、実際のところ、普通のPCゲームの開発と手間はそれほど変わらないともいえる。


DirectX 11.1は3D立体視に対応。当然Mteroアプリでも3D立体視は実現可能ハードウェアの性能差に応じてビジュアルクオリティの差異を与えるのも1つの選択肢




■ MetroアプリはWindows 8標準搭載のオンラインストアで販売

 Windows 8には、「Windows Store」と呼ばれるアプリケーションソフトのオンラインショッピングサービスも標準搭載される。いうまでもないだろうが、これは、既にAppleやGoogleが展開しているスマートフォンのアプリショップの仕組みを取り込んだ形だ。

 ユーザーや企業が開発したMetroアプリは、このWindows Storeで提供することができ、決済システムなどはMicrosoftが提供してくれる。

 アプリのパッケージサイズは最大2GB。価格は1.49ドルから999.99ドルまでの設定が可能で、売り上げ25,000ドルまでは30%をMicrosoftが手数料として徴収し、25,000ドル以上になると徴収額は20%になる。なお、決済システムはサードパーティのものを利用することもでき、その際には、前述の手数料はその各社の規定になる。

 このWindows Storeの仕組みを利用してMetroアプリを開発、提供するためには、99ドルの2年間有効な開発メンバーシップを買い求める必要がある。

 Windows 8とMetro/WinRTでやろうとしていることは、GoogleやAppleのやっていることの後追いだと指摘する意見もある。しかし、ネットワークとクラウドを応用し、Windowsプラットフォームの強みを活かしたアプリケーションが、異なる種別のハードウェアを透過的かつ有機的に結びついて動作していく様には何か期待感のような物を少なからず感じる。

 一方で、「ゲーム開発の民主化」を掲げて登場したXNAプラットフォームは、このMetroの台頭によって、事実上、その役割を終えた気がする。


(2012年 3月 7日)

[Reported by トライゼット西川善司]