Компьютерный Сленг Лаг

Лаг (от англ. lag,  — «запаздывание», «задержка») — задержка в работе компьютерного приложения, когда оно не реагирует на пользовательский ввод вовремя.

Производное от него «лагать» широко используются пользователями интернета для обозначения задержек в работе различных интернет-сервисов, онлайн-игр. Также геймеры используют слово «лаг» применительно к задержкам самой программы. Часто встречается в сетевых играх. С технической точки зрения представляет собой проявление влияния латентности операций передачи и обработки данных на качество работы системы реального времени.

Задержка реакции игры

Анализ

Даже в одиночной игре задержка между нажатием и изображением состоит из нескольких частей:

  • Физическое замыкание кнопки.
  • Реакция интерфейса клавиатуры/мыши. Реакция подсистемы обработки клавиатуры/мыши.
  • Просчёт физики игровым движком.
  • Простой в очередях заданий на рендеринг.
  • Рендеринг кадра.
  • Простой готового кадра от окончания рендеринга до переключения буферов, а затем — до прохождения через видеоинтерфейс.
  • Если игра в оконном режиме, даже безрамочном — между переключением буферов и попаданием в видеопамять вклинивается работа оконного менеджера.
  • Реакция устройств, преобразующих сигнал в мониторе (увеличивающих изображение, улучшающих качество) — особенно если вместо монитора телевизор и у него нет «игрового» режима.
  • Физическая реакция пикселей ЖК-монитора.

В сетевой игре к этому добавляется время прохода пакетов от компьютера к компьютеру.

Также играют роль микролаги или запинки (stutters) — кадры, которые рисуются дольше остальных. Обычно микролаги случаются, когда дела в игре приобретают серьёзный оборот (перестрелка в FPS, сложный трафик в гонке) — потому микролаги влияют на впечатление от игры даже больше, чем средняя задержка.

Чтобы снизить задержки, применяют такие меры:

  • Со стороны игрока:
    • Быстродействующие клавиатуры и мыши — геймеры используют устройства с частотой шины 1000 Гц, кнопки с коротким ходом и линейной реакцией, оптомеханические выключатели.
    • Повышение кадровой частоты — покупкой быстродействующего компьютера, снижением качества изображения.
    • Поиск «узкого места» игры, которое снизит задержку на данном компьютере.
    • Быстродействующий монитор. «Игровые режимы» в телевизорах.
    • Быстрое сетевое подключение. Отключение домочадцев, занимающих всю сеть — например, качающих большие файлы. QoS в маршрутизаторе, настроенный в пользу игры.
  • Со стороны разработчика и издателя:
    • Оптимизация разных подсистем игры — графической, сетевой, загрузки данных и так далее.
    • Игроков в онлайн-играх делят на регионы (Европа, СНГ, США…) и располагают сервер поближе к ним.

Лаг в сетевых играх

Если с задержками от кнопки до изображения начали бороться только в 2010-е, то задержки компьютерной сети начали играть роль с первых лет игр по интернету и почти всегда более значимы, чем остальные виды задержек (кроме особых случаев — киберспорт, то есть игра по неперегруженной локальной сети). В частности, свет проходит по экватору Земли за 130 мс — современными геймерами такой пинг считается неприемлемым, а ведь это теоретически наименьшая цифра, когда игроки в разных концах Земли.

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

Архитектура Doom (1993) была простейшей: у каждого игрока есть полное состояние игры. Каждый такт (35 тактов в секунду, 1 такт = 28 мс) игрок рассылает остальным своим кнопки управления. Как только у игрока накопятся кнопки от всех участников сетевой игры, он проводит новый такт. Через поперечник США тот же свет проходит за 15 мс, и подобной архитектуры хватает даже для модемной игры через несколько штатов США.

