XNA Game Studio Express正式版リリース記念 特別企画
.NET&Windows Vistaへ広がるDirectXの世界

Xbox 360で.NETとC#による自作ゲームを動かそう

NyaRuRu
Microsoft MVP Windows - DirectX(Jan 2004 - Dec 2007)
2007/01/10
Page1 Page2 Page3 Page4

4. まとめ(一連の流れを図解)

 まず、ゲーム開発時の実行は次のような流れになる。Xbox 360のXNAの実行環境が、常にXbox Liveへの接続を確認しているため、開発中といえどもインターネット回線が必要である。また、ゲームの配置には必ずXNA GSEを使用するため、完成版のゲームをプレイする場合でも1度はXNA GSEを起動することになるだろう。実質的に、現時点で第三者にゲームを配布するには、XNA GSEで転送可能な必要最低限のファイル、つまりソリューション・ファイル一式を、相手のWindows環境に渡す必要がある。

XNA GSEによるXbox 360用ゲームの開発から実行までの手順(図解)
ゲーム開発時の実行はこのような流れになる。
  Xbox 360でXNA Game Launcherを起動(これ以後Xbox Liveへの接続と、XNA Creators Clubメンバーシップへの加入が確認される)。
  XNA Game Launcherから[Connect to Computer]を選択。
  XNA GSEでゲームをビルド。
  XNA GSEからXbox 360へゲームを配置。
  XNA GSEからデバッグ実行開始を指示。
  Xbox 360でゲームが実行開始される。

 一方、配置済みゲームをプレイするだけであれば、Windows機は必要ない。しかしこの場合もXbox Liveへの接続を確認している状態であることが、プレイの条件となっている。

Xbox 360に配置済みのゲームを実行する手順(図解)
配置済みゲームをプレイする際はこのような流れになる。
  Xbox 360でXNA Game Launcherを起動(これ以後Xbox Liveへの接続と、XNA Creators Clubメンバーシップへの加入が確認される)。
  XNA Game Launcherから「My XNA Games」を選び、プレイするゲームを選択する。
  ゲーム実行開始。

 これらをまとめると、次のようになる。

  • 開発のみ、プレイのみにかかわらず、Xbox 360の上で実行するための権利が、有償の期限型サービスである
  • 配置手段がXNA GSEに依存しているため、プレイのみを行いたいユーザーが手を出しにくい(無償ではあるが手間がかかる)。実質的にソリューション・ファイル一式を配布することになる*12
  • デバッグ作業は、Windows環境での開発ノウハウの多くがそのまま利用できる

 今回のXNAのリリースで実装された機能の多くが、このように、ゲーム利用者向けではなくゲーム開発者向けとなっているのは、Microsoftとしてもまずは開発者へのアピールを優先したためと考えられる。XNA FAQに載っているいくつかの回答からも、同様の意図を伺うことができるだろう。まずは開発環境としてのXNA GSEを魅力的にすることを目指す一方で、XNAというアプローチの潜在的なニーズを当のMicrosoft自身が計りかねているようにも見える。

 ここで、筆者なりに今回初めてXbox 360上でゲームを実行させてみた感想を書いておこう。まずは、ちょっとやそっとのことではハングアップしない([Shift]+[F5]キーでいつもどおり止められる)ことと、ドキュメントが非常に丁寧に書かれていたことがとても印象的だった。XNAは教育機関の多くが興味を示しているとのことだが*13、確かにこの「ソフトウェア的な手堅さ」は教育目的で重視されるべき部分だと思う。まさに、よくドキュメント化されたOSの上で保護されたプロセスを実行している感覚だ。

 ドキュメントについては、特にXNA GSEのIDE操作に関して丁寧に解説されており、新しい開発者を取り込もうとしている姿勢が確かに感じられた。日本でも、これら資料が翻訳されるだけでも、大きく間口が広がるのではないかと期待している。そのほか、ゲーム・コンテストの開催*14や、「できるXNA」といった解説書も予定されているということで、ドキュメントやコミュニティの準備が整ってくる今春以降が楽しみである。

*12 これは一見するとソース・コード全てを開示する必要がありそうだが、実際には事前コンパイルした.NETアセンブリを参照するようなソリューションを配布しても動作する。つまり、起動部分のソース・コードのみを残し、残りは.NETアセンブリの形で提供することで、すべてのソース・コードを開示することなく遊んでもらうことができる。
*13 Microsoftのプレスリリース、「マイクロソフト、『XNA™ Game Studio Express』最終版の提供開始および『XNA クリエイターズ クラブ』開設を発表」参照。
*14 全世界のXNA GSE開発者を対象に、「Dream‐Build‐Play(ドリーム ビルド プレイ)コンテスト」が開催される。エントリ期間は2007年1月1日(月)から2007年4月2日(月)まで。

 最後に、「Microsoftがまだゲーム以外へのXNAの応用を優先していなくても、可能性としていま何ができるか知っておきたい」という方のために、XNA FAQになるべく重ならない範囲で、現在Xbox 360を使ってXNAでできること、できないことをまとめてみた。

【現時点で可能なこと】
  • Xbox 360環境に.NETアセンブリと専用シリアライズ形式のデータ・ファイルを転送し、実行することができる
  • 4スレッドまでを同時実行することができる
  • カスタム・インポータを作成すれば、実質的に任意のバイナリ・ファイルを持ち込むことができる
  • XNA Framework*15の範囲内で作られたアセンブリを使用できる
  • DirectX 9.0c Shader Model 2.0+相当のAPIの実行(D5(1080p)出力にも対応)ができる
  • XACTを利用したサウンド・BGMの再生やエフェクトが可能である
  • Xbox 360コントローラからの入力と、振動操作が可能である
  • USBキーボードからの入力が可能である
  • 専用領域へのデータの読み書き(データ・セーブ用)ができる
【現時点でできないこと】
  • 一切のネットワーク通信ができない
  • 外付けカメラやマイクからのデータは取得できない
  • マウス入力には非対応である
*15 英語版のMSDNライブラリには、すでにサポート・プラットフォームの欄に「XNA Framework」という項目ができている。ここで、「XNA Framework 1.0」と書かれているクラスやメソッドは、Xbox 360上でも使用することができるというわけだ。

 参考になれば幸いである。End of Article

 

 INDEX
  [XNA Game Studio Express正式版リリース記念 特別企画]
  .NET&Windows Vistaへ広がるDirectXの世界
  Xbox 360で.NETとC#による自作ゲームを動かそう
    1.ハードウェアとソフトウェアの入手まで
    2.環境を設定する
    3.実行とデバッグ
  4.まとめ(一連の流れを図解)
 
インデックス・ページヘ  「.NET&Windows Vistaへ広がるDirectXの世界」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間