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