{"id":4098,"url":"\/distributions\/4098\/click?bit=1&hash=4a2746815553d402e055c9b00a2035b35e47c0edcda5fd7253d5e57f885e8ecc","title":"\u0410\u0444\u0435\u0440\u0438\u0441\u0442\u043a\u0430, \u0440\u0435\u0431\u0451\u043d\u043e\u043a \u0438 \u043f\u0430\u043d\u043a \u2014 \u0447\u0442\u043e \u043e\u0434\u0435\u0436\u0434\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430\u0445?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"e6048338-fd6d-53fa-aaf4-387384748bf7"}

Однобитный гейминг, или правило 34 для микроконтроллеров

Если бы для микроконтроллеров существовало правило 34, то оно, скорее всего, звучало-бы так: «Если это исполняет программы, кто-то уже написал для этого игру». При этом производительность совершенно не важна, как и то, для чего контроллер предназначался в оригинале. Важен сам принцип – если это выполняет программы, на этом можно поиграть.

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

Так же, как инди-игры зачастую не слишком технологичны, но могут быть интересным (или красивым) экспериментом, эти устройства, или как их еще называют «инди-консоли» скорее среда для экспериментов и идей, нежели серьезное игровое железо с новыми возможностями.

Инди-консоли обычно делаются на основе какого-то распространенного микроконтроллера — чипа, на котором сразу находятся и процессор, и шина, и ОЗУ/ПЗУ, и основные интерфейсы. Что, во-первых, удобно – можно стразу приделывать нужные устройства ввода-вывода, а во-вторых, микроконтроллеры обычно дешевы и компактны.

Микроконтроллер - все свое носит с собою. Источник - http://myowndevice.ru/

Для создания инди-консолей могут использоваться самые разные процессоры и чипсеты, – от ATMega 32u4 (процессор ардуино леонардо) до в десять с лишним раз более быстрого STM32F746IGK, но, чаще всего это будут системы, совместимые с Arduino IDE – будь то оригинальные ардуино, или EST32.

Благодаря, в том числе, компактности микроконтроллеров, сегодня инди консоли обычно делаются в формате небольшой портативки. Варианты платы для подключения к телевизору через AV или c интерфейсом HDMI тоже существовали, но мало какие из этих проектов дожили до наших дней.

Консоль HackVision (2010) - бывали и такие варианты, но сейчас речь не о них.

Почему инди-консоли?
По своей сути, инди-консоли похожи на так называемые «фэнтезийные консоли» — другой интересный феномен игрового дизайна. Фэнтезийные консоли (Fantasy Consoles) — это программные среды для эмуляции и создания игр для никогда не существовавших физически игровых устройств. Сегодня существуют десятки фэнтезийных консолей и тысячи созданных энтузиастами игр. Разработчиков – чаще всего любителей – привлекают, как ни парадоксально, именно ограничения системы, и связанная с ними возможность сосредоточится на создании игры в простой среде, не отвлекаясь на сложное многообразие возможностей современных игровых движков и запутанное железо ПК и консолей.

У фэнтезийных консолей можно выделить три характерных составляющих —

1) Среда разработки, содержащая текстовый редактор, редактор спрайтов, редактор карт и звуковой редактор.

Интегрированная среда фэнтезийной консоли OCTO (Chip-8)

2) Набор искусственно наложенных ограничений разработки, таких как ограниченное графическое разрешение, цветовые палитры, использование оперативной памяти или дисковое пространство.

3) Игры, приложения и демонстрации, разработанные исходя из этих ограничений, с общими эстетикой и стилем.

Игры, созданные на консоли Pico-8. Чувствуется некоторое стилистическое единство. Кстати, если вам показалось, то не показалось - в нижнем левом углу - Celeste. Эта игра была изначально написана на pico-8 а потом доработана и портирована на другие системы.

Инди-консоли устроены похожим образом — подобно фэнтезийным консолям, они предлагают «игру в создание игры». Игровой дизайн и программирование становятся чем-то вроде мета игры с ограничениями и правилами – подобными ограничениям создателей игр для оригинальных 8-битных приставок. Кроме того, инди-консоли часто имеют открытый код и схемы, и дают практически недостижимый в современных системах контроль над всеми аспектами и возможностями железа.

