物理エンジンを選ぶ
物理エンジンとは、一言でいえば物体の物理的な運動や衝突をシミュレーションするライブラリです。
物理エンジンを使い始めるにあたって比較をしました。正式版でなく更新が停滞しているものは、この一覧程度以上には追わない予定です。
Sphynxのコーディングに先立って選定を行った情報を整理したものです。
選定条件
- ここでは2Dと3Dの両方を確認しています。
- あまり言語に振り回されないでロジックに集中できるように、ガベージコレクションを持つ言語を優先しています。
- オープンソースのものを中心に、ライセンス的に商用・非商用ともに使いやすいと考えられるものを並べました。
選定 | 次元 | 名称 | バージョン | ライセンス | プラットフォーム |
---|---|---|---|---|---|
△ | 3D | Bullet for XNA Physics Library | 2.50 Alpha (2007-12-21) | 商用・非商用OK | XNA(Windows/Xbox 360) |
○ | 2D | Farseer Physics Engine | 2.0 (2008-11-04) | Ms-PL v1.1 | XNA(Windows/Xbox 360)/Silverlight |
○ | 2D | JelloPhysics | 0.5 | - | XNA Game Studio 2.0(Windows/Xbox 360) |
? | 3D | JigLibX | 0.02 Beta (2008-04-30) | Ms-PL | XNA |
-- | 2D | Box2D | 2.0.1 | zlib/libpngライセンス | - |
-- | 2D | Box2DX (C# port of Box2D) | 2.0.1.3-r175 | ZLibライセンス | - |
-- | 2D | Box2DFlashAS3 (Flash Port of Box2D) | 2.0.1 | zlib/libpngライセンス | - |
-- | 2D | Physics2D.NET (C#) | 2.0.0.0 | MITライセンス | - |
-- | 3D | Bullet (C++) | 2.73 (2008-11-23) | zlibライセンス | - |
-- | 3D | ODE (Open Dynamics Engine) (C++) | 0.10.1 (2008-07-24) | GNUまたはBSD-styleライセンス | - |
※選定の内容には、主観的な要素が含まれます。
※バージョンは確認時点のものです。
Bullet for XNA Physics Library
Farseer Physics Engine
JelloPhysics
JelloPhysicsは、XNAやGDC 2008にも登場した「JellyCar」で使われた物理エンジンです。バネのモデルを用いたシンプルな2D物理エンジンです。ゼリーのような柔らかい物体に特化しています。その内部をガスで満たしているものとして圧力が計算できるPressureBodyクラスもあります。
JigLibX
Box2D (C++)
Box2DX (C# port of Box2D)
Box2DFlashAS3 (Flash Port of Box2D)
Physics2D.NET (C#)
- http://code.google.com/p/physics2d/
- Box2Dを使っている