В игре вам нужно синхронизировать обновление физики с частотой кадров игры.Это потому, что ваш рендеринг и игровой процесс будут зависеть от производительности вашего физического движка в каждом кадре.И ваш физический движок будет зависеть от пользовательского ввода и событий игрового процесса в каждом кадре.
Это означает, что единственное преимущество расчета вашей физики в отдельном потоке состоит в том, что он может работать на отдельном ядре процессора для остальной части вашегоигровая логика и рендеринг.(Довольно безопасно для ПК в наши дни, и мобильное пространство только начинает приобретать двухъядерный процессор.)
Это позволяет им одновременно выполнять и физику, и игровой процесс / рендеринг, но недостатком является то, что вам нужно иметьнекоторый механизм, предотвращающий изменение данных одним потоком, в то время как другой поток использует эти данные.Это обычно довольно сложно реализовать.
Конечно, если ваша физика не зависит от пользовательского ввода - как Angry Birds или The Incredible Machine (то есть: пользователь нажимает «play»)и симуляция запускается) - в этом случае вы можете заранее рассчитать физическое моделирование, записав его вывод для воспроизведения.Но вместо того, чтобы блокировать основной поток, вы можете переместить эту трудоемкую операцию в фоновый поток - что является хорошо понятной проблемой.Вы даже можете зайти так далеко, чтобы начать воспроизведение своей записи в главном потоке, даже до того, как она закончит запись!