Одним из первых широко известных и коммерчески успешных проектов на основе ATMega 328 (Arduino UNO) стала консоль Gamebuino (2012). 16 MHz, 2KB ram, 32kb flash, монохромный экран 84x48 пикселей и шесть кнопок. Что еще нужно для игр и творчества?

Консоль была встречена с большим энтузиазмом и успешно профинансирована на Indiegogo, собрав 1055% от запланированной суммы. Консоль стоила 35 евро для бэкеров, и около 38 позже, в онлайн магазине.

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

Сегодня именно эту консоль купить уже нельзя, но создавшая её компания существует и выпускает следующую, более мощную, модель. Так же до сих пор живы форумы и сообщества, где можно найти помощь и информацию и до сих пор можно приобрести совместимую консоль – набор для самостоятельной сборки MakerBuino. (Честно сказать, создателей MakerBuino я немного недолюбливаю — некогда недорогой радиолюбительский кит они превратили в хипстерскую коробку с добавлением низкокачественных китайских инструментов и сильно подняли цену)

"Вы хотите поиграть на необитаемом острове и у вас есть лишние деньги"

За последние несколько лет энтузиасты пытались использовать в инди-консолях самые разные чипсеты. Adafruit PyGamer – один из примеров консоли на более мощном железе. Я затрудняюсь сказать, насколько эта консоль «инди» поскольку компания Adafruit достаточно крупный игрок на рынке плат и решений для независимых разработчиков и обучения, но все основные признаки инди-консолей в PyGamer присутствуют в полной мере.

Это недорогая консоль на основе совместимого с Arduino IDE чипсета atsamd51J19. Благодаря большей, чем у базовых ардуино-совместимых контроллеров, мощности она позволяет программирование не только на С++, но и на python, а также использовать визуальную среду Microsoft make code. Благодаря гораздо более шустрому чипсету (120MHz Cortex M4F), объёму памяти (192 кб RAM и 512 kb flash) и цветному экрану 160x128 пикселей эта консоль позволяет создавать довольно продвинутые игры.

Сборник красивых и бодрых игр на python от dafluffypotato. com

Несмотря на достаточно впечатляющие (для консолей подобного типа) характеристики и возможности, PyGamer вполне бюджетна, и продается за 60 долларов за набор с корпусом, запасными кнопками и чехлом или 45 долларов за голую плату.

Иногда инди консоли могут быть очень забавно решены в плане формы и устройства. В 2021 году компания Kittenbot выпустила Newbit Arcade Shield – не консоль как таковую, но расширение (шилд) для популярного обучающего микроконтроллера BBC Micro:bit второй ревизии. Плата с микроконтроллером вставляется в расширение как своеобразный картридж.

вставленная сверху плата с двумя кнопками и пятью рядами светодиодов и есть, собственно, чипсет консоли. 

Вторая версия micro:bit имеет достаточно неплохое, для этого класса устройств, железо (Nordic Semiconductor nRF52833 64MHz Cortex-M4F, 512kB Flash, 128kB RAM) . Ситуация с этой консолью довольно интересная – за ней не стоит такое количество энтузиастов-самодельщиков, как за ардуино, но micro:bit – микроконтроллер созданный для обучения, и с огромным количеством учебных и методических материалов. Игры-же для этой консоли пишутся в Microsoft makecode arcade, что гораздо проще для освоения, нежели С++ или даже python.

Рабочая среда makecode arcade

И, наконец - Arduboy – эта, ставшая чуть ли не стандартом, инди консоль во многом похожа на gamebuino. Она основана на ATMega 32u4 — это чип Arduino Leonardo. От чипа Arduino UNO его отличает встроенный USB интерфейс, что позволило сделать Arduboy очень компактным – собственно, маленький размер и изящное решение платы и корпуса было одной из его фишек.

Проект – тогда еще просто небольшая «умная» визитка с чипом, экраном и предустановленной игрой завирусился на ютубе и его создатель, Kevin Bates, решил оставить основную работу и попытаться воплотить идею в жизнь. Компания на кикстартере началась в 2015 году. Проект был успешно профинансирован — было собрано более 400 тыс. долларов при заявленной цели в 25 тысяч. Не только отличный дизайнер, но и технолог, Кевин переселился в Китай, доработал дизайн проекта и наладил производство первой модели. В 2016 году бэкеры получили первые консоли, а чуть позже устройства появились и в магазинах, занимающихся любительской электроникой по всему миру. Изначально в консоли не было внешней памяти, и можно было записать только одну игру – загрузка в память следующей игры происходила вместо предыдущей, через стандартный интерфейс Arduino IDE. Позже, в 2019 году была разработана следующая модель с дополнительным чипом памяти, вмещающим более 200 игр. Производство новой модели началось в 2020 году, она получила название Arduboy FX (Flash eXtension), и именно она актуальна на сегодняшний день.

