Практически любой проект проще и дешевле выполнять, в том случае если на старте прямо ответить на ключевой вопрос: зачем он вообще нужен. В случае игровых автоматов это крайне важно — без четкой постановки задачи легко уйти в постоянные переделки, дополнения и улучшения, и все это никогда не заканчиваются.
В результате перед тем, как покупать комплектующие, покупать фанеру и скачивать игровые системы, я определил для этого проекта ключевые требования к проекту.
Отправной точкой на что я обратил внимание — сценарий применения. Не абстрактный «аркадный автомат мечты», а максимально реалистичный вариант:
Я хотел получить автомат формата «зашли друзья — включили — начали играть». Без рассказов, мануалов и обучения пользователей.
Стандартные аркадные корпуса кажутся эффектно, однако для квартиры это не самый практичный вариант. В результате я отбросил от мысли традиционного корпуса и выбрал настольный формат.
Главные условия по габаритам корпуса выглядели так:
Такой формат естественным образом задало ограничения по экрану, по глубине корпуса и массу устройства.
Важный следующий принципиальный момент — сами игры. Я сразу решил, что данный проект собирается совсем не «для списка ромов», а прежде всего для живой игры.
Поэтому определились конкретные требования:
Идеально под эти требования подходят файтинги, beat ’em up, аркадные гонки и старые добрые аркадные шутеры.
Ощущения от игры в значительной степени складываются от элементов управления. Можно использовать самый мощный компьютер и отличный дисплей, в то же время когда кнопки управления «плохие», а джойстик люфтит — удовольствия не получится.
Если подбирать как сделать игровой автомат, то минимальный набор критериев будет выглядеть следующим образом:
По числу кнопок я рассматривал пару вариантов: 4 либо 6 на игрока. В итоге я предпочел шесть кнопок — это практичнее и позволяет играть без ограничений в файтинги.
В начале работы я еще не знал окончательных габаритов устройства, но уже осознавал, на что нужно обратить внимание:
Подобные детали почти невозможно определить «теоретически», поэтому я заранее предусмотрел шаг с прототипом, о нем будет рассказано далее.
Даже в случае если игровой автомат стоит дома и применяется осторожно, он все равно должен оставаться удобным для обслуживания. Я сразу определил ряд обязательных условий:
Когда все условия были зафиксированы, прояснилось, в какую сторону нужно идти. Следующей стадией стало планирование и изготовление первого макета.
Когда основные условия были определены, стало очевидно, что сразу изготавливать «чистовой» вариант — ошибочное решение. Без опыта просто допустить ошибку в размерах, наклонами и размещением элементов. Поэтому следующим шагом стало создание прототипа.
В теории и в представлении все всегда выглядит безупречно. Фактически часто оказывается, что на самом деле:
Пробный вариант важен не для красоты, а для оценки удобства. Его задача — дать ответ на вопрос: удобно ли реально играть.
Самый простой и бюджетный способ проверить расположение — использовать бумагу и простые материалы. Я подготовил:
Вся эта конструкция располагалось на поверхности в разных конфигурациях. Я пробовал менять дистанцию между участниками, наклон экрана, ширину панели и оценивал, как это ощущается вживую.
Уже тогда стало ясно, что некоторые идеи из головы не работают на практике.
После картонного этапа я решил для себя создать примитивный контроллер управления. Без внешнего корпуса, без дизайна — исключительно чтобы оценить чувство от контроллеров.
Для сборки понадобилось:
Я смонтировал кнопки с джойстиками в корпус, соединил их к плате и протестировал разные игры на телевизоре. Такой тест дало гораздо больше понимания, чем любые чертежи.
Спустя несколько вечеров тестов прояснились детали, о которых часто не задумываются:
Этот этап сохранил для меня кучу времени и денег в дальнейшем. Переделывать бумагу — почти бесплатно. Исправлять корпус — больно и дорого.
Когда базовое расположение сложилась, я перенес все ее в трехмерную модель. Это дало возможность:
На этой стадии дизайн еще неоднократно дорабатывался, при этом ключевое стало понятно: автомат будет удобным, компактным и ориентированным на игру вдвоем.
Дальше стало возможным перейти к подбору начинки и основного блока устройства.
После того как стало понятно, каким образом автомат должен выглядеть и чувствоваться физически, настал момент решить, с тем будет использоваться внутри. От подбора «платформы напрямую зависит сложность сборки, надежность и количество времени, который придется потратить на настройку.
Изначально я рассматривал ряд популярных вариантов:
Десктоп и ноутбук отпали на раннем этапе: они занимают большой объем, потребляют больше питания и усложняют конструкцию. Я хотел компактное, простое в сборке стабильное вариант.
В конечном итоге выбор пал именно Raspberry Pi. Не потому что он «безальтернативное решение», а за счет того, что он хорошо подходил под поставленные задачи:
Для ретро-аркадных и старых консольных игр прошлых лет его мощности вполне достаточно.
С экраном все оказалось не таким простым. Было желание поймать баланс между размером, ценой и комфортом.
Ключевые условия выглядели так:
Я не стремился за максимальным разрешением — для старых игр оно избыточно.
В этом вопросе экономить точно не стоит. Бюджетные кнопки управления могут работать некорректно, а плохие джойстики — люфтить буквально спустя несколько недель.
Я отбирал элементы управления по таким критериям:
Проще сразу взять не самый дешевый вариант, но потом не разбирать автомат из-за каждой мелочи.
Для того чтобы Raspberry Pi распознавал органы управления как обычный геймпад либо клавиатуру, используются USB-энкодеры.
Это компактные платы, к которым подсоединяются:
Затем все это одним кабелем подсоединяется к Raspberry Pi, и система распознает управление автоматически.
Даже при компактных решений есть нюансы:
Нагрев у Raspberry Pi не является критичным при аркадной нагрузке, однако лучше сразу предусмотреть отверстия вентиляции или малошумный вентилятор.
Когда все компоненты были подобраны и куплены, стало возможно переходить к следующему шагу — к сборке тестовой системы и конфигурации ПО.
Прежде чем встраивать компоненты в корпус, я принял решение собрать систему в предельно простом виде и проверить, что система вообще работает по плану. Данный этап позволяет выявить большую часть ошибок без опасности повредить корпус или переделывать заново готовый корпус.
Здесь не имеет значения внешний вид. Важна только работа системы.
Я подготовил на поверхности:
Элементы управления были подключены вне корпуса — исключительно для проверки логики работы и ощущений.
Для софта я выбрал готовый образ с эмуляторами игр. Такой подход существенно экономит время: не нужно отдельно устанавливать каждый компонент и конфигурировать каждый отдельно.
Последовательность действий выглядел к следующему:
После старта система сразу предлагает назначить кнопки — достаточно нажать кнопки по порядку.
Этот этап — самый критичных моментов. Даже когда все подключено корректно, на практике часто всплывают неприятные проблемы:
Я запускал разные типы игр и оценивал, удобно ли играть, не приходится ли тянуть руку к кнопкам и не задевают ли игроки локтями.
Сама система поставляется без игр, поэтому ROM-файлы загружаются отдельно. Я заранее подготовил небольшой набор:
Критично здесь не пытаться добавить «все и сразу». Ограниченный список игр позволяет сконцентрироваться на тестировании эргономики, а не на переборе из сотен вариантов.
Без сложностей, разумеется, не обошлось. В процессе тестирования стало ясно:
Все эти моменты было легко устранить именно сейчас, поскольку ничего не встроено в корпус.
После нескольких вечеров тестирования система оказалась стабильной и понятной. Контроллеры работало так, как было задумано, игры запускались быстро, ничего не подвисало и не требовало доработок.
Это показывало, что теперь пора переходить к самому сложному шагу — проектированию и сборке корпусной части.
Корпус — это самая наиболее трудоемкая и самая «материальная» часть всей конструкции. Именно он задает визуальный облик устройства, его массу, жесткость и удобство использования. Промахи на этой стадии стоят дороже всего, поэтому к выбору материалов я решил подойти особенно внимательно.
Перед тем как выбирать материалы, я определил ключевые условия к конструкции:
Конструкция должен был быть утилитарным, и не витринным экспонатом.
Самым первым и самым очевидным выбором стала фанера. Это классический классический материал для аркадных автоматов, и у него есть набор понятных преимуществ:
Я выбирал фанеру толщиной 10–15 мм. По итогу остановился на компромиссном решении — такая толщина дает необходимую прочность, но не превращает автомат в неподъемный ящик.
Идея сделать корпус из массива выглядит заманчиво, однако в реальности у нее много недостатков:
Для начального проекта это неоправданно сложно и затратно.
Также я обдумывал идею использовать частично 3D-печать. Этот способ хорошо работает в случае:
Целиком печатать весь корпус нецелесообразно: долго, дорого и часто не достаточно жестко.
Геометрия напрямую зависит от формата автомата. В моем случае это был компактный формат, поэтому:
Я сознательно старался избегать замысловатых криволинейных форм — чем проще геометрия, тем проще производство и сборка.
После того как геометрия и материал были определены, я сделал основные чертежи. Эти чертежи не получились окончательными, и при этом несколько раз дорабатывались в процессе, однако позволяли понять:
С такими схемами уже можно было перейти к производству корпусных деталей и его сборке.
После того как материалы был выбран и схемы готовы, началась наиболее физически ощутимая часть всей работы — сборка конструкции. Именно на этом этапе из набора деталей автомат начинает превращаться в реальный объект, а не абстрактную идею.
Все детали конструкции я предварительно подготовил по заданным размерам. Сделать это можно по-разному:
Я выбрал варианте с ЧПУ — так детали получаются точнее, а отверстия под кнопки и экран сразу совпадают чертежам. Однако это не обязательное условие, особенно когда устройство собирается в единственном экземпляре.
Перед тем как что-то склеивать и закручивать намертво, я сделал «пробную» сборку деталей — без клея и финишных креплений.
Это позволило:
На этом этапе обычно проявляются мелкие ошибки по размерам, и их проще исправить сейчас, чем потом после завершения финальной сборки.
По завершении сухой подгонки конструкция был разобран и собран уже окончательно.
Для крепления деталей я использовал:
При этом важно не переусердствовать с крепежом и оставить возможность разобрать конструкцию в будущем.
Особого внимания требует панель управления. В ней:
Я не раз примерял панель управления перед финальной фиксацией, чтобы убедиться, что пользоваться реально комфортно.
Дисплей фиксируется внутри конструкции так, чтобы:
В большинстве случаев достаточно простых деревянных планок либо уголков.
Я заранее предусмотрел доступ к внутренней части корпуса. Для этого задняя стенка:
Это сильно упрощает обслуживание, замену кнопок и работу с электроникой.
Когда корпус был собран, стало возможно перейти к монтажу всей электроники и внутренней разводке.
На этом этапе устройство уже смотрелся как законченное устройство, но без правильной настройки ПО он оставался просто коробкой с кнопками. Моя цель была простой и понятной: подать питание и сразу попасть в список игр, без лишних меню и действий.
Я сразу предполагал что автоматом пользуются не только один человек. Соответственно:
Фактически устройство должен вести себя как обычное устройство: включил — и оно работает.
После завершения финального монтажа всей электроники внутри я заново выполнил настройку управления в ПО. Это важно, так как после укладки проводов иногда появляются мелкие нюансы.
Я проверил:
Без этого часть игр может управляться «зеркально» либо некомфортно.
Чем меньше всего элементов меню видит гость, тем удобнее. Я исключил все лишнее:
В результате получился небольшой список проверенных игр, в которые реально хочется играть вдвоем.
Я сделал настройку ПО так, чтобы:
Такой подход особенно важно, если автомат используется гостями либо установлен в общем пространстве.
Перед тем как считать весь проект завершенным, я несколько вечеров подряд просто играл на устройстве:
Именно в таком режиме проявляются мелкие детали, которые сложно учесть заранее: где-то неудобно тянуться к кнопке, в другом нужно другой очередность игр, а иногда — более быстрый возврат в меню.
К этому моменту автомат получился ровно тем, чем я его задумывал изначально. Это девайс, который не нуждается объяснений и работает предсказуемо.
Если подытожить всю работу, то как сделать игровой автомат — это в первую очередь не столько про электронику или фанеру, сколько грамотно продуманную последовательность шагов: от постановки задачи до финальных тестов в реальной эксплуатации.
Далее я расскажу о практическом использовании, ошибках и выводах, которые возникли в процессе использования автомата в жизни, а не в теоретических условиях.