Оптимизация физики в многопользовательской игре — опыт разработчиков Shadow Fight Arena

Плоская иерархия и XPBD.

146146

1)
Еще при разработке физики, построенной на узлах, мы обнаружили, что использование большого количества итераций корректировки за один шаг (Substep) даёт намного более мягкий результат симуляции, чем много шагов по одной итерации. Разве на гифке правое тело не более корректно? То, которое 1 iteration / substep?
2)
Новая физика также использует целочисленные вычисления и полностью детерминированнаА этого достаточно для полной детерминированности? Просто я не в курсе. Просто звучит как довольно простое решение и подозрительно, что кто-то вообще использует флоаты для физических движков в таком случае
3)
Используете Jobs или че-нить нативное для своей физики вместо managed C#?

1
Ответить

(кодил эту физику)
1) Да, верно, сабстепы вместо итераций показывают себя лучше. Думаю, тут сложности формулировки вмешались
2) Да, если внешних зависимостей нет, случайных чисел нет, то целочисленной математики достаточно. Ее не используют в PhysX или Havok потому, что она существенно дороже по производительности и накладывает серьезные ограничения в плане расчетов. Очень легко получить overflow/underflow, что, скорее всего, взорвет симуляцию.
3) Было в планах, но не понадобилось — производительности managed версии оказалось достаточно

6
Ответить