- SilverSprite (http://silversprite.codeplex.com/)
という、XNA GSで書いたゲームをSilverlightにコンバートするためのライブラリがある。これを使えば、PC、Xbox360上だけでなく、ブラウザ上でもXNAゲーを動作させることができそうだ。
とりあえずごく簡単なパーティクルデモを作ってみた。Silverlight3のプラグインがおそらく必要。わざわざプラグイン入れてまで見る価値はまったくありません。
C#で書いたXNA用のコードのusing Microsoft.Xna.Frameworkをusing SilverArcade.SilverSpriteに書きかえるだけで、すぐにSilverlight用のものが作れる。なかなかの優れものだ。
ただいろいろと制限も多くて、
- 描画にSpriteBatchしか使えない。3D全般ムリ
- パフォーマンスが悪い。上のデモはPCのXNAで動かすと、この50倍はパーティクルが出せる
というのがなかなか厳しい。パフォーマンスに関しては、SilverSpriteやSilverlight向けにチューンする方法があればいいんだけど、なにぶん私がSilverlightのチューニング技法を全く知らないのがつらい。FlashのBitmapData.fillRectみたいな、パフォーマンスに優れたfillがSilverlightにもあればいいんだけど、そういうのってあるのかな。