Мы строим игру с Spritekit, которая требует, чтобы физический движок был детерминированным.Spritekit, Cocos2D/Chipmunk физический движок не детерминирован, переход на Box2d
Концепция игры: 2 участника - 2 устройства. Каждый игрок ждет, пока другой сыграет свою очередь. На каждом повороте игрок применяет импульс на одном из физических тел и посылает через websocket импульс и тело, на которое был применен импульс. Проблема в том, что каждое физическое моделирование результатов отличается.
В соответствии с настоящей статьей http://blog.element84.com/comparing-sprite-kit-physics-to-direct-box2d.html (тест 3) мы обнаружили, что проблема связана с двигателем физики Spritekit. Мы попытались переключить SpriteKit с Cocos2d 3 + Chipmunk и получили ту же проблему (немного лучше, чем SpriteKit).
Теперь единственным способом, который мы нашли, является переход на Box2d, но мы не знаем, как подключить двигатель к нашему проекту.
В соответствии с этой статьей: SpriteKit Nodes Sticking to Edges of Scene/Not Bouncing похоже возможно.
Наш проект написан в Свифт.
Похожие игры: https://itunes.apple.com/en/app/soccer-stars/id826523703?mt=8
Любые предложения?
ваши физические тела содержат равные веса? а во-вторых, комплект спрайтов использует box2d внутри, для аналогичного импульса просто определяют массу тела – dragoneye
да масса равна. Проблема такая же: –
Могу ли вы опубликовать эту часть кода (физическая) – dragoneye