К сожалению, эта система также вводит три-четыре запаздывания фрейма между входным сигналом и откликом в зависимости от того, когда в течение фрейма был получен входной сигнал. (Большинство телевизоров добавляют еще один или два фрейма, чтобы обработать сигнал, прежде чем на экране появится изображение, но мы не можем контролировать эти задержки, поэтому я их проигнорирую.)
Плохой код может увеличить задержку еще больше, до пяти, шести, семи или более фреймов. Программисты несут ответственность за отсутствие в игре лишних фреймов с задержкой. Как только программисты убедились, что они не допустили ошибок и код не запаздывает, аппаратное обеспечение больше не позволяет снижения задержки ниже трех фреймов.
Единственный вариант – изменить длину каждого фрейма путем изменения общей кадровой частоты игры.
Но какую кадровую частоту нужно выбрать?
Некоторые ориентируются на фильмы или телевидение. Фильмы проигрываются со скоростью 24 к/с (кадра в секунду), а телевидение – со скоростью 30 к/с. Эти кадровые частоты были выбраны потому, что они являются нижними пределами, необходимыми для того, чтобы избежать заметного мерцания или полос изображения. Но мы не можем слепо применять эти стандарты к играм. Важная задержка в телевизоре – между одним кадром и следующим. Важная задержка в игре заключается между входным сигналом и откликом, который, как мы видели, в три-четыре раза длиннее.
Другие ищут ответ во времени реакции человека. Но это тоже не работает. Ответ, который мы ищем, не имеет никакого отношения к скорости, с которой игрок реагирует на игру. Он связан со скоростью, с которой игра реагирует на действия игрока, а также с тем, достаточно ли она быстрая, бесперебойная и синхронизированная.
На самом деле нет единой стандартной кадровой частоты, которая будет правильной для игры. Скорее это компромисс между графикой и откликами. Каждая миллисекунда дополнительной задержки делает игру немного медленнее, в то же время оставляя больше времени для визуализации сложной графики.
Игроки учатся нажимать на кнопки заранее, чтобы компенсировать задержку отклика управления. Длина задержки отклика управления в игре определяет, насколько раньше игроки должны нажимать на кнопки.
Например, представьте, что игрок шутера наводит прицел на цель с постоянной скоростью. Игрок видит, что цель будет под прицелом через 0,5 секунды. Представьте, что игра работает на скорости 30 к/с, а экран добавляет 50 мс запаздывания. Это значит, что общая задержка входного сигнала составляет 183 мс (четыре кадра по 1/30 секунды каждый плюс 50 мс от телевизора).
Если игрок стреляет, когда видит, что его прицел заходит на цель, он промажет, потому что входной сигнал не дойдет на экран еще в течение почти одной пятой секунды. К тому времени его прицел уже пройдет цель (игнорируя помощь при прицеливании). Таким образом, чтобы попасть в цель, он должен научиться нажимать на курок на несколько кадров раньше. Более длительные задержки означают, что игроки должны уметь прогнозировать дальнейшие события, что требует большего мастерства и ощущения меньшей синхронизации.
Правильная кадровая частота зависит от потребностей дизайна. Некоторые старые текстовые приключенческие игры запускались со скоростью менее 1 к/с, поскольку им требовалось время, чтобы набрать описание на экране, шутеры типа Quake 3 можно запускать со скоростью 200 к/с и больше. Игры с частотой 1 к/с являются жизнеспособными, если они пошаговые и управляются нажатием клавиш. Частота 200 к/с – это верхний уровень кадровой частоты, к которому стремятся те, кто играет в соревновательные шутеры на ПК. Эти игроки запускают игры 10-летней давности на оборудовании в 30 раз более мощном, чем лучшее из доступного на момент выхода игры. Так они хотят получить максимум конкурентного преимущества.
Тем не менее подавляющее большинство игр запускается на скорости 30 или 60 к/с. Немногие игроки могут почувствовать улучшение выше 60 к/с, а кадровые частоты меньше 30 к/с слишком низки, чтобы их можно было визуально заметить. Как правило, вы выбираете между этими двумя альтернативами. При 30 к/с, с оптимальной задержкой в четыре фрейма, задержка составляет от 100 до 133 мс плюс задержка экрана. При 60 к/с задержка падает до 50–67 мс плюс задержка экрана. В мире без ограничений по вычислительной мощности мы всегда выбираем 60 к/с. Однако в реальной жизни 60 к/с обходится дорого. Джон Кармак, легендарный разработчик игр Doom и Quake, заявил, что игра с частотой 60 к/с занимает около трети вычислительной мощности, доступной на фрейм, как и игра с частотой 30 к/с. Это дорогостоящий компромисс между графикой и технологической сложностью.
Выбор между 30 и 60 к/с зависит от предполагаемого мастерства игроков, типа интерфейса управления и особенностей эмоциональных триггеров игры. Игру, в основе которой лежит графика или нарратив, часто лучше оставить с частотой 30 к/с, потому что это позволяет получить более насыщенные визуальные эффекты. То же самое касается игры, в основе которой лежат навыки и которая не зависит от быстрого входного сигнала, как пошаговая стратегическая игра. Частота 60 к/с важна в тех случаях, когда опытные игроки взаимодействуют с системами, требующими быстрой реакции. Шутеры, гонки и файтинги являются наиболее распространенными кандидатами на частоту 60 к/с.
Зачастую другие заинтересованные стороны разработки проекта оказывают давление с целью отказаться от стандарта 60 к/с, даже если это правильный выбор. Это происходит по той причине, что затраты при частоте 60 к/с напрямую влияют на многие отдельные заинтересованные стороны в процессе разработки, при том что полезный эффект малозаметен. Художники хотят раздвинуть границы масштаба, детализации и красоты. Программисты хотят, чтобы больше циклов процессора увеличивало сложность ИИ и физических систем. Маркетологи и издатели хотят самые впечатляющие скриншоты и рекламу. Эти группы часто оправданно сомневаются в том, что необходимо пожертвовать двумя третями своей вычислительной мощности за фрейм для, казалось бы, невидимой выгоды. Так что существует определенная предвзятость против частоты 60 к/с. Вот почему дизайнерам всегда нужно усердно доказывать необходимость использования частоты в 60 к/с.
Дизайн входного сигнала
Входной сигнал трудно спроектировать, потому что его сложно воспринимать. Я наблюдал за командами разработчиков, которые проверяли игру, раздавали и передавали друг другу контроллер и не соглашались с тем, что на самом деле делает игра, хотя все действия происходили у них на глазах. С практикой можно научиться отличать хорошую чувствительность механизма управления от плохой. Но вы никогда не сможете точно знать, что происходит внутри, потому что это намеренно скрыто.
И чем лучше система входного сигнала, тем сложнее ее понять. Помните старое выражение: чем проще кажется задача, тем труднее ее решение. Это правило как нельзя лучше подходит для дизайна входного сигнала. Для игрока управление прыжками Марио и система прицеливания в Halo – это просто. Но за этой простотой скрываются сложные системы вероятностей, пограничных случаев и систем помощи.
Большинство игроков никогда не поймут, почему игра ощущается так, а не иначе. Они будут благодарить графику или баланс за успехи, которые фактически принадлежат системе входного сигнала. Даже разработчики игр легко забывают о важности входного сигнала. Таким образом, его часто игнорируют. Если бюджет ограничен, а сроки поджимают, жалко тратить скудные ресурсы на то, что никто не может увидеть.