XNAで一個ゲームを作ってみたところでXNAにまつわる現時点での個人的な印象を書いておこう。
いいとこ
- 開発が簡単
Visual Studioという強力な開発環境、周辺ツール、および扱いやすいC#という組み合わせのおかげでゲームを作ること自体はだいぶ簡単な印象。初期化やゲームの基本シーケンスなどはXNAフレームワークの中にうまいこと隠蔽されているので、開発者が気を使わなくてもいい。最初に戸惑ったシェーダ前提の作りも、慣れてしまえば扱いはそんなに難しくなく、HLSLを使って近代的なシェーダメカニズムで手軽に遊ぶことができる。
- Xbox360でそのまま動く
Windows上で開発したコードベースそのままで360上で動作させることができる。開発用PCと360がネットワーク接続さえされておけばよく、Visual Studioからのブレークポイント設定、ステップ実行、ウォッチなどのリモートデバッグも簡単に行える。360のダッシュボード上に自分のゲームが表示されてそのまま実行できるのはなかなか感慨深い。
わるいとこ
- パフォーマンスが出ない
360のCPUが非力なのとXbox360 CLRの実装がこなれてないためにパフォーマンスを出すのが難しい。普通にコードを書くと1000程度のオブジェクトを60フレでハンドリングするのに苦労するというのは今どき厳しい。Windows上だとパフォーマンスが簡単に出てしまうのがこの問題を助長していて、Windowsではさくさく→360で動かしてなんじゃこりゃという悲劇が起こる。早めに360上で動作させてWindows上でも同程度の重さになるように意図的な処理落ちを入れる、とかしておいたほうがいいのかも。
- 配布が難しい
出来上がったゲームを配布するのが難しい。360用バイナリを動作させるには年間9800円の開発者用メンバーシップであるXNAクリエーターズクラブが必要なのでほぼ配布パスがないに等しい。Windows用も特定のランタイムを要求するために手軽には配布できない。Xbox Liveを使った配布パスを整備することはいろいろと難しいのだろうが、なんとか用意していただきたいところだ。