как синхронизировать физическую модель, аудио, рендеринг игры, отображение кадров и ввод - PullRequest
1 голос
/ 21 декабря 2009

Что такое хорошая последовательность обработки и / или модель потоков, которую следует использовать, чтобы дать пользователю представление о хорошо синхронизированной физической модели, аудио, видео, звуке и входных данных в приложении, при условии, что приложение не подготавливает «предсказательные» кадры или звук?

EDIT

Мой вопрос предполагает отсутствие концепции "сетевой игры", это просто отдельная машина.

1 Ответ

1 голос
/ 22 декабря 2009

Широкий вопрос.

Я предполагаю игровой контекст. То, что кажется более или менее универсальным, заключается в синхронизации при рендеринге кадров. Вот примерно то, что происходит:

  • Входные данные извлекаются и оцениваются, а ответы (ИИ и т. Д.) Вычисляются. Это может привести в движение новые физические процессы.
  • Если начинается событие, сопровождаемое звуком, этот звук запускается. С этого момента он работает более или менее автономно, пока не завершится, независимо от обработки кадра (где мы находимся)
  • Физическая модель обновлена. В большинстве случаев это будет что-то довольно простое, например, вычисление новой позиции из предыдущей позиции и скорости. Величина экстраполяции зависит от количества времени, прошедшего с последнего кадра (хотя это может быть усреднено, а не пересчитано для каждого кадра)
  • Из обновленной физической модели визуальная модель обновляется.
  • Графический движок отображает новую сцену (кадр) из обновленной модели.
  • Повторите, как только закончите.
...