現時点でのXNA Game Studio Expressには物理エンジンは付いてなさげ。そもそも物理エンジンがDirectXに統合されるのはDirectX 10からだったっけ。いやそれもやめたんだっけ。
なので物理エンジンは既存のものを引っ張ってきて使うしかない。私がなじみがあるODEに関しては、.NET用のラッパは既に存在していて、XNA用のも作っているみたい。
- ODE.NET(http://www.thejamesrainenetwork.co.uk/ode/ode.html)
- ODE.NET2(http://www.pepperboy.net/ode.asp)
- ode.xna(http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=688481&SiteID=1)
ただこれPC上ならともかく、Xbox 360実機上でも動くのかな。どうも360上にマッピングした時の制限や注意事項などが分からん。例えば360のマルチコアに処理を振り分ける、とかいうのは表現可能なのかしらん。Expressだと無理でProfessionalだとできる、とかそういう感じなのかな。
とか思っていたらそういうスレがあった。
- Multi-core programming(http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=655584&SiteID=1)
Yes, we are providing the ability to assign a Thread to a specific core and hardware thread.
一応スレッドを別コアに振り分けることはできるみたいね。あとそのスレの中に
- Application-customized CPU design(http://www-128.ibm.com/developerworks/power/library/pa-fpfxbox/)
360のプロセッサコアの説明へのリンクがあったけど、さすがにこのレベルを考慮した最適化は無理だよね?C#でCLR上から触る場合でも関係あるのかしらん。