Те, у кого уже есть старая модель могут купить чип памяти для самостоятельной модификации.

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

Arduboy FX приходит в симпатичной коробочке, где кроме самой консоли находится короткий USB шнур. В отличии от многих инди-консолей, Arduboy приходит уже собранным, а не в виде набора для самостоятельной сборки.

Технические характеристики:
Процессор: 16MHz ATmega32u4 (такой-же, как в Arduino Leonardo & Micro)
Память: 32KB Flash, 2.5KB RAM, 1KB eeprom
Экран: 128×64 1Bit OLED с диагональю 1.5"
Батарея: 180 mAh Thin-Film Lithium Polymer (около 8 часов игры)
Micro-USB 2.0 w/ built in HID profile
Для ввода есть шесть кнопок, четыре из которых используются как Dpad. Так же есть кнопка reset, утопленная в корпус во избежания случайного нажатия.

Кстати, кнопки и пад неожиданно удобные, как и сам процесс игры. Но подводит малюсенький экранчик — диагональ в полтора дюйма несколько напрягает глаза, хотя сам экран очень четкий.

К сожалению, маленький экран - характерная проблема этого типа портативок.

На консоли сразу записано две сотни созданных энтузиастами игр. Часть – чуть упрощенные версии классики вроде зелды, KONG или известных серий JRPG, а часть – оригинальные и разработанные специально под Arduboy. И, надо сказать, что несмотря на ограничения – низкое разрешение экрана и процессор, изначально отнюдь не предназначенный для вывода динамичной графики — разработчикам удаётся создавать стильные и вдохновляющие игры, будь то демейки классических аркад или собственные игры с оригинальными механиками.

Лишь некоторые из написанных энтузиастами игр. 

Что плавно подводит нас к самому интересному – инди-консолям как возможности для собственного творчества. Как уже сказано выше, каждая инди-консоль — это, одновременно, и своеобразный девкит, позволяющий запускать собственные программы и управлять всеми компонентами консоли на уровне железа (у Arduboy существует отдельная версия, которая называется «dev kit», но она отличается только отсутствием корпуса и кнопками – функционал у нее тот же самый. По сути, так назывался ранний прототип для бэкеров и бета-тестеров) .

Консоль программируется через Arduino IDE, т. е. на С++, но с большим количеством написанных специально под Arduboy библиотек, облегчающих работу с выводом спрайтов, считыванием ввода и звуком. Пока что для Arduboy и его клонов не существует единой графической среды разработки, которая включала бы интегрированные редакторы спрайтов, текста и звука и эмулятор, на подобие того, что есть в фэнтезийных консолях – это одно из направлений, которыми Кевин собирается заняться в будущем.

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

Создание игры для Arduboy превращается в интересную головоломку, требующую справляться как с минимализмом средств, так и бесконечной оптимизации кода и ассетов. Все проблемы создателей игр для восьмибитных картриджей встают перед разработчиком в полный рост, но, с другой стороны, простота средств заставляет отбросить лишнее и определится с основными механиками, и не позволяет потеряться в глобальности огромных замыслов, что не редко случается с начинающими. В процессе изучения платформы и разработки идей для собственной игры я многое понял о старых играх и, начал подозревать, как и почему жанр JRPG приобрел свои характерные черты.

Несколько спрайтов из моей будующей игры.

Еще одна причина присмотреться к платформе – игр для Arduboy не так много, и к любой будет приковано доброжелательно внимание. Так же форумы Arduboy более чем живы, и там нередко можно встретить опытных программистов и спросить у них совета, если что-то пошло не так — не каждая платформа позволяет спросить технического совета (и, нередко, получить его) непосредственно от разработчика консоли =). Еще, поскольку консоль основана на ардуино, то нужную информацию часто можно получить и от разработчиков, не связанных с проектом напрямую.

Как и в случае популярных фэнтезийных консолей, ваша игра не обязательно останется запертой на Arduboy – например, игра Circuit Dude Джонатана Холмса была им позже доработана и сейчас доступна в Стиме, на Нинтендо Свич и на мобильных платформах.