Между современными играми и Doom разница такая.

  1. Подобная архитектура ущербна по другим параметрам: неустойчива к читерству, с трудом позволяет войти в начатую игру или выбросить игрока…
  2. В телефоне используется канальная коммутация — АТС даёт абоненту гарантированную полосу пропускания со стабильной задержкой. В интернете коммутация пакетная — один участник передаёт другому сообщение (пакет), а промежуточные узлы выясняют, как его доставить. Это увеличивает ёмкость каналов и живучесть Интернета — но любой из узлов Сети может решать заторы, выбрасывая пакет, задерживая его, пуская по другому пути и т. д., что тоже увеличивает задержку.
  3. Если пакеты идут долго, управление запаздывает. Потому Doom плохо играется на задержках, превышающих игровой такт.

Обычно вопрос задержек решается так. У игры есть два состояния — «гарантированное» и «передовое». «Гарантированное» — это что случилось на сервере и никак нельзя изменить вдруг дошедшими пакетами, и может отставать на немалую величину — более 100 мс. «Передовое» состояние определяется локальным управлением игрока и пакетами тех игроков, у кого связь хорошая. Таким образом, несмотря на плохую связь, у каждого игрока отзывчивое управление. Стереотипные сетевые лаги выглядят так:

  • если у другого связь кратковременно пропадает — его персонаж сначала «зависает» (стоит на месте или двигается по прямой), а потом перепрыгивает. Если связь постоянно плохая — персонаж двигается рывками;
  • если у тебя связь кратковременно пропадает — вся игра приостанавливается (видит пропажу связи и перестаёт рассчитывать передовое состояние), а потом мгновенно перепрыгивает в новое состояние. Если связь постоянно плохая — вся игра двигается рывками.

Ещё со времён Doom в играх есть два способа стрельбы — мгновенный просчёт траектории пули (hitscan) и медленный снаряд (projectile). (Промежуточный — быстрая пуля — реализуется крайне редко и в очень реалистичных играх, ориентированных на снайперские и артиллерийские дуэли, его опустим.) Со снарядами игра не сильно погрешит против истины, если игрок целится по передовому состоянию, а попадания просчитываются по гарантированному. С просчётом траекторий так невозможно — на сервере передового состояния нет вообще, у разных игроков они разные, и существуют мощные виды hitscan-оружия вроде снайперской винтовки, для которых вопрос «попал-промахнулся» архиважен. Потому во многих движках (Source) используется так называемая компенсация задержек — сервер делает предположение, какую картинку видел клиент в момент выстрела. Внешне это выглядит так: игрок высунулся из укрытия, успешно спрятался и был убит уже там, в безопасном месте.

Влияние различных функций видеоадаптера на задержку одиночной игры

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

  • Ухудшение качества изображения — снижает задержку, даже если производительность упирается в другой компонент (процессор/видеоплату) и общая кадровая частота при этом не повышается.
  • Двойная буферизация — значительно повышает задержку.
  • Тройная буферизация — ещё сильнее повышает задержку.
  • nVidia G-Sync, AMD FreeSync — в таких условиях (кадровая частота системы больше, чем у монитора) бессмысленны. Если меньше — несколько повышают задержку.
  • Скоростная синхронизация (тройная буферизация, продолжающая вместо ожидания синхронизации заполнять заэкранные буфера) — в таких условиях незначительно повышает задержку. Если кадровая частота системы меньше таковой у монитора — бессмысленна.
  • Оконный режим, даже безрамочное окно — повышает задержку по сравнению с полноэкранным режимом.
  • Искусственное ограничение кадровой частоты — снижает задержку, если производительность упирается в видеоплату.
  • nVidia Ultra-Low Latency/AMD Anti-Lag — бессмысленны, ограничение кадровой частоты эффективнее.

История

Долгое время снижение игрового лага сводилось к повышению кадровой частоты. При этом игровые приставки изначально имели преимущество — с первых поколений выдавали высокую кадровую частоту (50/60 Гц), это достигалось специализированными решениями, ограничивавшими геймдизайн, но удешевлявшими систему: так, Sega Mega Drive 16-битный с частотой 7,6 МГц, а сходный по производительности 80386 уже 32-битный и 12…40 МГц.

