НСПК / 24.12.24 / перетяжка / 2W5zFK76vmn
НСПК / 24.12.24 / перетяжка / 2W5zFK76vmn
НСПК / 24.12.24 / перетяжка / 2W5zFK76vmn

Назад в 80-е: Мы сделали аркадные автоматы со своей 8-bit игрой

Рассказываем, как мы решили полностью погрузиться в 80-е и собрали несколько своих аркадных автоматов, к которым написали игру.

2К открытий4К показов
Назад в 80-е: Мы сделали аркадные автоматы со своей 8-bit игрой 1

Всем привет! Меня зовут Александр Ватолин, я геймдизайнер и преподаватель Московской школы программистов (МШП). 

Этой весной мы проводили ежегодный Весенний фестиваль, темой которого был пиксельный мир 8 bit. Нас вдохновила ушедшая эпоха с ее перфокартами, тетрисом, post it’ами и аркадными автоматами. Мы решили полностью погрузиться в 80-е и собрали несколько своих аркадных автоматов, к которым написали игру. Вот, что из этого получилось:

Назад в 80-е: Мы сделали аркадные автоматы со своей 8-bit игрой 2

Рассказываю, как мы это сделали.

Этап 1. Создаем проект автомата

Сначала решили, что сделаем простенький проект автомата и закажем его нарезку и сборку на пилораме. План был шикарный, но ненадежный. Но мы этого тогда не знали.

Я получил примерный вид автомата, открыл Inventor и уже после вечера работы была готова первая версия сборки. Вот она:

Назад в 80-е: Мы сделали аркадные автоматы со своей 8-bit игрой 3

Этап 2. Сборка

Как только проект утвердили, мы обозначили масштаб: 3-4 игровых автомата. Нам это казалось вполне выполнимым, и мы приобрели электронные компоненты любого автомата – кнопки и манипуляторы. 

Потом появился вопрос: а что будет основой автомата? Путем недолгих поисков мы остановились на моноблоках. Они дешевы, дают неплохое изображение (мы брали с мониторами на 24”), да и в целом неприхотливы. Пара поездок по складам в Москве и пара доставок с маркетплейсов – и у нас появилось все необходимое. Что мы выбрали:

– Старые офисные моноблоки Samsung TC241. На их борту был CPU:AMD G-T40N + GPU: AMD R HD6290 с невысокими частотами и 4 гб оперативной памяти. 

– Плюс этой машины заключался в матрице. Монитор моноблока дает неплохую картинку, да и скромное железо – решаемая проблема: моноблок можно использовать как монитор, подключив к нему полноценный компьютер. Для нашей 2D-игры этого железа вполне достаточно, но возможность апгрейда – важная деталь при разработке. 

– Второй плюс был в цене – 7000 руб. за один моноблок. Всего у нас вышло без учета трудозатрат в районе 30 000 руб. за один автомат. По-моему, ценник вполне адекватный.

Но у нас возникла проблема с корпусами, потому что мы получали десятками отказы – объем работы был небольшим. И тогда решили, что выпилить 3 автомата руками не проблема. Заехали за инструментами и доработали чертежи. Выезжали с трудом, вывозя более 200 кг лдсп. Вам интересно, как это выглядело? Вот!

Назад в 80-е: Мы сделали аркадные автоматы со своей 8-bit игрой 4

На этом этапе мы перешли к сборке автоматов. Все самое веселое ждало нас впереди.

Сразу скажу: если вы захотите собрать аркадный автомат – подумайте о помещении. Потому что ко второй неделе офис нас немного возненавидел. Я ожидал, что получится выпилить абсолютно все при помощи лобзика и пары других инструментов. Но я был не прав… В итоге нас спас фрезер. Фрезер в офисе? Легко, если вы делаете уникальный проект!

После этого нам привезли наклейки для дизайна автоматов. Они выглядели шикарно, увидев их, наша мотивация выросла в пару раз. Оклейка оказалась одним из самых приятных этапов, единственное, требовала хорошего владения ножом. Мы собирали автоматы день за днем, особых проблем не было.

Процесс сборки был рутинным, но результат был вполне неплохим. Вот так по итогу выглядели автоматы!

Назад в 80-е: Мы сделали аркадные автоматы со своей 8-bit игрой 5

К слову, автомат разбирается на две части и может работать в настольном варианте. Но делали мы это прежде всего для более удобной транспортировки. Из неочевидных решений – установлены пилот и usb-выходы на крышу автомата.