Одна из интересных особенностей Arduboy и залог его длинной жизни как платформы – постоянное возникновение все новых совместимых с ним проектов, как, например, 8BitCADE. Поскольку это решение стало своеобразным стандартом и его схема распространяется совершенно свободно, множество самодельщиков и радиолюбителей собирают собственные аналоги Arduboy и пишут для него игры и программы.

Вездесущие китайцы так же не бросают на произвол судьбы тех, кто хотел бы стать частью сообщества Arduboy, но не может купить оригинал или не хочет собирать все с нуля. https://www. aliexpress.com/item/4000437689219.htm

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

Лично для меня идея инди-портативок и сообщество Arduboy стали причиной вернуться к вещам, которыми я не занимался почти 20 лет — со времен военной службы и учебы в институте. Я начал делать курсы по программированию и IOT, экспериментировать с ардуино и учиться писать правильные диздоки для разработки игр. И даже если увлечение инди-консолями пройдет — полученные знания останутся со мной и, скорее всего, помогут в более серьезной разработке в будущем.

0
54 комментария
Написать комментарий...
dyst0p

Спасибо за пост! И тема интересная, и подача хорошая)

Ответить
Развернуть ветку
Илья Lizard
Автор

Спасибо)

Ответить
Развернуть ветку
L8OLOOE

Спасибо , я лучше а Стим дек поиграю

Ответить
Развернуть ветку
Станислав

Это у стимдечников болезнь какая-то, да?

Ответить
Развернуть ветку
6 комментариев
Stanislav Kupriyanov
Ответить
Развернуть ветку
1 комментарий
Абырвалг Абырвалг

В таких штуках поражает то, что люди ухитряются на чипе с двумя килобайтами памяти умещать полноценные игры, которые довольно приятно играются. На ардубой даже клон зельды есть.
И спасибо открытости кода этих консолей, можно сделать такую и самому, имея 3д принтер и рублей 500 на составные части.
Делал как-то вот такой вот автомат, на базе софта от ардубоя, играл на нем в mystic balloon, забавная игрушка.

Ответить
Развернуть ветку
Илья Lizard
Автор

Класс. =) Очень здорово получилось.

Ответить
Развернуть ветку
Призрак космического рейнджера

Спасибо за статью! Очень интересно!
Хз, наверное немного не по теме, собирали с братом как-то эмулятор NES на Esp32. Вся электроника была куплена у китайцев. Корпус был напечатан на 3д принтере (это была самая первая вещь, которую я начертил и смоделил сам, первый блин комом, поэтому вышло так упорото). Прошивку взяли с гитхаба https://github.com/espressif/esp32-nesemu (или другую, основную на этой, но с дополнительными плюшками, уже не помню, мы тогда много прошивок перепробовали)
Возможно когда-нибудь переделаю в более удобное устройство))

Ответить
Развернуть ветку
Илья Lizard
Автор

Почему-же, очень даже в тему. Имхо, хорошо вышло, я бы только кнопки из другого пластика напечатал.) И в любом случае, тут не победа, а участие =).

На ESP32 инди-консоли тоже часто делают, кстати, только сегодня большинство таких проектов - не самые популярные.
Есть, например, вот эти ребята -
https://www.crowdsupply.com/byte-mix-lab/microbyte

На ESP больше выстреливают чистые эмуляторы, у меня есть кит от Odroid, оригинальный одроид-го.

Ответить
Развернуть ветку
5 комментариев
Xanathar
Фэнтезийные консоли (Fantasy Consoles) — это программные среды для эмуляции и создания игр для никогда не существовавших физически игровых устройств. Сегодня существуют десятки фэнтезийных консолей и тысячи созданных энтузиастами игр.

Меня всегда вот это удивляло. Есть же куча эмуляторов реального железа. От 8080 и ZX до 6502, 6510 и банальной XT. Только там гигантская база наработок и пользователей.
Вот, например, игра 2009 года для VIC-20.

Ответить
Развернуть ветку
GoldSrcFreeman

Очевидно, что под вымышленные консоли делать игры гораздо проще.

Ответить
Развернуть ветку
Илья Lizard
Автор

