Начну с того что я понимаю под синхронизацией: это разделение процессов, дабы первую часть выполнять не в зависимости от мощности компьютера и скорости обработки второй части. Завязывается это на системном времени, а оно тикает всегда без тормозов.
У меня идёт такой метод оптимизации: если рендер очень весом, а логика не успевает на 60 логических циклов в кадр (UPS), значит пропускается рендер. Таким образом, рывки - это чушь, от них избавляешся без проблем.
Далее:
1. никакой синхронизации на самом деле просто не существует, есть выполнение работы подсистем движка _за кадр_.
|
Кадр - это только тогда, когда ты вызвал RenderWorld и затем Flip'нул буффера, таким образом, я могу выполнять логику сколько мне угодно, а рендерить не всегда - и это будет тоже одним кадром
2. всевозможные интерполяции положений (в том числе и скелетной анимации), RenderTwinning в Blitz3D и т.д должны выполнятся _раз в кадр_
|
Играл в MotoCross где-то 98 года игра? На нынешних машинах, запустив её, нажав старт ты уже будешь в стенке, затем через секунд 30 противник проедет 3 круга и дёрнет тебя, в чём прикол? Да в том что там всё шло именно в кадр. Пример из современного, ставим Assassin's Creed, ставим настройки по максимум, смотрим ролики, вот тебе пример не синхронизации анимации, звук идёт как положено, а челы двигаются в зависимости от FPS - глупо согласись.
А теперь глянь на Crysis - и учись как нужно синхронизировать всё, заметь, там и с лагами и без, вся анимация, физика и логика проходит с одной скоростью - это есть отличная синхронизация.
3. расчет физики должен иметь:
со одной стороны фиксированный таймстеп не зависящий от отрисовки, т.е. столько шагов интеграции, сколько влазит в дельтатайм между вызовами физ движка
|
Читай второе.
4. звук, в отличии от графики, "тянуть" нельзя. он запускается логикой, одновременно с запуском анимаций, спецэффектов и тому подобного.
|
Звук везде практически, работает отдельным потоком, поэтому и лаги ему нипочём, при этом потребляет он ничтожно мало. Теперь смотри, у тебя анимация бега, на одном компе (мощном), ты бежишь и у тебя постоянный стук ног по земле, а на слабом, у тебя промежуток времени между этим в раза 4 больше, интерестно..
Или у тебя чел будет разговаривать, открывая рот, при этом звук идёт как положено, а вот комп недотягивает, и тут билеберда, звук договорил, а этот ртом воздух глотает, так неспеша
5. ИИ. лучший кандидат на "растягивание". видел игры где противник играет слабее, когда играешь на слабой машине. жаль что не могу сходу вспомнить.
в квейке (1996 года) применялось откладывание обработки ИИ монстров и предметов на уровне, так называемый nextthink, т.е. время, когда монстр сможет подумать в следующий раз.
|
Ну это уже чушь полнейшая, при этом это мотивирует игрока запускать комп на более слабой машине и максимальных настройках, лижбы гамать с 30 фпс, тогда противник тупой

, это уже перебор, сам подумай, тут расписывать и не нада!..
попробуй отдохнуть. такое впечатление что у тебя нервное истощение.
|
Хочу, а не дают, много работы, и авралов, а когда пытаешся ошибающегося навести на "путь истинный" - тебе ещё и плуют в глаза, и не ценят старанья, тогда и срываешся.