К началу 2000-х игры на ПК стали стабильно давать те же 60 Гц, что и на приставках, и все 2000-е повышалось качество изображения путём программирования видеоплаты с помощью шейдеров. Чтобы добавить освещение, отражения и прочее, потребовалось несколько проходов рендеринга, и чтобы процессор не ждал, рендеринг сделали отложенным. Такая технология сыграла злую шутку: если загрузка видеоплаты на пределе, повышается задержка от нажатия до изображения. Ограничение кадровой частоты, даже до 95 %, делающее игру виртуально «процессорозависимой», снижает задержку.

Задержка всё это время была в тени, потому что её сложно измерить — требуется модифицированная мышь (нажатие на кнопку зажигает светодиод) и скоростная камера. Исследователи могли измерить цифру до 120 мс, и даже на кадровой частоте 120 fps она порядка 40 мс. Подобную задержку иногда называют «преимущество выглядывающего» — выглядывающий из-за препятствия заранее знает, что в данной точке обороняющийся, и может выстрелить наперёд, а обороняющийся — нет. В 2020 году появилась технология nVidia Reflex — она позволяет игре следить за загрузкой видеоплаты, и этим очень сильно снижает задержку. Технология доступна с любым монитором и даже на относительно старых видеоплатах (начиная с GeForce 900), но игра должна её поддерживать. (А вот другая часть nVidia Reflex, вычисление задержки, требует особого монитора и учитывает всё, кроме быстродействия мыши и пикселей монитора.)

В ритм-играх важны сотые доли секунды, все события полностью предсказуемы, и они обычно играются на консолях, где устройство вывода — телевизор со своими алгоритмами улучшения изображения. Потому в Guitar Hero и подобных играх есть калибровка задержек.

См. также

Примечания

Ссылки

Tags:

Компьютерный Сленг Лаг Задержка реакции игрыКомпьютерный Сленг Лаг См. такжеКомпьютерный Сленг Лаг ПримечанияКомпьютерный Сленг Лаг СсылкиКомпьютерный Сленг ЛагАнглийский языкГеймерИнтернетЛатентностьМеждународный фонетический алфавитРеальное время

🔥 Trending searches on Wiki Русский:

Российская империяНасвайТеррористический акт в БесланеWildberriesНикитин, Сергей ЯковлевичНовосибирскСкинхедыДуров, Павел ВалерьевичЧингисханBrawl StarsСпециальные символыСемь смертных греховТеракт в «Крокус Сити Холле»Ельцин, Борис НиколаевичЗакон ОмаСудьба человекаБетховен, Людвиг ванОренбургКунг-фу панда 4Битва за МосквуРуандаЮмашева, Татьяна БорисовнаБайкалТолстой, Пётр ОлеговичИнаугурация2ГИСС-400Головкин, Сергей Александрович (серийный убийца)АзербайджанСписок серийных убийц по количеству жертвВолгоградЮмашев, Валентин БорисовичЯнковский, Иван ФилипповичПожар в торговом центре «Зимняя вишня»Телец (знак зодиака)Московский государственный университетГосуслугиЕвреиЧемпионат Европы по футболу 2024Февральская революцияВодительское удостоверение в Российской ФедерацииСССРФонбетСиний кит (игра)АвстралияБрестская крепостьВторжение России на Украину (2022)Алиса (голосовой помощник)Гарсия, РайанRuTracker.orgВикипедияOzonМотен, АаронЭтанолMIM-23 HawkРусский языкЦой, Виктор РобертовичИльин, Иван АлександровичМаковецкий, Сергей ВасильевичТаиландРоксоланаПасьянсС-500МалайзияОппенгеймер (фильм)Орден ЛенинаМорпехи (фильм)Глушаков, Денис БорисовичВояджер-1КурваАлиев, Ильхам Гейдар оглыChatGPTАли, МухаммедВоинские звания и знаки различия в Вооружённых силах Российской ФедерацииПесахНью-ЙоркКоклюшБорисов, Юрий АлександровичСписок стран по индексу человеческого развития🡆 More