SilverSpriteを使ったXNA GSゲーのSilverlight3化

という、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にもあればいいんだけど、そういうのってあるのかな。