CGAleksey

CGAleksey

Делаю 3D - головоломку от первого лица, публикую результаты работы. Сайт: torshock.com Тележка: @CGAleksey -
Пикабушник
Дата рождения: 01 января 1990
поставил 1255 плюсов и 96 минусов
отредактировал 0 постов
проголосовал за 0 редактирований
5314 рейтинг 27 подписчиков 23 подписки 71 пост 23 в горячем

Ответ на пост «В Бурятии танк Т-34 привезли к дому ветерана-танкиста Ивана Голощапова»

Когда и хочешь плюсик поставить и рука не поднимается сбить дату.
Кто-то уже поставил, поехали :)

Ответ на пост «В Бурятии танк Т-34 привезли к дому ветерана-танкиста Ивана Голощапова» Ветераны, Т-34, 9 мая - День Победы, Танки, Россия, СССР, Великая Отечественная война, Видео, YouTube, Ответ на пост

Ответ на пост «Совет»

Из личного опыта (я программист и задаю вопросы).
Мне отвечают и я отвечаю, если нахожу вопрос на 10^(-100500) сложнее чем "абсолютно простой".


Людям обычно не нравится отвечать на вопрос/думать, если:

0) вопрс очень сложный (хотя... это весьма спорно)
1) вопрос сформулирован непонятно
2) автор не прикладывал собственных усилий для решения проблемы
3) автор пишет что-то типа (относится к 2):

ничего не знаю, пАмоГите, сделайте за меня, плиз, очень нужно.


Отвечают, обычно, везде:
- qna.habr.com (иногда не отвечают, скорее всего потому, что мои вопросы по теме "сети" очень простые и никому не интересно объяснять что-то банальное)
- stackoverflow.ru/com
- habr
- gamedev.ru
- radiokot (а здесь вообще удивительно, один человек за меня схему у себя дома спаял и рассказывал мне лично что и как работает).
- forum.unity3d.com (даже тут иногда отвечают, хотя по моему опыту это не самый активный форум)


Итого: на форумах отвечают, но не стоит надеяться, что форум решит вашу проблему. Самое эффективное - это пытаться самому решить свою проблему. Если на форуме подсказали, то... То вам повезло :)

Показать полностью

Проводим небольшой тест

Не хотелось бы чтобы у игроков были технические проблемы при прохождении нашей головоломки. По этой причине мы решили провести небольшой тест работоспособности базового функционала нашего проекта под техназванием T-Drones. Пока доступны Windows & OSX версии сборок. Позже, возможно, появится Linux.


T-Drones : test_1


Тест направлен на проверку работоспособности настойки управления клавиатуры и геймпадов, заодно проверим:

- работоспособность игры

- графику

- игровое меню в целом


Если после запуска T-Drones появился персонаж, есть возможность им управлять и экран выглядит примерно как на рис. ниже, то грфическая часть успешно работает:

Проводим небольшой тест Gamedev, Инди игра, Разработка, Тест, Тестирование, Игры, Unity, Компьютерные игры, Видеоигра, Инди

Доступ к настройкам можно получить по нажатию на клавишу ESC.


Друзья! Тест частично автоматизирован, в случае каких-либо проблем вышлет разработчикам соответствуюшие логи. Если Вы заметите неадекватное поведение управления (клавиатура / геймпад), то, пожалуйста, уведомите нас об этом.


Заранее благодарен за Ваш интерес :)

Показать полностью 1

Интеграция геймпада, 2 месяца спустя

Наконец закончил интеграцию системы обработки и вывода настроек геймпада в T-Reload на стороне меню. Не прошло и 2-х месяцев...

Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост

На картинке представлены геймпады для T-Reload, которые собраны в блендере.Основным требованием к моделям было: минимальная полигональность. У моделей выше около 6к полигонов.

Стояла задача разработать систему, которая позволила бы с минимальными усилиями подключить к игре новый геймпад. То есть новый геймпад должен подключаться примерно так:

- создается модель геймпада с якорными точками всех кнопок и оформляется в префаб

- в редакторе расставялются линии с примерным положением подписей к каждой кнопке

- префабу геймпада задается ID и сопоставляется набор иконок, которые символизируют кнопки геймпада

На начальном этапе система геймпадов должна уметь:

- вращать геймпад в зависимости от того, что игрок настраивает

- поддержка геймпадов xBox, PS4, PS5, NintendoSwitchPro

- поддержка нераспознанных геймпадов

- разработать гибкую систему, которая позволяет подключать новые геймпады путем их добавления в редакторе Unity

Так как модели будут интегрированы в игру, еще нужно принять во внимание стилизационные особенности T-Reload. Но для дизайнеров (разработчиков) это обычное дело, как и вообще все, что ниже будет написано.

Процесс переделки меню под геймпад

Работу начал с анализа того, что было создано другими разработчиками:

Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост

Здесь, конечно, очень малая часть того что было изучено, но даже по этим картинкам можно сделать некоторые выводы.

Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост

Следующим шагом было разработать свою версию меню с геймпадом.


Первым делом была разработана система линий, которые подключаются к разным элементам геймпада и которые можно настраивать прямо в редакторе:

Первое время пытался протянуть линию к каждой кнопке, но быстро понял, что запутанный паук из кучи линий - это не то, что радует глаз. "Паук" выглядел примерно так:

Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост

Потому решил придержаться того подхода, который использовали другие разработчики (группировка кнопок):

Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост

Согласитесь, муравей с усиками выглядит лаконичнее :)


Процесс проб и ошибок был достаточно долгим, пришлось исписать много страниц А4 по нескольку:

Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост

Разработка моделей


Каждый геймпад должен иметь свою модель. Цена вроде как визуально приемлимых моделей еще вчера составляла около $20. С курсом доллара сегодня это стало дороже в 2 раза.

Но все эти модели достаточно высокополигональные: около 200к полигонов. Самое минимальное, что удалось найти - это 100к полигонов.


По этой причине геймпады пришлось моделить и текстурироовать самостоятельно. Результаты работы приведены на первой картинке статьи.


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

Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост

Далее скачал SubstancePainter, создал карты материалов, маски:

Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост
Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост
Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост

А вот и протекстурированные модели:

Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост
Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост

Модели выше еще были откорректированы (в основном материалы, шейдеры) так как нужно их стилизовать под T-Reload.

Вот модель геймпада xBox в игре:

Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост
Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост
Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост
Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост

Геймад от Nintendo заставил немного понервничать. Дело в том, что у меня его нет и по фотографиям из сети я не мог понять, что у него за линии на корпусе. Позже пришел к тому, что корпус геймпада немного прозрачный, а линии - это конструктивные внутренние элементы, которые просвечиваются через пластик.


Так выгдядит редактор наших геймпадов:

Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост

А здесь геймпад PS5 и xBox непосредственно в T-Reload:

Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост
Интеграция геймпада, 2 месяца спустя Gamedev, Инди, 3D моделирование, Интерфейс, Компьютерные игры, Игры, Графика, Компьютерная графика, Меню, Геймпад, Unity, Blender, Инди игра, Видеоигра, Разработка, Видео, Длиннопост

Завершение


На данный момент мы провели несколько тестов того как люди взаимодействуют с системой настройки управления. Все недочеты исправлены. Переходим к доработке системы вывода иконок помощи в процессе игры :)


VK // Twitter // Instagram // DTF // Habr

Показать полностью 19 1

Замена провода зарядки макбука в домашних условиях

Провод моей зарядки от макбука окончательно развался: изоляция полопалась, экран (сперва подумал что это только экран) разлохматился. В общем провод постигла обычная участь всех проводов фирмы Apple.

Новая зарядка стоит около 6200 руб. Починить старую обошлось в 4-5 часов + старый провод зарядки андроида.



Подготовка


Первым делом ознакомился с тем как можно разобрать БП и концевик (мегасейф) зарядки.

