XNAいいとこわるいとこ

XNAで一個ゲームを作ってみたところでXNAにまつわる現時点での個人的な印象を書いておこう。

いいとこ

  • 開発が簡単

Visual Studioという強力な開発環境、周辺ツール、および扱いやすいC#という組み合わせのおかげでゲームを作ること自体はだいぶ簡単な印象。初期化やゲームの基本シーケンスなどはXNAフレームワークの中にうまいこと隠蔽されているので、開発者が気を使わなくてもいい。最初に戸惑ったシェーダ前提の作りも、慣れてしまえば扱いはそんなに難しくなく、HLSLを使って近代的なシェーダメカニズムで手軽に遊ぶことができる。

Windows上で開発したコードベースそのままで360上で動作させることができる。開発用PCと360がネットワーク接続さえされておけばよく、Visual Studioからのブレークポイント設定、ステップ実行、ウォッチなどのリモートデバッグも簡単に行える。360のダッシュボード上に自分のゲームが表示されてそのまま実行できるのはなかなか感慨深い。

わるいとこ

  • パフォーマンスが出ない

360のCPUが非力なのとXbox360 CLRの実装がこなれてないためにパフォーマンスを出すのが難しい。普通にコードを書くと1000程度のオブジェクトを60フレでハンドリングするのに苦労するというのは今どき厳しい。Windows上だとパフォーマンスが簡単に出てしまうのがこの問題を助長していて、Windowsではさくさく→360で動かしてなんじゃこりゃという悲劇が起こる。早めに360上で動作させてWindows上でも同程度の重さになるように意図的な処理落ちを入れる、とかしておいたほうがいいのかも。

  • 配布が難しい

出来上がったゲームを配布するのが難しい。360用バイナリを動作させるには年間9800円の開発者用メンバーシップであるXNAリエーターズクラブが必要なのでほぼ配布パスがないに等しい。Windows用も特定のランタイムを要求するために手軽には配布できない。Xbox Liveを使った配布パスを整備することはいろいろと難しいのだろうが、なんとか用意していただきたいところだ。