ニュース
[GDC 2012]Windows 8のMetro UI上で動くゲームは既存のWindowsタイトルとほぼ互換性なし!? MetroスタイルはAndroidやiOS用アプリと同じ方向へ
本稿では,2日めに行われたセッション「Developing a Great Metro Style Game for Windows 8」(Windows 8に向けた,すばらしいMetroスタイルゲームの開発)から,Windows Phoneライクなユーザーインタフェース(以下,UI)「Metro UI」を採用した「Metroスタイル」のゲームがどういったものになるかを予想してみることにしよう。
WinRTをベースとしてAndroidやiOSにも
近い機構を備えるMetroスタイル
Windows 8のプレビュー版に触れたことがある人なら分かるように,Metro UIに最適化されたアプリケーション(以下,アプリ)である「Metroスタイルアプリ」は,従来のWindows用アプリとはその立ち位置が大きく異なる。このあたりは,MicrosoftのChas Boyd氏が示したスライドを見るのが手っ取り早いだろう。
Windowsカーネルの上にアプリケーション実行環境としてのWinRT(WindowsRunTime)が置かれ,Metroスタイルアプリはその上で走るようになっているのがポイントだ
WinRTというのは,これまでWindowsアプリを支えてきたWin32に取って代わるべく設計されている実行環境で,開発言語としてC++やC#などのほか,JavaScript,HTML5なども利用できるのが特徴だ(※従来のWin32アプリもWindows 8上では動作するが,非Metroスタイルアプリという扱いになる)。
WinRTはさまざまな開発言語に対応するため,ゲームプログラマーが移行するのは容易そうに見える。ただ,同じ言語を利用していても,ライブラリが一新されているため,書き方はかなり変わることになる。来場していたプログラマーが馴染んでいるだろう「従来的なWindows上での開発」とは勝手が異なるわけだ。
また,MetroスタイルアプリのアプリケーションモデルはAndroidやiOS用のアプリと非常に近いものになる。たとえば,アプリの状態推移――起動した,スリープした,画面がローテーションした,など――に対応するコールバック関数を実装する形になるのだ。「イベントに対応する処理を書く」という意味ではこれまでのWin32に近いものの,内容はかなり異なるわけである。
起動時には「Initialize」「SetWindow」に続いて「Load」「Run」の順で呼び出される。Loadでは「ゲームが使う素材などをロードできる」(Boyd氏)とのことで,非同期で行えるそうだ。Loadでデータのロードを開始すると同時に,ゲームではローディング中の画面を表示し,Runで実行できることになる。
アプリにライフタイムという概念があるのもAndroidに近いところだ。
Androidアプリの場合,システムメモリが足りなくなってくるとOSからアプリを終了させるリクエストが出るため,それに従う必要がある。また,サスペンドなどのイベントが発生したときにはそれに応じた挙動を取るようソフトウェアを実装する必要があり,それに従う必要もあるが,このあたりはMetroスタイルアプリでも同じだ。言い換えると,Metroスタイルアプリをユーザーが意識的に終了させたり停止させたりする必要はない。
Metroスタイルアプリの場合,システムメモリが不足したときに終了リクエストが発行されるほか,サスペンドのリクエストも行われるが,Metroスタイルアプリの場合はサスペンド通知後に5秒間の猶予があるとBoyd氏は説明している。つまり,5秒のうちにサスペンドへ備えた操作を行えるようにすればいいわけだ。
さらに面白いのは,Androidと同じように,アプリに「権限」の仕組みがある点だ。Androidの場合,「完全なインターネットアクセスが必要」といった具合に,アプリ側の要求する権限が(アプリの入っている)APKファイルに埋め込まれており,インストール時にはユーザーに対して権限の許可が求められるような仕組みになっている。
Metroスタイルアプリも同様で,ZIP形式ベースのアプリケーションファイルに権限の情報が埋め込まれていて,インストール時にユーザーに許可を求めるような仕様になっているという。もちろん拒否することも可能だ。
従来のWindowsにはなかった仕組みだが,セキュリティを確保するためには必要という判断から,Metroスタイルアプリで組み込まれたのだろう。
入力デバイスは
タッチパネルが最優先
Metroスタイルアプリの開発にあたってはそのほかにも,従来のWindowsアプリにはなかった要素に気を配る必要がある。たとえば画面の下段に表れる通知バー「AppBar」や,画面左側に表示されるペイン「SettingPane」を使う方法などが,Sandy氏から紹介された。
ここで重要なのは,Metroスタイルアプリが,ソーシャル的要素を持ったゲームを簡単に作り込めるような機能を持っているとされたこと。プレイヤー同士がスコアやスクリーンショットを共有するという,ソーシャルに欠かせない機能をWinRTが提供してくれるということが強調されている。
もう1つ,入力系では,Boyd氏が「Windows 8ではタッチパネルが最優先」と述べていたことを押さえておきたい。
もちろん,それ以外の入力デバイスが使えないわけではなく,「キーボードなども違和感なく使えるように作るべし」とも氏は述べていたが,タッチパネルインタフェースの作り込みが大切にはなるようだ。
ちなみに下に示したのはMicrosoftが開発しているオーバーレイ表示型の方向パッド「Virtual Touch Thumbsticks」。一般にオーバーレイ型の方向パッドは場所が固定されているため,目で逐一確認しておかないと指が操作エリアから外れて無反応になってしまったりするが,Virtual Touch Thumbsticksでは,指が外れそうになると中心の位置を補正して指に追従させるという。これはなかなか面白い。
Windows 8の場合,製品によっては,さらに三次元加速度センサー,ジャイロ,地磁気計といったデバイスも入力に利用できる。これらの生データを処理し,ユーザーから見て分かりやすい情報に変換するレイヤーも,WinRTが提供するとのことだ。
正直なところ,既存のWindows用ゲームタイトルをMetroスタイルアプリ化するのは,不可能ではないものの,(シンプルなゲームを除けば)かなり大変そうな気配だ。どちらかといえば,Metro UIのために新規開発されるタイトルが多くなるだろう。「Windows 8時代には,タブレット機でPCゲームを」と期待している人も多いと思われるが,現実には,従来型の移植ではなく新規タイトルが多くなり,AndroidやiOSなどといったプラットフォームとあまり変わらない状況になる可能性が高そうである。
Windows 8 Consumer Previewダウンロードサイト
- 関連タイトル:
Windows 8.x
- この記事のURL: