Box2D

Box2D, Erin Catto tarafından C++ dilinde yazılmış ve MIT Lisansı altında yayınlanmış ücretsiz bir açık kaynak iki boyutlu fizik simülatörü ve oyun motorudur. Crayon Physics Deluxe, Limbo, Rolando, Incredibots, Angry Birds, Tiny Wings, Shovel Knight, Transformice, Happy Wheels, ve birçok çevrimiçi Flash oyun, ve Cocos2d veya Moscrif oyun motorunu ile Corona çerçevesini kullanan iPhone, iPad ve Android oyunları tarafından kullanılır.
Tarihçe
Box2D ilk olarak Erin Catto tarafından 2006'da GDC'deki bir fizik sunumuna eşlik edecek olan bir gösteri motoru olan "Box2D Lite" olarak piyasaya sürüldü. 11 Eylül 2007'de SourceForge'da açık kaynak olarak yayınlandı. 17 Ocak 2010'da Box 2D, projeyi barındırma için Google Code'a taşıdı. 12 Temmuz 2015'te, hosting yeniden taşındı ve bu sefer barındırıcısı GitHub oldu.
6 Mart 2008'de sürüm 2.0 yayımlandı, sürekli çarpışma algılama tanıtıldı ve API yenilendi.
27 Temmuz 2020'de, çeşitli değişikliklerle birlikte sürüm 2.4 piyasaya sürüldü, özellikle de lisans MIT Lisansı olarak değiştirildi.
Platformlar arası kullanılabilirlik
Box2D, platformdan bağımsız C++ ile yazılmıştır (C++ derleyicisi olan herhangi bir sistemde kullanılabilir). Motor sabit nokta ve kayan nokta modlarında derlenebilir ve Nintendo DS, Wii gibi oyun platformları ile (Android, BlackBerry 10 ve iOS) işletim sistemli çeşitli cep telefonlarında ve çoğu büyük işletim sistemi dahil farklı sistemlerde kullanılmıştır.
Motor, Java, Adobe Flash (ActionScript ve Haxe dillerinde), C#, Lua, JavaScript ve D dahil diğer birçok programlama diline ve ortamına taşındı. Bağlamalar, Python, DarkBASIC ve BBC BASIC'den derlenmiş kitaplığı kullanmak için mevcuttur.
30 Ekim 2009'da Box2D'nin (artık eski) Torque 2D oyun motoru'na entegre edildiği açıklandı.
Motoru kullanan programlar
SDL için BBC Basic, BBC Basic'in platformlar arası versiyonu
BlitzBasic
GameMaker: Studio, fizik simülasyonu için motoru kullanır.
LibGDX, oyunlar ve aydınlatma için fizik motorunu kullanır.
Stencyl, oyunlar için fizik motorunu kullanır ve Flash ve iOS'a dışa aktarmaya izin verir.
Unity
Construct2
LÖVE, oyunlar için fizik motorunu kullanır.
Solar2D
Clickteam Fusion 2.5
Flutter oyun motoru
Özellikler
Box2D, kısıtlı rijit cisim simülasyonu gerçekleştirir. Dışbükey çokgenler, daireler ve kenar şekillerinden oluşan gövdeleri simüle edebilir. Cisimler eklemler ile birleştirilir ve kuvvetler tarafından etki edilir. Motor ayrıca yerçekimi, sürtünme ve tazmin uygular.
Box2D'nin çarpışma algılama ve çözümleme sistemi üç parçadan oluşur: artımlı bir süpür ve budama geniş faz, bir sürekli çarpışma algılama birimi ve kararlı bir doğrusal zamanlı temas çözücü. Bu algoritmalar, çarpışmaları kaçırmadan veya kararsızlığa neden olmadan hızlı gövdelerin ve büyük yığınların verimli simülasyonlarına izin verir.
İlgili motorlar
Box2D motorunun, şimdi Box2D Lite olarak bilinen önceki bir sürümü, Erin Catto'nun verdiği bir dizi yıllık Oyun Geliştiricileri Konferansı sunumuna dayalı olarak öncelikle eğitim amaçlı olarak yayınlandı. Box2D Lite, Box2D ile aynı algoritmaların çoğunu kullanır, ancak daha küçük bir özellik setine sahiptir.
Chipmunk fizik motoru (C ile yazılmıştır) ve Phys2D (Java ile yazılmıştır)'nin her ikisi de kısmen Box2D Lite'a dayalıdır. iOS ve OS X için SpriteKit'te kullanılan fizik motoru Box2D'yi dahili olarak kullanır.
LiquidFun fizik motoru, Google tarafından geliştirilen ve motora akışkan simülasyonu ekleyen Box2D'nin bir çatalıdır.
LibGDX, fizik motoru olarak C++ ile yazılmış yerel Box2D kodunun etrafında bir Java sarmalayıcı kullanır.
Makaleler
Itterheim ve Wenderlich, Box2D'nin Cocos2d iPhone motorunda kullanımını açıklar. Adobe Edge bültenindeki bir makale, Box2D'nin Flash oyunlarda kullanımını tartışmaktadır.