Как разобрать БП без повреждений показано здесь:

А вот что из себя представляет Megasafe, увы, нигде не нашел. Наверно до меня его никто не разбирал. Конструкцию Megasafe можно будет увидеть ниже.


Менять будем провод. Новый провод хотелось бы сделать металлическим (поместить в металлоброню). Отдельной брони нигде не нашел, пришлось использовать броню от нерабочего провода зарядки андроида. Названия фирмы изготовителя не знаю, выглядит провод так:

Замена провода зарядки макбука в домашних условиях Ремонтники, Ремонт техники, Macbook, Электрика, Зарядка, Электроника, Провод, Замена, Ремонт, Видео, Длиннопост

Разбор блока БП


Без проблем разобрал БП согласно видеоинструкции. Отпаял 2 конденсатора от медных экранов и снял их чтобы добраться до поврежденного провода:

Замена провода зарядки макбука в домашних условиях Ремонтники, Ремонт техники, Macbook, Электрика, Зарядка, Электроника, Провод, Замена, Ремонт, Видео, Длиннопост

Исследования поврежденного провода показали, что он устроен так:

1) в центре идет плюсовой провод

2) снаружи плюсовой провод покрыт проводом-экраном на котором висят: минус и земля

Пометка: конструкция провода довольно удачная потому, что минус является экраном. Такая конструкция позволяет минимизировать кол-во проводов до одного: плюс покрытый экраном.


Прозвонил провода и пометил схему прозвона на экране:

Замена провода зарядки макбука в домашних условиях Ремонтники, Ремонт техники, Macbook, Электрика, Зарядка, Электроника, Провод, Замена, Ремонт, Видео, Длиннопост

1) Корпус мегасейфа - земля.

2) Две САМЫХ крайних ножки разьема - минус (а минус соединен с землей)

3) Две ближних ножки - плюс

4) Центральная ножка - не используется


Далее снял поврежденный провод с зарядки и снял броню с кабеля зарядки андроида:

Замена провода зарядки макбука в домашних условиях Ремонтники, Ремонт техники, Macbook, Электрика, Зарядка, Электроника, Провод, Замена, Ремонт, Видео, Длиннопост

Нашел новй провод подходящего сечения, свил его (для уменьшения помех.фона), поместил в броню.



Megasafe


Megasafe - это одно из немногого, что на мой взгляд является самым лушим решением для зарядок. Технология подключения провода на магнитиках позволяет отключать зарядку не повреждая разьем на ноуте (в случае если кто-то случайно дернул за провод).


Разобрал мегасейф так: поставил разем на тисы и выбил внутреннюю часть через отверстие в которое входит провод. Внутри мегасейфа расположена платка со схемой управления индикаторами (светодиодами). Светодиодов 4 штуки, по 2 с каждой стороны (зеленый и красный в одной лампе):

Замена провода зарядки макбука в домашних условиях Ремонтники, Ремонт техники, Macbook, Электрика, Зарядка, Электроника, Провод, Замена, Ремонт, Видео, Длиннопост

Просто так заменить провод и собрать корпус мегасейфа не получится по причине:

1) провод в области контакта с корпусом мегасейфа может обломиться

2) крепление провода и платы - ненадежное

3) очень мало простанства для того чтобы сделать конструкцию надежнее


Для начала припаиваем плату мегасейфа к новому проводу:

Замена провода зарядки макбука в домашних условиях Ремонтники, Ремонт техники, Macbook, Электрика, Зарядка, Электроника, Провод, Замена, Ремонт, Видео, Длиннопост

Берем алюминиевую крышку от зарядки андроида и шлифуем наждачкой. Потом сверлим в ней отверстие под индикатор:

Замена провода зарядки макбука в домашних условиях Ремонтники, Ремонт техники, Macbook, Электрика, Зарядка, Электроника, Провод, Замена, Ремонт, Видео, Длиннопост

Собираем БП + провод с припаянным мегасейфом:

