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