Box2D
Ekran görüntüsü | |
Geliştirici(ler) | Erin Catto |
---|---|
İlk yayınlanma | 11 Eylül 2007 | )
Güncel sürüm | 3.0.0 / Ağustos 12, 2024[1] | )
Programlama dili | C++ |
İşletim sistemi | İşletim sisteminden bağımsız |
Tür | Middleware |
Lisans | MIT (sürüm 2.4.0'dan beri)[2] zlib Lisansı |
Resmî sitesi | box2d.org |
Kod deposu |
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,[3] ve birçok çevrimiçi Flash oyun,[4] 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ı.[5] 12 Temmuz 2015'te, hosting yeniden taşındı ve bu sefer barındırıcısı GitHub oldu.[6]
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.[7]
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,[8] Adobe Flash (ActionScript[9] ve Haxe[10] dillerinde), C#,[11] Lua, JavaScript[12][13] ve D[14] dahil diğer birçok programlama diline ve ortamına taşındı. Bağlamalar, Python,[15] 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ı.[16]
Motoru kullanan programlar
- SDL için BBC Basic, BBC Basic'in platformlar arası versiyonu[17]
- 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.[18]
- Solar2D
- Clickteam Fusion 2.5
- Flutter oyun motoru[19]
Ö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.[20]
İ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)[21] ve Phys2D (Java ile yazılmıştır)'nin[22] 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.[23]
LiquidFun fizik motoru, Google tarafından geliştirilen ve motora akışkan simülasyonu ekleyen[24] 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.[25]
Makaleler
Itterheim ve Wenderlich, Box2D'nin Cocos2d iPhone motorunda kullanımını açıklar.[26][27] Adobe Edge bültenindeki bir makale, Box2D'nin Flash oyunlarda kullanımını tartışmaktadır.[28]
Ayrıca bakınız
- Chipmunk (yazılım)
Kaynakça
- ^ Erin Catto. "Latest Release". GitHub. 3 Aralık 2020 tarihinde kaynağından arşivlendi.
- ^ "Box2D on GitHub". 15 Ekim 2021. 14 Temmuz 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Temmuz 2022.
- ^ "Play Happy Wheels Online – AndroidFantasy". 5 Eylül 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 14 Ağustos 2015.
- ^ "Box2d Games at Jayisgames". Jayisgames. 11 Mayıs 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Temmuz 2022.
- ^ "Box2D – Home". Box2D. 23 Ekim 2007 tarihinde kaynağından arşivlendi.
- ^ "GitHub Hosting | Box2D". box2d.org (İngilizce). 6 Nisan 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Nisan 2018.
- ^ "Release v2.4.0". github.com (İngilizce). 12 Ağustos 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 14 Ağustos 2020.
- ^ "JBox2D: A Java Physics Engine". JBox2D. 2 Ağustos 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Temmuz 2022.
- ^ "AS3 Flash Physics Engine Box2DFlashAS3 2.0.1". Box2D. 7 Ocak 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Temmuz 2022.
- ^ "Google Code Archive – Long-term storage for Google Code Project Hosting". 8 Ağustos 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Temmuz 2022.
- ^ "Google Code Archive – Long-term storage for Google Code Project Hosting". 23 Mart 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Temmuz 2022.
- ^ "Box2DJS". Box2D. 21 Nisan 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Temmuz 2022.
- ^ "GitHub – hecht-software/box2dweb: Automatically exported from code.google.com/p/box2dweb". GitHub. 16 Eylül 2021. 19 Ağustos 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Temmuz 2022.
- ^ "blaze". Dsource. 2 Mayıs 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Temmuz 2022.
- ^ "Pybox2d/pybox2d: 2D Game Physics for Python". GitHub. 23 Şubat 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Şubat 2016.
- ^ Perry, Michael (30 Ekim 2009). "Torque 2D Development Blog – Box2D Overview". garagegames.com. 5 Mart 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Şubat 2016.
- ^ "The home of BBC BASIC". 10 Temmuz 2022 tarihinde kaynağından arşivlendi.
- ^ "Love.physics - LOVE". 14 Ekim 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Temmuz 2022.
- ^ Flame
- ^ "Chapter 1 Introduction". Box2D. 27 Mart 2009 tarihinde kaynağından arşivlendi.
- ^ "Google Code Archive – Long-term storage for Google Code Project Hosting". 31 Aralık 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Temmuz 2022.
- ^ "Index of /phys2d". Coke and Code. 3 Mayıs 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Temmuz 2022.
- ^ "tm4ko – Ghostbin". Ghostbin. 27 Temmuz 2013 tarihinde kaynağından arşivlendi.
- ^ "LiquidFun". google.github.io. 15 Nisan 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Mart 2017.
- ^ "Physics · libgdx/Libgdx Wiki". 6 Mayıs 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Temmuz 2022.
- ^ Steffen Itterheim. (2010). "Learn iPhone and iPad cocos2d Game Development." Apress.
- ^ Rod Strougo and Ray Wenderlich. (2011). "Learning Cocos2d: A Hands-On Guide to Building IOS Games with Cocos2d, Box2d, and Chipmunk." Addison-Wesley Professional.
- ^ "Adobe Edge: April 2010 – Developing physics-based games with Adobe Flash Professional". Adobe. 11 Ağustos 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Temmuz 2016.