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