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