Гостинг клавиатуры и N-key rollover: объяснение
Гостинг клавиатуры возникает, когда нажатая клавиша не регистрируется, потому что вы уже удерживаете другие клавиши. В игре это может означать, что вы не можете одновременно бежать по диагонали и прыгать. В этом руководстве объясняется, почему возникает гостинг клавиатуры, что означают N-key rollover и 6-key rollover, как самостоятельно провести тест клавиатуры на гостинг и что на самом деле обещает надпись «anti-ghosting» на коробке.
Что такое гостинг клавиатуры
Microsoft, изучавшая эту проблему при разработке клавиатуры SideWinder X4, описывает гостинг как «проблему, при которой некоторые клавиши клавиатуры не работают, когда несколько клавиш нажаты одновременно». Её пример знаком геймерам: невозможно одновременно бежать по диагонали и стрелять, например нажимая вместе A, W и G.
Эти термины используют довольно вольно. Строго говоря, есть две разные неисправности:
| Неисправность | Что происходит |
|---|---|
| Гостинг | Передаёт лишнюю, не нажатую клавишу |
| Джемминг (блокировка) | Игнорирует нажатую вами клавишу |
Википедия объясняет, что современные клавиатуры распознают условия, при которых появилась бы фантомная клавиша, и вместо того чтобы передать её, игнорируют третью клавишу. Это джемминг, но большинство людей и большинство коробок от клавиатур называют это гостингом.
Почему у клавиатур бывает гостинг
Большинство клавиатур не подключают каждую клавишу отдельно. Microsoft описывает распространённую конструкцию: под клавишами лежат плёнки с напечатанной сеткой дорожек из строк и столбцов, и нажатие клавиши соединяет одну строку с одним столбцом. По этому соединению клавиатура определяет, какую клавишу вы нажали.
При двух удерживаемых клавишах путаницы нет. Если три клавиши находятся в трёх углах прямоугольника на сетке, ток может пройти и через четвёртый угол, и клавиатура не может понять, нажата ли эта четвёртая клавиша. По словам Microsoft, типичная клавиатура в этом случае «перестаёт передавать новые нажатия, чтобы не передать неправильные клавиши».
Решение состоит в диоде на каждой клавише, чтобы ток мог идти только в одном направлении. Microsoft отмечает, что для этого нужна плата с более чем сотней диодов, что «относительно дорого». Более дешёвые клавиатуры перестраивают разводку так, чтобы работали распространённые игровые комбинации, но, как формулирует Microsoft, это лишь переносит проблему «на другие наборы клавиш, где пользователь с меньшей вероятностью её заметит».
Три причины
Microsoft называет три места, где одновременно нажатые клавиши могут теряться:
- Электроника клавиатуры не может определить, какие клавиши нажаты.
- Соединение между клавиатурой и компьютером ограничивает количество клавиш, которые можно передать.
- Программы на компьютере не справляются с множеством одновременных нажатий, даже если клавиатура передаёт их правильно.
N-key rollover и 6-key rollover
Rollover показывает, сколько клавиш клавиатура может зарегистрировать одновременно.
- 2-key rollover: любые две клавиши работают вместе, но третья может не сработать.
- 6-key rollover (6KRO): до шести обычных клавиш плюс клавиши-модификаторы.
- N-key rollover (NKRO): Википедия определяет это как клавиатуру, которая «может правильно распознавать ввод с каждой клавиши клавиатуры одновременно, независимо от того, сколько других клавиш тоже нажато.»
Откуда берётся ограничение в шесть клавиш
USB-клавиатуры могут общаться с компьютером двумя способами. Википедия объясняет, что простой загрузочный протокол (boot protocol), который использует, например, BIOS компьютера, ограничен восемью клавишами-модификаторами плюс максимум шестью кодами клавиш. Операционные системы используют более полный протокол отчётов (report protocol), который «не накладывает ограничений и поддерживает полный n-key rollover». Загвоздка в том, что спецификация не обязывает клавиатуру поддерживать больше, поэтому некоторые бюджетные клавиатуры всё равно сохраняют ограничение в шесть клавиш.
Некоторые производители по-прежнему указывают ограничение в шесть клавиш для своих USB-клавиатур, поэтому проверьте характеристики своей модели. Microsoft также отмечает, что клавиатуры, которые выходят за пределы шести клавиш с помощью собственного способа передачи, могут работать не полностью до загрузки операционной системы, например в BIOS.
«Anti-ghosting» и NKRO: одно и то же?
Не обязательно. Microsoft предупреждает, что клавиатура, которую рекламируют как anti-ghosting, «может означать лишь, что определённое подмножество клавиш на клавиатуре хорошо работает вместе», а обещания «до» большого числа клавиш могут скрывать множество неработающих комбинаций из трёх клавиш. Википедия добавляет, что некоторые игровые клавиатуры оснащают собственными диодами только самые используемые в играх клавиши, например WASD и стрелки.
Тип переключателя сам по себе тоже этого не решает. Cherry утверждает, что отдельные переключатели механических клавиатур предотвращают гостинг, но rollover зависит от того, как разведена клавиатура и как её контроллер передаёт клавиши. Проверьте характеристику rollover конкретной модели, а не полагайтесь на догадки. Остальные отличия описаны в нашем руководстве механическая или мембранная клавиатура.
Как провести тест клавиатуры на гостинг
Совет самой Microsoft, как найти проблемные комбинации:
- Зажмите A, S, D и W, обычные клавиши движения в играх.
- Удерживая их, по очереди нажимайте все остальные клавиши.
- Если какая-то клавиша не регистрируется, отпустите часть из четырёх клавиш и попробуйте снова. Часто так находится комбинация из трёх клавиш, которая не работает.
Microsoft также указывает, что найденная работающая комбинация из шести клавиш «не обязательно означает, что работает любая комбинация из 6». Проверяйте комбинации, которые вы действительно используете, например движение плюс прыжок, приседание и перезарядку.
Что может и чего не может показать тест в браузере
Вы можете наблюдать, как регистрируются нажатия, на любой странице, которая их отображает, включая онлайн-демонстрацию гостинга клавиатуры от Microsoft. Браузер видит только то, что передала клавиатура и пропустила операционная система, поэтому некоторые клавиши никогда не доходят до веб-страницы:
- В Windows браузеры обычно не могут обнаружить клавишу Print Screen.
- Клавиша Windows переводит фокус в меню «Пуск».
- MDN отмечает, что в macOS Caps Lock отправляет только событие keydown, а macOS не поддерживает Num Lock.
- Программы чтения с экрана могут перехватывать нажатия, поэтому Microsoft советует отключать их на время теста.
- Такие клавиши, как Fn, часто обрабатываются внутри самой клавиатуры и могут вообще не отображаться.
Чтобы проверить скорость, а не комбинации, наш KPS-тест считает, сколько клавиш вы нажимаете в секунду.
Что делать с гостингом
- Измените назначение клавиш. Перенесите действие, которое не срабатывает, на клавишу вне проблемной группы.
- Проверьте наличие режима NKRO или игрового режима. Некоторые игровые клавиатуры позволяют переключаться между 6KRO и NKRO в своей программе или сочетанием клавиш. Загляните в инструкцию к своей модели.
- Попробуйте другой USB-порт или кабель, если клавиатура, которая должна поддерживать NKRO, ведёт себя как 6KRO, и обновите прошивку или программу клавиатуры.
- Выбирайте по характеристикам. Если вы играете в игры, где нужно много клавиш одновременно, ищите полный NKRO, указанный для модели, а не просто «anti-ghosting».
Часто задаваемые вопросы
Что такое гостинг клавиатуры?
Это когда нажатие не регистрируется или появляется клавиша, которую вы не нажимали, потому что одновременно удерживается несколько клавиш. Причина в том, как большинство клавиатур соединяют клавиши в общую сетку.
Чем гостинг отличается от джемминга?
Строго говоря, гостинг означает лишнюю фантомную клавишу, а джемминг означает, что настоящая клавиша игнорируется. Современные клавиатуры обычно блокируют нажатия, а не создают фантомные клавиши, но и то и другое обычно называют гостингом.
Что означает N-key rollover?
NKRO означает, что клавиатура может зарегистрировать все клавиши одновременно, сколько бы их ни было нажато. 6-key rollover означает до шести обычных клавиш плюс модификаторы.
Anti-ghosting означает NKRO?
Не всегда. Microsoft предупреждает, что anti-ghosting может касаться только набора клавиш, которые хорошо работают вместе. Ищите указанное значение rollover, например NKRO, для конкретной модели.
Как проверить клавиатуру на гостинг?
Зажмите W, A, S и D, затем по очереди нажимайте все остальные клавиши и смотрите на экране отображения клавиш, какие из них не регистрируются. Затем проверьте именно те комбинации, которые вы используете в своих играх.
У всех механических клавиатур есть NKRO?
Нет. Rollover зависит от разводки и контроллера клавиатуры, а не только от переключателей. Проверьте характеристики модели.