Поддержка джойстиков, уровень 1
Считаем, что игра — одиночный платформер, так что требуется поддерживать лишь геймпады от Xbox и Playstation (благо они стандартные и недорогие, китайские аналоги вообще дёшевы, как грязь). На пост меня натолкнула игра Potata: Chapter One, которую я честно купил, дабы поддержать прекрасную разработчицу. К чести «Потаты», нарушила она всего ничего из этих правил.
Первое правило: все опознанные устройства работают постоянно. То есть: все клавиатуры, мыши и джойстики, которые игра опознала, всегда принимают управление. А может, джойстик — это необычное средство реабилитации, а играем с клавиатуры? Можно! Играть джойстиком, а ходить по меню мышью? А почему бы и нет!
Часто на клавиатуре и джойстике вёрстка экрана разная — хотя бы тем, что в подсказках будут то клавиши клавиатуры, то кнопки джойстика. Перевёрстывать надо в двух случаях: 1) Когда совершено значимое действие: нажатие кнопки или достаточный сдвиг мыши/микроджойстика. 2) Когда подключён-отключён джойстик.
Dust: An Elysian Tail под джойстик, клавиатуру и мышь. Найдите два отличия.
Разумеется, вы можете не поддерживать мышь от слова «совсем» — и это нормально. Если же она есть — два правила: 1) Продумайте, по какой логике скрывать курсор мыши; 2) Скрытый курсор не должен действовать — никак, даже подсвечивать пункт меню, над которым висит. Пример 1: экран свёрстан под джойстик, вы щёлкаете мышью — появляется курсор мыши, экран может переверстаться под клавиатуру. Пример 2: экран свёрстан под джойстик, вы нажимаете Enter — вы входите в выделенный пункт меню, экран перевёрстывается под клавиатуру.
Проводной пульт Xbox оснащён разъёмом безопасности, в беспроводном есть батарейки — так что вот очередное правило: если хоть один джойстик «отваливается» в динамичной сцене, ставьте одиночную игру на паузу. Вероятно, в пылу игры этот самый разъём разомкнулся и уберёг компьютер/приставку от падения на пол. Или просто батарейки сели.
(Я тут для испытания выдернул разъём безопасности — джойстик вообще перестал работать до перезагрузки Windows. Очевидно, глюк, потому что второй раз не повторилось — но, думаю, сбой в игре дешевле разбитого винчестера.)
Убедитесь, что изображения кнопок джойстика не похожи на другие элементы управления. И наоборот: элементы управления не похожи на кнопки джойстика. Например, в Type:Rider ⮾ в углу экрана (кнопка закрытия) напоминает кнопку джойстика. А в «Потате» кнопка Xbox «Меню» — это иконка-гамбургер, приглашающая нажать чем-то — вот только нечем. Это уже смотрите по дизайну.
Низкоуровневую поддержку XInput и DirectInput сейчас пишут редко, ведь есть куча библиотек, объединяющих то и другое в единую абстракцию. Но если кто решит — в большинстве случаев хватает XInput. Доводы в пользу XInput — простота, достаточный (на 2020 год для платформеров) охват, поддержка нажатия обоих спусковых крючков сразу. Довод в пользу DirectInput один — 100% охват, важный, например, для симуляторов. Undertale поддерживает DirectInput, и этого достаточно — с тремя-то кнопками управления. А вот в Hyper Light Drifter есть и XInput, ведь наводка и стрельба — два крючка. Аналогично с гонками, где крючки — тормоз и газ (но гонки не платформеры и им 1-го уровня мало).
Скорее всего, в простеньком платформере вы не горите желанием писать настройку управления. Тогда установите ту раскладку кнопок, которая привычна для данного контроллера. На Xbox: A — прыжок, X — удар, B или RT — выстрел. Если прыжков нет, ставим на A и X самые важные вещи. Старайтесь не ставить на B, Y, Back, Start, LB и RB действия, требующие хорошей реакции (что интересно, в Logitech F310 наоборот: боковые кнопки LB/RB доступны лучше крючков LT/RT). В меню: A — действие/да, B — отказ/нет. Не забудьте, что игрок может нажимать A и X перекатом пальца.
(Мы тут портируем скучную деловую программу на Мак — приёмы, выработанные годами в Windows, вроде Ctrl+Ins/Shift+Ins вслепую, идут лесом. За Уралом леворульные машины сосуществуют с праворульными, и автоинструкторы говорят: дёрнулись без нужды дворники — афтар хочет повернуть. Слышал про «противоугонную систему»: у «ауди» поменяли местами педали — угонщики просто не могли уехать. Брюс Тоньяццини, автор интерфейса классического Мака и пилот-любитель, упоминает ситуацию: там, где на одном самолёте ручка газа, на другом катапультирование — переучивавшиеся в любой нехорошей ситуации катапультировались.)
Джойстик со временем раскалибровывается и раздалбывается, так что установите мёртвую зону не менее 10% хода. То есть первые 10% хода джойстик ничего не делает, с 10 до 90% идёт действующая зона, и последние 10% игра считает джойстик сдвинутым до конца.
В контроллерах сторонних производителей, в том числе хвалёного Logitech, есть аппаратная мёртвая зона. С одной стороны, в играх, где важны тонкие мелкие движения джойстиком, сильно мешает. С другой — даже если нет программной мёртвой зоны, вы не увидите глюков разболтанного джойстика. Будьте осторожны!
(В большинстве платформеров нет градации скорости персонажа, так что там простой порог, например, на 50%. Но, скажем, в GRIS сделали совершенно бесполезное медленное хождение, как маленькую пасхалочку.)
В большинстве случаев крестовина и левый микроджойстик должны дублировать друг друга.
Что находится за уровнем 1?
Вещь | Жанры |
Настройка управления | Любые |
Настройка мёртвых зон | Любые, где маленькие движения джойстика важны; в первую очередь связанные с 3D-обзором (стрелялки, CRPG…) и симуляторы |
Настройка линейности | Симуляторы (и, возможно, другие, где джойстик — не только пульт) |
Поддержка джойстиков иных конструкций, чем «6 осей, 10 кнопок, 1 крестовина» | В первую очередь симуляторы — но, например, поддерживает Fez |
Инверсия осей X/Y | Связанные с 3D-обзором (стрелялки, CRPG…) |
Хелпы (исправление ошибок игрока, недостатков контроллера) | Чем-то напоминают ABS в современных авто, и чем сложнее управление, тем больше хелпов. Наиболее известные — оттолкнуться от воздуха, автонаводка. |
Собственная неповторимая схема управления | Игры с необычной или нестандартизованной механикой |
Литература
- Zach Burke. The Five Golden Rules of Input. Русский реферат.
- Андрей Доценко. Designing Game Controls.
- Mozilla Developer Network. Desktop Gamepad Controls.
- Bruce Tognazzini. Anatomy of a Panic: A Case Study. Русский перевод.
- 22 декабря 2019, 13:31
- 06
27 комментариев