今も多くのゲームはC/C++言語を用い、DirectXやOpenGLを通して描画するネイティブのアプリケーションとして開発されています。しかし、多くの分野のソフトウェアがWebに移行しているように、ゲーム産業もまた、いずれWeb上で動作するゲームに本格的に移行する時が来るかもしれません。ところが、オンラインショップや業務系Webアプリケーションとは異なり、ゲームをWebで実行するには大きな障壁が存在します。HTMLを代表とするWeb標準技術の組み合わせでは、貧相なプレゼンテーション能力しか持ち合わせません。

高いデザイン能力を持ったSilverlightはWebの貧弱なプレゼンテーション能力を補うものであり、ゲームの実行環境としても大きな可能性を秘めています。HTMLでは困難な、あるいは可能であっても実用的な速度が得られなかったスプライト処理や半透明合成、アニメーションが可能になります。通信やデータ処理にも長けているため、これまでに無かったブラウザ上で動作するソーシャルなゲームなどの開発も考えられます。

Silverlightで実装されたWeb上のゲームの例には、以前本誌でも紹介させていただいた「Microsoft Popfly」が面白いです。PopflyはSilverlightで実装されたソーシャルなゲームの開発・実行サービスです。ゲームの開発から実行・公開までのすべての工程をWebベースで行うことができ、Popflyの参加者が互いにリソースを共有できるSilverlightの特性を生かした新しいゲームスタイルの一例です。

図01 Microsoft Popfly のサンプルゲーム

一方で、Silverlightは3次元グラフィックの描画には対応しておらず、基本的にGPUではなくCPUを用いて描画するため、ゲーム開発者を満足させるだけのパフォーマンスを得られないことがあります。ピクセル単位でビットマップを操作することもできないため、ゲームに求められる画面演出にも制限があります。テーブルゲームのようなカジュアルなゲームであれば問題ありませんが、高品質な演出が要求される商業レベルのゲームを実現するには課題が残されています。

Silverlightの機能では実現が難しい演出に関しては、事前にマルチフレームのイメージや動画で用意して再生する方法が有力です。実行時のビットマップ変換ができないため、ぼかしやパーティクルのような演出は事前に用意するしかありません。

それでも、HTMLとJavaScriptの組み合わせに比べればSilverlightの方が高速で圧倒的な表現力を持つことに変わりはありません。Windowsアプリケーションと比較すれば制約はあるものの、スタンドアロンなゲームをSilverlightで実装するだけでも、クロスプラットフォーム・クロスブラウザで動作するメリットを得られます。サーバーと通信にはHTTP通信に加えてソケットも使えるため、ゲームサーバーとリアルタイムの双方向通信によるマルチプレイも可能です。

Silverlightアプリケーションは、XAPという拡張子のファイル(中身はZIP形式に圧縮されたアーカイブ)にパッケージ化されて配布・実行されるため、面倒なインストール作業を行うことなく、Silverlightが組み込まれているページにアクセスするだけでゲームを実行できるというのは利用者にとっても大きなメリットです。JavaScriptでゲームを開発した場合はソースを公開しなければなりませんが、マネージコードならDLLファイルとして配布されるため、逆アセンブルはできますがソースコードを直接見られることはありません。

ゲーム開発を目指すなら「Silverlight 3」を対象に

低水準なメディア制御ができないSilverlight 2では、ゲーム分野での応用には限りがあります。しかし、間もなく登場する予定の「Silverlight 3」では、Silverlight 2に不足していたメディア関連の機能が追加されているので、これからSilverlight用のゲームを開発するならばSilverlight 3を対象に計画を進めるべきでしょう。Silverlight 3とSDKのベータ版が提供されているので、今からSilverlight 3への対応を検討できます。

Silverlight 3ではハードウェアアクセラレーションを有効にできるようになったため、一部の描画処理をGPUに振り分けることができるようになります。ビットマップAPIも追加されるため、実行時に動的なイメージの生成が可能になります。また、ぼかしやドロップシャドウなどのエフェクトが追加され、実行時に任意のUIElementを加工できます。ピクセルシェーダを記述して独自のエフェクトを作成できるため、ゲーム分野で要求される高度なピクセル変換が可能になるでしょう。

図02 左が実行時にエフェクトを設定した画像

Silverlightアプリケーションを、デスクトップ上にインストールしてブラウザの外で実行できる「Out of Browser」という機能も、ゲームにとっては有益な新機能です。この機能を使えば、ブラウザを起動してアプリケーションを配信しているWebサイトにアクセスする必要がなくなり、デスクトップ上のアイコンから直接Silverlightアプリケーションを起動できます。

図03 Out of Browser で実行されている Silverlight アプリケーション

このようにSilverlight 3ではメディア関連の機能が充実しているため、ゲームの実行環境としても期待できそうです。

動画や音声などのマルチメディアを扱うと、さらにリッチで魅力的なゲームになることでしょう。Silverlightは、Windows Mediaを中心に高度なマルチメディア機能を備えています。現在、Web上での動画配信サービスはFlashが主流ですが、次回はSilverlightを使った動画配信サービスについて探ってみましょう。

著者プロフィール:赤坂玲音

フリーランスのテクニカルライタ兼アプリケーション開発者。主にクライアント技術、プレゼンテーション技術が専門。2005年から現在まで「Microsoft MVP Visual C++」受賞。技術解説書を中心に著書多数。近著に『Silverlight入門』(翔泳社)などがある。