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