Замена провода зарядки макбука в домашних условиях Ремонтники, Ремонт техники, Macbook, Электрика, Зарядка, Электроника, Провод, Замена, Ремонт, Видео, Длиннопост

Вставляем мегасейф в новый алюминиевый корпус, заливаем прозрачной эпоксидкой:

Замена провода зарядки макбука в домашних условиях Ремонтники, Ремонт техники, Macbook, Электрика, Зарядка, Электроника, Провод, Замена, Ремонт, Видео, Длиннопост

Недочеты


1) Светодиод зарядки оказался достаточно ярким. придется залить отверстие у стветодиода не прозрачной смолой, а матовой (белой).

2) Благодаря кривым рукам и огромному старанию, случайно поломал вот этот фиксатор провода. Пришлось замнять его на похожий, но черный.

Замена провода зарядки макбука в домашних условиях Ремонтники, Ремонт техники, Macbook, Электрика, Зарядка, Электроника, Провод, Замена, Ремонт, Видео, Длиннопост

Вот такие пироги :) В целом зарядка работает нормально, проблем не замечено.

Показать полностью 10

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, Длиннопост
Показать полностью 6

Немного о подводных камнях интеграции геймпадов

Наконец дело дошло до интеграции геймпадов!

Немного о подводных камнях интеграции геймпадов Gamedev, Инди игра, Разработка, Unity, Геймпад, Инди, Разработчики, Компьютерные игры, Видеоигра, Тестирование, Интерфейс, Игры, Длиннопост

Мое предполагаемое ТЗ самому себе по части геймпада выглядело примерно так:
- поддерживать всевозмодные варианты геймпадов, а именно: xBox / Playstation / Nintendo / какиой-нибудь ноунейм
геймпады должны удовлетворять следующим требованиям (иначе поддерживать не сможем):
a) наличие 2-х стиков;
b) наличие D-Pad (4 кнопки на геймпаде слева)
c) наличие ABXY - кнопок на геймпаде справа (South/East/West/North)
d) наличие кнопки Start
e) наличие left/right bumper & trigger кнопок
- организовать интерфейс таким образом, чтобы была возможность производить настройку игры через геймпад (как и должно быть, + на игровых консолях не будет возможности использовать клавиатуру и мышку)
- сократить используемые кнопки в игре (до минимума)
- организовать возможность подключения кода геймпада к уже написанному программному интрефейсу (old Input)
- дать пользователю возможность гибко настраивать геймпад под свои требования

Предполагалось, что геймпад введем после выхода PC-версии игры. Но последний опрос показал, что людям важна не только возможность настройки управления, но и возможность выбора игрового контроллера. По этой причине и было принято решение подключить геймпад как можно раньше. Изучив вопрос, пришел к заключению, что нужно брать xBox геймпад 4-й ревизии.

Причины выбора:
- многие знакомые разработчики мне посоветовали именно его
- он часто используется в играх

Приобрел данное устройство за 5 300 руб. Не знаю, оригинал или нет... Но вроде все работает: беспроводное / проводное подключение на PC и OSX, кнопки, вибрация.

Интеграция с кодом
Как ни старался, но возник ряд проблем связанных с интеграцией.
- давно вышла новая InputSystem (Unity). Система гибкая, удобная. Потому было решено использовать именно InputSystem. Это привело к небольшой переписи логики существующего кода и пересмотру логики
- игрвое меню имело ряд проблем, которые возникли при отсутствии мышки. Дело в том, что навигация в меню с помощью геймпада основана на выделении текущего объекта с которым взаимодействует пользователь. У нас такого выделения не было, пришлось его ввести, пересмотрев дизайн всего меню
- вибрация. Удивительно насколько важна вибрация. Осознал это только тогда, когда начал с ней работать. Вибрация - это своего рода "тактильная озвучка", которая доступна только тем, кто играет с геймпадом. Качественная вибрация повышает передачу атмосферы, чувства присутствия. Некачественная (не соответствует происходящему в игре, расходится с анимациями) наоборот, разрушает впечатление и погруженность в игровой процесс.
Пришлось потратить время на создание целой системы вибрации на:
a) примитивные действия игрока такие как "взять"/"бросить" (незаметная вибрация)
b) вибрация движения (удары, полет, прыжки, неудобное перемещение в присевшем состоянии)
c) внешние реакции (вибрация от перемещения массивных обьектов, например: движение платформ, которые имеют внутренний мотор и вибрация от него передается части помещения)
в) добавлена возможность полного отключения вибрации

