Является ли бурундук излишним для простого обнаружения столкновений? - PullRequest
1 голос
/ 11 марта 2011

Я работаю над игрой, в которой физика очень проста. Мне просто нужно определить, когда мяч (точка) попадает в стену (отрезок). Там нет гравитации, нет трения, и столкновения идеально упругие.

Я уже написал код обнаружения столкновений, но я собираюсь внести некоторые существенные изменения в проект, так что есть возможность заменить все это на физическую библиотеку Бурундука. Это хорошая идея?

С одной стороны, Бурундук будет более тщательно протестирован и оптимизирован, чем мой собственный код, и мне не придется выполнять работу по его поддержке.

С другой стороны, возможно, Бурундук будет менее производительным в моем случае, так как он был разработан для поддержки многих функций, которые я не буду использовать.

Я надеюсь, что кто-то, более знакомый с Бурундуком, избавит меня от усилий по его профилированию или самому чтению кода, чтобы сделать это определение.

Ответы [ 3 ]

3 голосов
/ 12 марта 2011

Единственное реальное преимущество, которое Бурундук получил бы здесь, - это если вы сталкиваете этот шар (или много шаров) со многими стенами, поскольку он использует пространственный индекс только для проверки столкновений объектов, которые находятся рядом друг с другом. Это означает, что вы можете масштабировать до сотен или тысяч объектов без замедления при сканировании, но не дает никаких реальных преимуществ, если на сцене только дюжина объектов.

Похоже, то, что вы реализовали до сих пор, прекрасно работает для ваших нужд. «Если это не сломано, не исправляйте это» - хорошее эмпирическое правило. С другой стороны, было бы действительно легко реализовать то же самое в Бурундуке. Если вам нужен опыт и возможность масштабируемости в обмен на стычку зависимости, думаю, сделайте это.

  • Скотт (физик Бурундука)
1 голос
/ 11 марта 2011

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

Это открытый исходный код, поэтому другой возможностью будет использование Бурундука, но удалите все ненужные функции - гравитацию, трение, моменты инерции и т. Д. Опять же, трудно сказать, что это хороший вариант без точно зная, что вы уже реализовали.

0 голосов
/ 11 марта 2011

Это действительно сводится к тому, что вы хотите, чтобы он делал. Я сам не использовал бурундук, но, судя по всему, я бы сказал, что вам не нужна полная физическая библиотека.

Теперь, если у вас есть планы расширить его за пределы шара и стены так, чтобы вы могли использовать его для расширенной физики, то изучение этой проблемы теперь может быть хорошей идеей. В целом, если вы не хотите изучать физическую библиотеку или не планируете повышать сложность / количество типов физических вычислений, я бы сказал, просто сделайте это сами.

...