Какой физический движок AS3 может последовательно воспроизводить симуляции?

В настоящее время я использую физический движок Nape для игры в стиле "Peggle" в ActionScript 3.0.

Он очень прост в использовании и работает без сбоев. Тем не менее, единственная сложность, с которой я сталкиваюсь с Nape, - это воспроизведение точно такой же симуляции.

Даже если я предоставлю одно и то же значение временного шага на протяжении всего игрового процесса, в вычислениях, похоже, будет достаточно "ошибки", из-за которой мяч время от времени попадает в разные колышки (начиная раунд с нуля), иногда даже приводя к большему или меньшему результату. колышки

Итак, мой вопрос:

Существуют ли другие физические движки для Flash, которые могут воспроизводить данную симуляцию ТОЧНО одинаково каждый раз, когда она запускается?

РЕДАКТИРОВАТЬ: Идея "записи" данных в каждом кадре и воспроизведения их была брошена на другие форумы, я задавал этот вопрос. Но, к сожалению, особенность "воспроизведения" не настолько велика, чтобы один и тот же пользователь мог просматривать свой собственный сценарий броска мяча. Он будет использоваться для обмена между игроками на разных машинах (например: клиент сообщает об ошибке с отбрасыванием шарика со значением 1234, мы пробиваем в 1234 и должны видеть ту же проблему). Поэтому, если мы предварительно запишем несколько сценариев (и под этим я подразумеваю ДОСТАТОЧНО дать игроку иллюзию, что они фактически проводят физическое моделирование), случайным образом выберете один и используйте этот случайный идентификатор в качестве способа идентификации конкретного сценария. это означает, что нам нужно будет встраивать в игру тонны данных, которые иначе можно было бы сохранить, если бы физический движок был детерминированным.


И просто отметьте все, что я уже пробовал в Nape:

  • Мяч возвращается в прежнее положение и вращается в начале игры.
  • Начальная скорость мяча устанавливается по клику пользователя, поэтому она должна перекрывать любую скорость, перенесенную с последнего раунда.
  • Колышки не двигаются (они статичны), поэтому нет смысла их сбрасывать.
  • Часть, которая ловит мяч, состоит только из статических коробок и датчиков, поэтому сбрасывать их тоже нет смысла.

1 ответ

Citrus Engine предоставляет схожую функциональность с TimeShifter, который вы можете проверить, запустив демонстрационную Braid (нажав [SHIFT], чтобы вернуться во времени), API TimeShifter

Другие вопросы по тегам