Как сказали выше - сильно проще. Не надо изучать реальное железо, и пишут под эти консоли, обычно, на скриптовых языках. Тот же Bitsy вообще кода не требует. Собственно, и самого железа не надо - потому как эмулятор-эмулятором, но если-б я писал под реальную старую систему мне-бы хотелось прогнать на оригинальном железе или, как минимум, на версии с хардверной симуляцией железа на FPGA.
Портировать тоже сильно легче - большинство нынешних фэнтезийных консолей могут сразу выдать код HTML5 для встраивания в веб страницу.

Ответить
Развернуть ветку
2 комментария
Aleksei Mariacho

Офигенно) напомнило https://youtu.be/G5701B237tU

Ответить
Развернуть ветку
Aleksei Mariacho

Какое бы ни было железо, люди все-равно склонны к прокрастинации и развлечению, поэтому это нормально, что на всем появляются игры)

Да и вообще, игры - это весело) наверное поэтому я и выбрал такую профессию

Ответить
Развернуть ветку
1 комментарий
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Bishamon
правило 34

Дико извиняюсь, но "правило 34" только одно

Ответить
Развернуть ветку
Илья Lizard
Автор

Вот бы все душнили аниме-девочками. ^______^

Ответить
Развернуть ветку
Лебедь

Я во время чтения...

Спасибо а крутую хотя и сложноватую для меня стать. Всё таки смог прочесть и понять) Пусть эти знания и останутся с тобой и пригодятся для более серьёзных разработок!

P.S. В самом последнем слове статьи затесалась ошибка ;)

Ответить
Развернуть ветку
Илья Lizard
Автор

Спасибо! Поскольку местный редактор с сотового - огненный спидорак сатаны, поправлю уже из дома)

Ответить
Развернуть ветку
Ринат Абдрахманов

На удивление хорошо написанная статья и материал очень интересный.
Во время чтения ловил себя на мысли, что если завтра все игровые издательства исчезнут, то нам все равно найдется во что поиграть .

Ответить
Развернуть ветку
Илья Lizard
Автор

Именно так - инди разработчики делают столько потрясающей всячины, что в целом уже совершенно наплевать, куда "катится большой геймдев".

Ответить
Развернуть ветку
Илья Lizard
Автор

Я рад, спасибо :)

Ответить
Развернуть ветку
MadRat96

Спасибо за офигенную статью, тема демейков и программирования в ограниченных начальных условиях всегда была интересна для меня

Ответить
Развернуть ветку
333hronos

Интересно было, хорошо написано, спасибо за материал

Ответить
Развернуть ветку
Maxim Mikhaylovich

Тема интересная. Ещё бы была возможность где-нибудь это без костылей приобрести...

Ответить
Развернуть ветку
Дима Елкин

В статье есть ссылка на одну из консолей на алиэкспресс. Там же по запросу выдает Arduboy в сборе - правда от 6 тысяч вечнодеревянных.

Ответить
Развернуть ветку
Алексей Бурнатный

Статья супер, спасибо! Жаль купить такую штуку не просто

Ответить
Развернуть ветку
Абырвалг Абырвалг

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

Ответить
Развернуть ветку
Илья Lizard
Автор

Спасибо!
Есть много схем, и в принципе, китайцы продают все необходимые детали.
Многие такие консольки собирают просто на макетной плате, без пайки.

Ответить
Развернуть ветку
Дима Елкин

На али зайди - клонов вагон и тележка

Ответить
Развернуть ветку
Santiago

Это мы добавляем в избранное. Отдельное спасибо за открытие такой чудесной консоли как Pico-8! Обожаю такие маленькие игры.

Ответить
Развернуть ветку
Илья Lizard
Автор

Я рад, спасибо. Да, Pico-8 потрясающая система и игры делают прям очень хорошие, и так и подмывает самому сесть разбиратся - но где-ж время взять =)?

Ответить
Развернуть ветку
MAUTHNER

Спасибо большое за такую интересную статью!)
Было очень интересно как разработчику игр

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Илья Lizard
Автор

Х-м-м-м, а это идея.

Ответить
Развернуть ветку
Драуг

Для коллекционера, не более

Ответить
Развернуть ветку
Sergey Ryabenko

Твой коммент? Да, для ценителей бесполезных вещей.

Ответить
Развернуть ветку
1 комментарий
Yohan Palich

будуЮщей

Ответить
Развернуть ветку
47 комментариев
Раскрывать всегда
null