В чем разница между JBox2D и libGDX Box2D

Я работаю над libGDX и использую Box2D для простых 2D физических взаимодействий внутри моей игры. Однако недавно я обнаружил существование библиотеки под названием JBox2D.

Есть ли разница между этими двумя библиотеками? В чем преимущества одного от другого?

Я знаю, что они оба основаны на библиотеке Box2D для C++ из-за этого:

Реализация Box2D в libgdx - это тонкая оболочка Java вокруг движка C++.


JBox2d - это порт Java физических движков C++ LiquidFun и Box2d.

Но что они подразумевают под портом и упаковкой? Является ли JBox2D более полным, чем Box2D? какой из них быстрее?

Я спрашиваю об этом, потому что хочу знать, может ли изменение моего проекта с одного на другой (в данном случае с Box2D на JBox2D) повлиять или оптимизировать производительность моей игры.

1 ответ

Решение

Как сказал MadProgrammer, расширение libgdx box2d (gdx-box2d) представляет собой оболочку JNI вокруг собственной библиотеки box2d. Хотя библиотека JBox2D полностью написана портом на Java и не опирается на нативную библиотеку. Однако вам может быть интересно узнать, что расширение gdx-box2d использует JBox2d за кулисами, когда невозможно обернуть нативную библиотеку. Который является единственным случаем для бэкэнда GWT.

В большинстве случаев (особенно для Android) быстрее использовать JNI-оболочку вместо JBox2d (вероятно, это также быстрее в iOS, поскольку RoboVM необходимо преобразовать байт-код JBox2D). Вот почему расширение использует это на этих бэкэндах. Конечно, это зависит от этого фактического сценария, поэтому вы должны сравнить и сравнить его, чтобы узнать реальную разницу.

Я сам не ставил gdx-box2d против JBox2d. Но по опыту могу сказать, что JNI-оболочка gdx-bullet (3D-физика) намного быстрее по сравнению с Java-портом JBullet.

Обратите внимание, что gdx-box2d включает в себя необходимые библиотеки. Это не зависит от каких-либо библиотек на платформе, которые необходимо обновить. Вам также не нужно беспокоиться о том, что установлены правильные библиотеки.

Другие вопросы по тегам