Что важно: важно не переборщить с вибрацией.

Пока не добрались, но уже в пути:
Говорят есть возможность использовать 4 вибропривода на геймпаде от xBox. У меня получилось использовать только два:
```
gamepad.SetMotorSpeeds(low, hight);
```
Никто не знает как получить доступ к еще двум?

Интеграция с анимацией
Оказалось, что триггеры геймпада работают "как курки", а не как кнопки. Если использовать их как кнопки, то игра "чувствуется иначе" и это никуда не годится.
Схема геймпада для того чтобы не было путаницы с тем что есть триггеры:

Немного о подводных камнях интеграции геймпадов Gamedev, Инди игра, Разработка, Unity, Геймпад, Инди, Разработчики, Компьютерные игры, Видеоигра, Тестирование, Интерфейс, Игры, Длиннопост

То есть сила нажатия передается в игру. Этим можно воспользоваться и задавать уровень приседания игрока в зависимости от уровня зажатия триггера.

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


Интерфейс меню
Как говорится: из песни слова не выкинешь. Так и в случае с геймпадом: просто так в меню геймпад не вставишь.
Пришлось видоизменить вкладку меню, которая отвечает за геймпад.

Ранее наше меню по форме немного напоминало меню из Portal 2: находилось в левой нижней части экрана и по форме было прямоугольным.
Нам было весьма проблемно "вставить геймпад" потому, что он получался "впихнутым" в окно, что даже смотрится неочень. А ведь нуно еще и дать возможность гибкой и интуитивно-понятной настройки клавиш.
По этой причине мы планируем разместить геймпад в центральной части экрана (места там достаточно и вниманием он обделен не будет), а меню разделим на два подменю (кнопки), которые раположим слевой и справой стороны экрана как условно показано тут:

Немного о подводных камнях интеграции геймпадов Gamedev, Инди игра, Разработка, Unity, Геймпад, Инди, Разработчики, Компьютерные игры, Видеоигра, Тестирование, Интерфейс, Игры, Длиннопост

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

Заключение, тесты
Тесты разных геймпадов проводил с помощью программы reWASD. Утилита позвляет "подменять" геймпад xBox на Playstation, переназначать кнопки и многое другое. То есть игра думает, что у вас в руках геймпад от Playstation.

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

Хотелось бы узнать непосредственно у разработчиков, какой второй геймад вы бы посоветовали для тестов и нужно ли? Может есть утилита, которая способна создавать виртуальные геймпады?

Показать полностью 2

Взрыв потенциальной энергии: звонок он для учителя

Прочел ответ @Khabkron #comment_219865874 вспомнил как у нас было.
Сидим на уроке, классная конкретно отчитывает за то, что мы 9-й класс, а все еще носимся как бешенные. А еще вылетаем из класса как только звонок прозвучит. Говорит: звонок он не для вас, он для учителя. Вот когда дам разрешение, тогда и можете идти.

Натерпелись ее наставлений... Звучит звонок.
Мы ждем. Через 3 секунды классная: можете идти.
Мы всем классом вылетаем с криком "ааааААААаа" в дверь ибо вода скоро начнет водить. Выносим дверь с петель, кто-то падает на дверь, давка... Через 5 секунд осознаем, что выбили закрытую на ключ вдерь (видать училка решила подстраховаться и закрыла дверь чтобы никто не выбежал полсе звонка, а открыть забыла).

Потом на собрании не знаю что было, но дверь починили.

Отличная работа, все прочитано!