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