T-Reload: опыт интеграции геймпадов

В последнее время работал над интеграцией геймпадов в T-Reload.
Unity давно выпустила InputSystem, которая значительно отличается от старой Input.

В нашем случае (синглплеерная игра) не возникло проблем при миграции системы ввода с Input -> InputSystem.

Unity выпустила хороший тестовый проект Warriors, который позволяет изучить принцип работы новой системы ввода в действии.

В проекте использовались следующие устройства ввода:
1) Keyboard
2) Mouse (For simulating touchscreen input in the Unity Editor)
3) PlayStation 4 Dualshock Controller
4) Xbox One Controller
5) Nintendo Switch Pro Controller
6) Android Samsung Galaxy S9 (Touchscreen for Virtual Joystick and Virtual Button)

Клавиатура и мышь "воспринимаются" как одно устройсвто, работают. С ними проблем у нас не возникло.

Unity тестировали проект на реальном Xbox One геймпаде. Я не особо разбираюсь в разновидностях, не уверен, но кажется они тестировали игру на этом:

T-Reload: опыт интеграции геймпадов Gamedev, Геймпад, Игры, Компьютерные игры, Личный опыт, Разработчики игр, Xbox, Сравнение, Nintendo, Unity3D, Длиннопост

Подключил свой геймпад 4-й ревизии и он почему-то успешно распознался как Xbox One:

T-Reload: опыт интеграции геймпадов Gamedev, Геймпад, Игры, Компьютерные игры, Личный опыт, Разработчики игр, Xbox, Сравнение, Nintendo, Unity3D, Длиннопост

Может кто знает как распознать разные версии геймпадов? Тестовый проект этого не умеет делать для геймпада xBox.

А вот разные геймпады Sony определяются по-разному. То есть можно точно знать что подключено: Dualshock или DualSense.
В WarriorsProject Unity использовали PlayStation 4 Dualshock.
Я же приобрел PlayStation 5 DualSense и WarriorsProject его не обнаружил в всписке поддерживаемых геймпадов. Пришлось добавлять.
То есть, получается, что xBox геймпады распознаются все как один, а геймпады Sony распознаются как разные.

Танцы с бубном на этом еще не закончились. Геймпад DualSense подключается по блютузу к разным компам через пень-колоду. До сих по не пойму точно как он коннектится и от чего это зависит. А вот геймпад от xBox подключается по блютузу без вопросов. Да и лампочка помогает видеть состояние xBox-геймпада (включен или нет, что очень удобно). В то же время на DualSense нет индикатора-лампы и непонятно включен он или нет.

С xBox проблем не возникло пока никаких. Ну кроме как impulseTriggers почему-то до сих пор нельзя запустить из коробки (у сони та же проблема).
Геймпад от сони подключается к компу без танцев с бубнами (быстро) если подключать через кабель. Но вот здесь нажатия кнопок почему-то не определяются именно для DualSense:

T-Reload: опыт интеграции геймпадов Gamedev, Геймпад, Игры, Компьютерные игры, Личный опыт, Разработчики игр, Xbox, Сравнение, Nintendo, Unity3D, Длиннопост

В сети встречал подобную проблему у NintendoSwitchPro.

Особо удивила вибрация DualSense. Она совсем не работала. Работали все стики, все кнопки, но не вибрация. Я уже начал думать, что геймпад с браком. Случайно подключил его с помощью кабеля и обнаружил, что вибрация все же есть.
То есть у DualSense вибрация работает только при проводном подключении :/
Кто бы мог подумать? Нужно читать документацию.

Работа над интерфейсом геймпада в игре
Изучив разные версии отображения кнопок на геймпадах, принял неверное решение: решил провести линию к каждой используемой кнопке и подписать её (так кто-то сделал). В результате много возился с этим и понял, что не использовал опыт предыдущего дизайнера, а повторил его ошибки XD Распиновка геймпада путала игрока, выглядела крайне запутанно (примерно так):

T-Reload: опыт интеграции геймпадов Gamedev, Геймпад, Игры, Компьютерные игры, Личный опыт, Разработчики игр, Xbox, Сравнение, Nintendo, Unity3D, Длиннопост

Это дело нас не устроило и мы пришли к такому варианту отображения подписей используемых кнопок:

T-Reload: опыт интеграции геймпадов Gamedev, Геймпад, Игры, Компьютерные игры, Личный опыт, Разработчики игр, Xbox, Сравнение, Nintendo, Unity3D, Длиннопост

На этом пока все. Если кто знает, то подскажите где есть список со всевозможными bindingPaths???
Очень нужно знать баиндинги вот этих кнопок:

T-Reload: опыт интеграции геймпадов Gamedev, Геймпад, Игры, Компьютерные игры, Личный опыт, Разработчики игр, Xbox, Сравнение, Nintendo, Unity3D, Длиннопост

Инди игры

126 постов397 подписчиков

Добавить пост

Правила сообщества

1. Реклама запрещена.


2. Сообщество авторское, публикуемый материал должен принадлежать Вам, потому каждое обвинение в плагиате должно быть подтверждено ссылкой. При первом нарушении - предупреждение, повторно - бан.


Идеально, если Вы являетесь членом инди-команды.
Пост без тэга "Мое" будет вынесен в общую ленту.


3. Постить только картинки или видео игры запрещено. Фото и видеоматериалы должны быть подкреплены текстом.


4. Особые публикации:

- интервью с разработчиками

- обучающие видеоматериалы

В этом случае правила п.3 могут быть смягчены или проигнорированы.


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


6. Пост должен иметь внятную структуру.


7. Администрация имеет право решать, насколько пост соответствует сообществу.