App Hub

ドキュメントの詳細

XNA Game Studio と Silverlight : どちらを選ぶべきか ?

掲載日
2010/03/16
ドキュメント

Windows Phone 向けのゲームを開発することを決定した後に、多くのデベロッパーが最初に直面する問題は、2 つのゲーム開発モデルのどちらを選択するかです。Windows Phone OS 7.0 をターゲットにするデベロッパーは、XNA Framework または Silverlight のどちらかを使ってゲームを開発することを選択できます。Windows Phone OS 7.1 をターゲットにするデベロッパーも、Silverlight アプリケーションの内部で XNA Framework のグラフィック機能を使用できます。このホワイト ペーパーでは、どちらの技術を使用するかデベロッパーが判断するために役立つ情報を提供します。

Silverlight と XNA Game Studio のどちらを使うかの選択は、機能リストやパフォーマンス メトリックを眺めるだけの作業ではありません。それぞれのフレームワークは、設計時に想定されていた使用目的も顧客層も異なっています。結局のところ、どちらのフレームワークを使わなければならないかを定める厳密なルールが存在するわけではありません。このドキュメントでは代わりに、目的に応じてどちらのフレームワークを使えば作業効率や生産性が上がるかについての指針を示します。最終的には、ゲームでターゲットにする Windows Phone オペレーティング システムのバージョンと、デベロッパーおよび開発対象のゲームにとって最も重要な機能に基づいてフレームワークを選択することになります。

Windows Phone で Silverlight の使用を検討すべき場合

Xbox 360 または Windows 向けの既存のゲームと連携し、共有される統計やその他の情報を主として表示するようなアプリケーションを Windows Phone 向けに開発しようとしている場合は、Silverlight がそのゲームにとって最適な選択肢です。デベロッパーは Silverlight の組み込み UI コントロールを Windows Phone で利用できます。これらのコントロールはそのまま使用でき、カスタマイズしなくても Windows Phone の外観や操作性と調和します。対照的に、デベロッパーが XNA Game Studio を使用しており、Windows Phone の外観や操作性と調和したコントロールが必要になった場合、そのようなコントロールを独自に作成し、保守する必要があります。

ビデオがゲームの中心的な要素であり、(全画面表示ではなく) 画面の一部分にビデオを表示する機能を求める場合は、Silverlight が必要です。Silverlight では、メディア コントロールを使用して、ビデオをアプリケーションの一部分に直接合成することができます。一方、XNA Game Studio で開発するゲームではビデオを全画面表示する必要があり、そのビデオを合成することはできません。

同様に、ゲーム内で組み込みの Internet Explorer コントロールを使って Web ページを表示する場合にも、Silverlight が必要です。Silverlight アプリケーションは、Internet Explorer コントロールをホストし、そのコントロールをアプリケーションの UI に合成することができます。XNA Game Studio で開発するゲームでは、HTTP (および HTTPS) による通信は可能ですが、Internet Explorer コントロールは使用できません。

アプリケーションでキーボード サポートが必要な場合は、Silverlight を検討してください。Silverlight アプリケーションは既定でソフトウェア キーボードにアクセスできますが、XNA Game Studio で開発するゲームをキーボード入力に対応させるには、デベロッパーが独自にソフトウェア キーボード コントロールを構築する必要があります。ハードウェア キーボードが存在する場合は、Silverlight でも XNA Game Studio でもそのキーボードを利用できます。Windows Phone はハードウェア キーボードをオプションとして提供しますが、すべてのデバイスがハードウェア キーボードを備えるわけではありません。

他の Web テクノロジーでの開発経験がある場合は、Silverlight を選んだ方が開発ノウハウを早く習得できるでしょう。たとえば、既存のゲームを移植する場合、XNA Game Studio ではなく Silverlight をターゲットにすれば、移植にかかる時間が短くなる可能性が最も高くなります。

Windows Phone で XNA Game Studio の使用を検討すべき場合

標準の更新/レンダリング ループを使用したゲーム開発に慣れている場合は、XNA Game Studio が適しています。以前に Xbox 360 または Windows 向けのゲームを開発していたのであれば、XNA Game Studio のアプリケーション モデルの方が開発しやすいと感じるでしょう。XNA Game Studio はゲーム デベロッパーによってゲーム開発のために構築されました。その性質上、フレームワークのすべての構成要素はゲームの作成に適した設計になっています。

