物理エンジンを選ぶ

 物理エンジンとは、一言でいえば物体の物理的な運動や衝突をシミュレーションするライブラリです。
 物理エンジンを使い始めるにあたって比較をしました。正式版でなく更新が停滞しているものは、この一覧程度以上には追わない予定です。

 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ライセンス -

※選定の内容には、主観的な要素が含まれます。
※バージョンは確認時点のものです。

JelloPhysics

 JelloPhysicsは、XNAGDC 2008にも登場した「JellyCar」で使われた物理エンジンです。バネのモデルを用いたシンプルな2D物理エンジンです。ゼリーのような柔らかい物体に特化しています。その内部をガスで満たしているものとして圧力が計算できるPressureBodyクラスもあります。

Box2DX (C# port of Box2D)

Box2DFlashAS3 (Flash Port of Box2D)

Physics2D.NET (C#)

ODE (Open Dynamics Engine) (C++)