Этап 3. Пишем игру

Тогда же началась активная проработка игры. Я решил выбрать что-то хорошо знакомое и удобное в разработке. После недолгих мучений был выбран Unity, а в качестве игры-референса Ice and fire – старая браузерная игрушка. Там вы играете за огонь и воду, разгадывая головоломки. В МШП мы даем детям фундаментальное IT-образование, поэтому хотели выбрать что-то мирное, но при этом сложное и полезное для мышления. 

Назад в 80-е: Мы сделали аркадные автоматы со своей 8-bit игрой 6

Архитектурно игра представляла из себя двух персонажей, которые могут параллельно перемещаться и взаимодействовать с другими объектами. Изначальный список фич был достаточно большим, мы хотели разработать 10 уровней. Однако поджимающие сроки и долгие тесты поставили крест на этой идее. Мы оставили всего 3 уровня, одна игра длилась 5 минут.

Потом возник вопрос, как заставить управление с кнопок аркадного автомата взаимодействовать с Unity-приложением. В основе управления лежала какая то китайская плата, которая мимикрировала под джойстик. Решение пришло из гугла – приложение joyToKey, которое прекрасно решило проблему преобразования. 

Назад в 80-е: Мы сделали аркадные автоматы со своей 8-bit игрой 7

Графика есть, управление тоже, остался левел-дизайн. И тут возникли сложности. Каждый уровень сначала рисовался в блокноте, потом в фотошопе, а затем я пытался его повторить в движке. Сейчас понимаю, что 10 нормальных уровней действительно трудно придумать. Так что, если соберетесь делать левел-дизайн, имейте ввиду – это сложнее, чем кажется. Вот, что получилось:

Уровень 1

Назад в 80-е: Мы сделали аркадные автоматы со своей 8-bit игрой 8
Разминочный уровень, который знакомил с базовыми механиками

Уровень 2

Назад в 80-е: Мы сделали аркадные автоматы со своей 8-bit игрой 9
Главный уровень, показывающий асимметрию в игре. Сначала робот вытаскивает шишку из западни, а потом уже шишка протаскивает робота по опасной тропе прямо к выходу

Уровень 3

Назад в 80-е: Мы сделали аркадные автоматы со своей 8-bit игрой 10
Здесь нужно было повторить упражнение из второго уровня два раза, но это сложнее, чем кажется. Единственное, что спасало – при смерти вы остаетесь на этом же уровне, а не переходите снова к первому

Дальше самое интересное – скрипты. При разработке появлялось множество странных решений. К примеру, механика перехода с уровня на уровень. Основная сложность была в том, что уровень происходит только при нахождении каждого из персонажей на месте своих выходов. Поэтому система была сделана максимально простой: каждая дверь при входе героя изменяла свой статус и опрашивала вторую о наличии второго игрока. Если оба персонажа находились в дверях, включалась анимация дверей и запускался переход на следующий уровень. Именно за счет этого решения появилось два различных скрипта для каждой из дверей. В целом, можно было создать универсальную дверь, но при наличии всего двух игроков наше решение оказалось на удивление рабочим.

Назад в 80-е: Мы сделали аркадные автоматы со своей 8-bit игрой 11

Буквально 1,5 десятка скриптов и настроенных анимаций позволили построить игру. Покажу вам пару штук, чтобы ответить на некоторые вопросы. 

Управление:

Назад в 80-е: Мы сделали аркадные автоматы со своей 8-bit игрой 12

Управление было крайне простым, я его взял с собственных занятий. Код имеет множество вопросов, но его первичная роль была не в масштабировании, хотя в будущей версии уже появились контроллеры, которые решили большинство проблем.

Тот самый выход:

Назад в 80-е: Мы сделали аркадные автоматы со своей 8-bit игрой 13

А что получилось на выходе?

Итоги

Проект оказался удачным! На мероприятии автоматы заняли первое место по популярности. На этом они не остановились: после фестиваля отправились на мероприятия во ВШЭ и на ГикПикник. 

Назад в 80-е: Мы сделали аркадные автоматы со своей 8-bit игрой 14

Вместо итогов хочется сказать очень банальную и простую вещь: не бойтесь пробовать. Этот проект был сделан за 5 недель. Мы не отбрасывали свои основные обязанности и это было этаким хобби, но все получилось! Так что, верьте в себя, если вдруг захотите повторить наш опыт и поностальгировать.

Следите за новыми постами
Следите за новыми постами по любимым темам
2К открытий4К показов