本格的な 3D ゲームを作成する場合は、XNA Game Studio が必要です。Windows Phone の Silverlight では、あらかじめ 2D スプライトにレンダリングしたり、記録済みのアニメーションを表示したりすることで 3D をシミュレートできます。XNA Game Studio は、スキニング アニメーションのサポートを含め、3D を完全にサポートします。

XNA Game Studio で開発するゲームでは、XNA Content Pipeline プロジェクトにアクセスできるため、アセットのビルド時処理が可能です。一方、Silverlight にはこれに似た技術はありません。Silverlight で同じ機能を実現するためには、デベロッパーが独自のパイプラインを最初から作成する必要があります。

XNA Game Studio ゲームは、Windows Phone OS 7.0 のハードウェアで高速化された頂点シェーダーとピクセル シェーダーのライブラリーにアクセスできますが、Silverlight ゲームは Windows Phone のシェーダーにアクセスできません。XNA Game Studio ゲームはビデオ カードの状態を制御でき、デベロッパーがレンダリング ステートを自由に設定できます。これには、アルファ ブレンディング、ワイヤフレーム、ソリッドなどの状態が含まれます。Windows Phone 7 のビデオ ドライバーは Direct3D の実装であり、デスクトップ版の Direct3D と同様の機能を備えています。

ゲームでスプライトを多用するか、画面に多数のスプライトをアニメーション表示する場合はおそらく、XNA Game Studio を使用した方がタイトルの処理効率が良くなるでしょう。Silverlight はラスター化と合成のほとんどを CPU で実行しますが、XNA Game Studio ではグラフィック ハードウェアを多用します。言い換えれば、シーンの一部がフレームごとに変化するような場合は、XNA Game Studio の方が適しています。

Windows Phone デバイスは 800×480 ピクセルの画面を備えます。これは膨大なピクセル数です。ゲームでオーバードローが行われる場合、多くのゲームでフィル レートの問題が発生します。XNA Game Studio ゲームは高品質のハードウェア スケーラーにアクセスできるため、ゲーム デベロッパーはずっと小さなターゲットにまずレンダリングし、そのレンダリングを専用ハードウェアを介してデバイスのネイティブ解像度にサイズ変更することができます。ポストプロセッシングを有効にする場合やオーバードローが予想される場合は、おそらく XNA Game Studio の方が適しています。

Windows Phone OS 7.1 での Silverlight と XNA Framework の併用

Windows Phone OS 7.1 から、デベロッパーは Silverlight アプリケーションの内部で XNA Framework のグラフィック機能を使用できます。これにより、ゲーム デベロッパーは 1 つのアプリケーションに両方のフレームワークの長所を取り入れることができます。

Windows Phone OS 7.1 をターゲットにする場合、Windows Phone のデザインと調和した UI のオーサリングや、Web サービスにデータバインドされるハイスコア テーブルの作成などに Silverlight を利用すれば、XNA Framework を使う場合よりも時間を短縮できます。

Silverlight と XNA グラフィックの両方にアクセスできることにより、まったく新しいシナリオも実現可能になります。現在の XNA Framework アプリケーションには、ビデオの再生に別途 MediaPlayerLauncher タスクを使用しなければならない制約がありますが、Silverlight を利用すればビデオ コンテンツをゲームに埋め込んで直接再生できます。WebBrowser コントロールを直接使って、Web 認証を要求するソーシャル メディア サービスとゲームを連携させることもできます。

3 つのプラットフォーム (ゲーム機、PC、Windows Phone) のすべてに対応したゲームを開発する場合、Windows Phone で Silverlight と XNA Framework を併用すると、プラットフォーム間でのコードの共有が難しくなる場合があることに注意してください。クロスプラットフォーム開発を最も容易にするためには、XNA Game Studio とクロスプラットフォームの Game クラスの使用を検討することも方法の 1 つです。

詳細情報

Silverlight と XNA を併用したゲーム開発の詳細については、「How to: Combine Silverlight and the XNA Framework in a Windows Phone Application」、またはラーニング カタログ内の Paddle Battle サンプルを参照してください。

XNA Game Studio でのゲーム開発の詳細については、App Hub の「Game Development」を参照してください。

Silverlight および XNA Game Studio を使用した Windows Phone 向け開発についてのラーニング コンテンツには、App Hub の「コンテンツ カタログ」からアクセスできます。

ラーニング コンテンツを検索
var gDomain='m.webtrends.com'; var gDcsId='dcschd84w10000w4lw9hcqmsz_8n3x'; var gTrackEvents=1; var gFpc='WT_FPC'; /*<\/scr"+"ipt>");} /*]]>*/
DCSIMG