Портативность по физике - PullRequest
2 голосов
/ 11 июня 2009

Резюме:

Вы когда-нибудь создавали интерфейс между двумя - или еще лучше - разными инструментами? Для онлайн-игры (или хотя бы с сетевой физикой)? Как это получилось? Уроки выучены? Лучше переписать большие куски кода в другом месте, или инвестиции окупились?

Вздутие:

Я использую ODE набор инструментов по физике для моего движка инди-игры, но через оболочку фасада. Первоначальная идея состояла в том, чтобы иметь возможность легко портировать на другой физический инструментарий (Havok, Bullet, что угодно), если / когда необходимо / возможно. Это казалось хорошей идеей для начинающих, но теперь начинает казаться, что в мельчайших деталях немало дьяволов. Например, необходимость в индивидуальной гравитации для каждого корневого объекта (которая в настоящее время даже не поддерживается ODE). Или обратных вызовов , когда объект / остров отключен (также не поддерживается ODE).

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

1 Ответ

4 голосов
/ 11 июня 2009

Взгляните на Физический уровень абстракции (PAL) , размещенный на SourceForge.net . Они утверждают, что поддерживают следующие физические движки в дополнение к множеству других возможностей:

  • Box2D (экспериментальный)
  • пуля
  • Хавок (экспериментальный)
  • IBDS (эксперимент)
  • JigLib
  • Newton
  • ОДА
  • OpenTissue (экспериментальный)
  • PhysX (a.k.a Novodex, Ageia PhysX, nVidia PhysX)
  • Простой физический движок (экспериментальный)
  • Токамак
  • TrueAxis

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

...