Box2D は、Erin Catto によってC 言語で記述され、 MIT ライセンスの下で公開されている、無料のオープンソース2 次元物理シミュレーターエンジンです。Crayon Physics Deluxe、Limbo、Rolando、Incredibots、Angry Birds、Tiny Wings、Shovel Knight、Transformice、Happy Wheels [ 3 ]、Noita [ 4 ]、および多くのオンライン Flash ゲーム[ 5 ]で使用されているほか、 Cocos2dまたは Moscrif ゲーム エンジンとSolar2Dフレームワークを使用した Android、iPad、iPhone ゲームでも使用されています。また、Unity ゲーム エンジンでも使用されており、 Scratchベースのプログラミング言語 TurboWarp (拡張機能ギャラリーの Web サイト) および PenguinMod (組み込みの拡張機能)の拡張機能としても利用可能です。
Box2D は、最初に「Box2D Lite」としてリリースされました。これは、Erin Catto がGDC 2006 で行った物理学のプレゼンテーションに付随するデモエンジンでした。2007 年 9 月 11 日に、 SourceForgeでオープンソースとしてリリースされました。2010 年 1 月 17 日に、Box 2D はプロジェクトをGoogle Codeにホスティングするために移動しました。[ 6 ] 2015 年 7 月 12 日に、ホスティングは再び移動され、今度はGitHubになりました。[ 7 ]
2008年3月6日、バージョン2.0がリリースされ、連続衝突検出が導入され、APIが刷新されました。
2020年7月27日、バージョン2.4がリリースされ、さまざまな変更が加えられたが、最も注目すべきはライセンスがMITライセンスに変更されたことである。[ 8 ]
2024年8月12日、バージョン3.0がリリースされ、ライブラリ全体がC言語で書き直され、APIが刷新され、シングルスレッドとマルチスレッドのパフォーマンスが向上し、より安定した物理ソルバーに変更されました。[ 9 ]
2026年6月29日、Box2Dのウェブサイトで新しい3D物理エンジン「Box3D」が発表された。[ 10 ]
Box2D自体はプラットフォームに依存しないC言語で記述されており(Cコンパイラが利用可能なシステムであればどれでも使用可能) 、固定小数点モードと浮動小数点モードの両方でコンパイルできます。また、ニンテンドーDS、Wii 、 Android、BlackBerry 10、iOSなどの複数の携帯電話、そして主要なオペレーティングシステムのほとんどで使用されています。
このエンジンは、Java [ 11 ] 、 Adobe Flash ( ActionScript [ 12 ]およびHaxe [ 13 ]言語)、C# [ 14 ] 、Lua、JavaScript [ 15 ] [ 16 ]、D [ 17 ]など、他の多くのプログラミング言語や環境に移植されています。コンパイル済みライブラリをPython [ 18 ]、DarkBASIC 、 BBC BASICから使用するためのバインディングも存在します。
2009年10月30日、Box2Dが(現在では旧式の)Torque 2Dゲームエンジンに統合されることが発表された。[ 19 ]
Box2Dは、拘束された剛体シミュレーションを実行します。凸多角形、円、エッジ形状で構成された物体をシミュレーションできます。物体はジョイントで接続され、力が作用します。このエンジンは、重力、摩擦、反発力も適用します。
Box2D の衝突検出および解決システムは、インクリメンタルスイープおよびプルーニング広域フェーズ、連続衝突検出ユニット、および安定した線形時間接触ソルバーの 3 つの部分で構成されています。これらのアルゴリズムにより、衝突を見逃したり不安定性を引き起こしたりすることなく、高速な物体や大きなスタックの効率的なシミュレーションが可能になります。[ 21 ]
Box2Dエンジンの初期バージョン(現在はBox2D Liteとして知られている)は、主に教育目的でリリースされたもので、エリン・キャットーが毎年開催しているゲーム開発者会議での一連のプレゼンテーションに基づいている。Box2D LiteはBox2Dと同じアルゴリズムを多く使用しているが、機能セットはより小規模である。
Chipmunk物理エンジン(C言語で記述)[ 22 ]とPhys2D(Javaで記述)[ 23 ]はどちらもBox2D Liteを部分的にベースにしている。iOSおよびOS X用のSpriteKitで使用されている物理エンジンは内部的にBox2Dを使用している。[ 24 ]
LiquidFunの物理エンジンは、 GoogleのBox2D [ 25 ]のフォークであり、エンジンに流体シミュレーションを追加したものです。
LibGDXは、物理エンジンとしてC言語で書かれたネイティブのBox2DコードをJavaでラップしたものを使用しています。[ 26 ]
ItterheimとWenderlichは、 Cocos2d iPhoneエンジンでのBox2Dの使用法について説明しています。[ 27 ] [ 28 ] Adobe Edgeニュースレターの記事では、FlashゲームでのBox2Dの使用法について論じています。[ 29 ]
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)