WisdomSoft - for your serial experiences.

XNA Framework とは

XNA Framework の仕組みと概要を説明します。

マネージ環境のゲームフレームワーク

XNA Framework は .NET Framework を基盤とする Microsoft のゲーム実行環境です。C++ で開発する一般的なアンマネージ環境のゲームとは異なり、XNA Framework ゲームは C# などで記述されたプログラミング言語から生成された中間言語によって実行されます。基盤となっている.NET Framework の豊富な機能を利用しながら、高品質なゲームに求められる描画や数学処理などを XNA Framework が担当します。

また、C# によるマネージコートによってゲームが管理されるため、安全性やコードの検証性などが高く、Visual Studio などの統合開発環境との相性の良さから C++ で開発するよりも生産性を高められます。多くの場合はゲームの開発に用いられますが、リアルタイムで 3D グラフィックスの描画が要求されるツールの開発にも応用できるでしょう。

.NET Framework アプリケーション開発者にとって、XNA Framework とは .NET Framework の標準クラスライブラリに加えて、ゲームに特化したクラスライブラリやツールを追加したものだと説明した方が理解しやすいかもしれません。XNA Framework は、.NET Framework をベースとしているため、ゲームの開発には NET Framework が提供する標準クラスをそのまま流用できます。

XNA Framework ゲームはネイティブコードではなく、中間言語を共通言語ランタイムで実行するマネージ環境で動作します。ハードウェアや OS といったシステムを隠蔽し、XNA Framework を通してゲームが実行されます。基本的な仕組みは .NET Framework アプリケーションと同じです。中間言語が共通言語ランタイムによって実行され、メモリはガベージコレクタによって管理されます。

現在、XNA Framework が実装されている環境は Windows PC に加え、Xbox 360、Windows Phone 7 などがあります。生産終了になりましたが、かつて Microsoft から発売されていた携帯音楽プレイヤー Zune でもゲームを動かすことができました。

図1 XNA Framework のアーキテクチャ
図1 XNA Framework のアーキテクチャ

C++ を用いた一般的なゲームの開発では、対象とするシステムごとにコードを書かなければなりませんが、XNA Framework で開発されたゲームは、ほぼ同じコードから Windows、Xbox 360、そして Windows Phone 用のゲームを作ることができます。これは、XNA Framework のベース技術に .NET Framework が用いられているためです。ただし Windows 以外の環境ではフルセットの .NET Framework ではなく、対象のシステムに最適化された .NET Compact Framework がベースとなります。