C# を使用して Windows 8 RT や Windows 8 Phone のゲームをコーディングすることはできますか?
1 に答える
「C# でのゲーム」についてかなりの量の調査を行ったので、他の人のために投稿すると思いました。
XNA は、C# ゲームを作成する簡単な方法です。新しい XNA ゲームを Windows ストアに投稿すると、問題なく動作します。
ただし、XNA を使用して Windows Phone 8 または Windows 8 のゲームを作成することはできません。(Windows Phone のバージョン 7.1 のみを対象にすることができます。) これらのオペレーティング システムの新しい API は、XNA ではサポートされていません。
ただし、Windows Phone 8 と Windows 8 の両方で XNA アプリが実行されます。これらのアプリは、Windows 8 または Windows 8 Phone に固有の機能をターゲットにすることはできません。
要約すると。XNA (4.0) の現在のバージョンは、Windows および Windows Phone と通信するための古い API をサポートしています。それらは Windows 8 でも実行できますが、新しいものは使用できません。
Microsoft には、新しい Windows 8 および Windows Phone 8 API 用に C# でゲームを作成するための製品はありません。
ただし、オープン ソース プロジェクトの使用を気にしない場合は、新しい Windows 8 および Windows Phone 8 API を使用できる C# でゲームを作成するためにできることがいくつかあります。
モノゲーム
XNA の API を使用して新しい Windows 8 API 用のゲームを作成する場合は、MonoGame を使用できます (私はこれを使用しています)。これは、XNA API を実装するオープン ソース API ですが、IOS、Android、および Windows 8 用のプラグインを備えています。これは、非常に優れたクロス プラットフォーム オプションです。3D グラフィックスは最近、MonoGame (つまりInfinite Flight、Armed ) でサポートされるようになりました。(注: 私は MonoGame とは一切関係がありません。)
シャープDX(DirectX)
Windows 8 API をターゲットとするゲームを作成するために Microsoft がサポートする方法が必要な場合、最善の策は DirectX です。しかし、Direct X は C++ API です。それもまた、本当に大変なことです。
2D ゲーム (Plants vs Zombies や Angry Birds など) を作成したい場合、Direct X はやり過ぎです。MonoGame ルートに進む方がはるかに優れています。Direct X を理解するために、数日かけてチュートリアルを掘り下げ、懸命に取り組みました。その時間の終わりまでに、画面上に三角形を 1 つ描くことができるようになりました。(同じ時間、ゲーム ループが進行し、MonoGame でスプライトが動き回っていました。)
繰り返しますが、DirectX をまだ知らず、2D アプリを作成している場合は、DirectX/SharpDX の道をたどらないでください。
DirectX 2D ルートは、Direct2D をサポートしていない Windows Phone 8 によってさらに妨げられます。DirectX には、2D レンダリング用の Direct2D と呼ばれるサブセットがあります。ただし、このサブセットは Windows Phone 8 ではサポートされていません。"代替" (今のところ) は Direct X ツールキットです。
Direct X ロードにまだ完全に参加している場合は、SharpDX を使用して C# で記述できます。これは DirectX 用の C# ラッパーであり、非常にうまく機能します (ただし、Direct X Toolkit をサポートしているかどうかはわかりません)。
まとめ
簡単に言うと (私にとって)、Microsoft は Windows 8 と Windows Phone 8 の新しい機能をサポートするために C# ゲーム開発用の API を更新しなかったということです。しかし、MonoGame では XNA API を使用してそれを行うことができます。また、クロス プラットフォームのゲームを作成することもできるので、とにかく優れています。(「無料」でIOSおよびAndroidに移植できます。)
私のゲームは今のところ問題なく MonoGame で進行中です!