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