Воспроизведение записанного игрового повтора

У меня проблема с воспроизведением записанного игрового повтора. Данные воспроизведения состоят из кортежей временной метки, когда пользователь ввел данные, и самого ввода.

Каждый кадр во время воспроизведения повтора я пытаюсь найти соответствующий пользовательский ввод в данных повтора. Но поскольку время в каждом кадре в большинстве случаев никогда точно не совпадает с отметкой времени в данных воспроизведения, я могу получить только ближайшую отметку времени из данных воспроизведения, которая в среднем отличается примерно на 0,01 секунды от времени текущего кадра. Это делает воспроизведение очень неточным.

Какие у меня есть возможности реагировать на эту разницу?


person Andreas Linden    schedule 07.04.2012    source источник


Ответы (1)


Сам нашел решение:

Если вы хотите записывать демо, используя только пользовательский ввод, необходимо выполнить два критерия.

  1. Иметь фиксированную частоту обновления игры, не зависящую от FPS
  2. физика должна быть детерминированной

поскольку обе точки реализовать непросто, я решил использовать моментальные снимки кадров для сохранения демо. это приводит к сохранению большего количества данных, но упрощает разработку.

person Andreas Linden    schedule 14.04.2012