- PVSM.RU - https://www.pvsm.ru -

SHENZHEN I-O — новый симулятор программирования микроконтроллеров

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 1

Как многие из нас хотели быть инженерами-схемотехниками, но не стали ими? Я не говорю о программистах, строителях и прочих специальностях. Многие мечтали паять платы, ходили в радиокружки и курочили домашнюю аппаратуру (получая после этого ремня от отца, само собой) в попытке понять, как она работает? Если не каждый первый, то уверен, многие.

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

В этой публикации я предлагаю вам познакомиться с новой игрой, вышедшей в ранний доступ в Steam 6 октября этого года. Встречайте, инди-симулятор создания цепей и простых устройств — SHENZHEN I/O [1].

В Steam игра находится в разделе «симуляторы» и идет с пометками «инди», «логические игры» и «ранний доступ», и все они являются абсолютной правдой.

Статистика

Но прежде чем мы перейдем к самой игре, давайте посмотрим на цифры от SteamDB [2].

В самом Steam игра имеет 94.03% положительных отзывов (209 за и 5 против и есть подозрение, что последние голоса связаны с крашами игры или с невозможностью запуска сырого проекта).

В игре почти ничего нет, но это не мешает ей требовать 4 Gb оперативной памяти на борту:

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 2

При установке через Steam все выглядит достаточно просто. Сервис сам проверяет актуальность .NET (необходим версии 4.5), DirectX и прочих компонентов.

Также разработчик не обделил линуксоидов и владельцев маков, эти платформы тоже поддерживаются со схожими системными требованиями. Для Linux это SteamOS или Ubuntu 16.04+, для macOS — версия 10.9+. Требования к процессору и оперативной памяти те же, что и для Windows.

Каких-либо проблем с игрой (вылетов, крашей на старте) на Windows 7 x64 пока замечено не было.

По информации SteamSpy игру купило всего 8913 (±2348) человек, однако, среднесуточный онлайн уже составляет 872 игрока.

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 3

Намного интереснее статистика проведенного в игре времени. В среднем, в игре за последние две недели (т.е. с момента релиза) провели 4,9 часа (по медиане 4,5), что для логической инди-игры отличный показатель. Для сравнения, у вышедшей недавно игры Mafia III данная цифра составляет 7,3 часа (по медиане 5,6).

У проекта есть собственный раздел на Reddit [3], где происходит общение между игроками. Рейтинги обсуждений далеко невысоки (10-15 баллов), но там уже прошедшие существующие уровни игры люди предлагают свои решения на всеобщий суд.

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

Там же, на Reddit, в закрепленной теме [4] организовала обратная связь с разработчиками. Там можно предложить новые уровни, функции, ачивки и прочий игровой контент. В отличие от корневого раздела с 2-3 комментариями на топик, тут обсуждение идет более активно, ведь некоторые «матерые» техники игру уже прошли.

А теперь перейдем непосредственно к SHENZHEN I/O.

Сама игра

Главное меню игры может служить образцом минимализма:

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 4

Весь базовый интерфейс меню построен по принципу получения квестов посредством «электронной почты».

Игра начинается с принятия игрока на работу:

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 5

Хардкор начинается, кстати, в самом начале. Вместе с приветственным письмом и щебетом виртуальный коллег появляется тимлид (по фото выглядит слегка бесновато) с двумя сакральными фразами:

  1. Fresh meat...
  2. Иди курить маны.

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 6
Да. Просто да.

Разработчик от лица Карла на полном серьезе предлагает предварительно сходить ознакомиться с документацией по игре.

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 7

Мануалы, кстати, это отдельная история. При нажатии по соответствующей кнопке «Datasheets» в меню игры, открывается PDF-документ на 41 страницу в ассоциированной в системе PDF-читалке (в случае автора — в Google Chrome).

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 8
Вы уже чувствуете себя рабом на китайском производстве?

Если не чувствуете, то для обеспечения глубины погружения в «офисные будни» разработчик добавил «Солитер».

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 9

И, конечно же, карты подписаны по-китайски. Мы же в Китае работаем, так?

Однако, приступим к самой игре.

Игровой процесс строится по принципу получения концепт-документации по e-mail и разработке необходимого устройства. Сперва от нас требуют спроектировать камеру.

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 10

Приступал автор к первому заданию как истинный подготовленный джедай: ничего не зная о схемотехнике или, отдаленно, о программировании микроконтроллеров и, конечно же, не читая мануал:

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 11

Единственное, на скриншоте уже установлен модуль и проложена «дорожка» до необходимого выхода. Верхний модуль был полностью сформирован и трогать его не нужно, он рабочий. На первом уровне игры задача сводится к написанию простого кода контроллера, который обеспечит корректное «прохождение сигнала по заданному пути»:

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 12

Так выглядит график симуляции сети без кода, просто прямой сигнал. Нам необходимо его «погнуть» в нужную нам сторону.

Базовый код, который идет «в комплекте» с первым модулем, выглядит следующим образом:

mov 0 p0
slp 6
mov 100 p0
slp 6
  
# why is this
# so hard? :(

Орфография сохранена

Методом тыка и аналогий (джедаи же маны не читают, помните?) выводим, что:

  • mov N — движение сигнала по уровню N, XY — вход;
  • slp — дистанция прохождения сигнала.

Исходя из этих нехитрых умозаключений на уровне интуиции получаем код вида:

mov 0 p0
  slp 4
  mov 100 p0
  slp 2
  mov 0 p0
  slp 1
  mov 100 p0
  slp 1
  mov 0 p0

Напоминаю, уровень автора в данной теме соответствует уровню в ней вашего кота.

Так вот, этот нехитрый код описывает замкнутый цикл прохождения сигнала и «выравнивает» его, как нам было нужно:

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 13

Весело? Кажется, уже да.

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

Тут мы сталкиваемся с реалиями синтаксиса игрового языка программирования контроллеров. Но так как желание созидать сильнее, то есть только сожаление, что мануал не на русском или не достаточно подробный (желательно, конечно с картинками, но у нас же все серьезно тут, да?).

От нас требуется мультиплексировать сигнал в два раза. Окей. Ищем необходимые нам функции, пишем простенький код вида:

mov p0 acc
  mul 2
  mov acc p1
  slp 1
#ITS ALIVE

И наслаждаемся очередной маленькой игровой победой:

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 14

Я не буду говорить, сколько мне, как полному профану, потребовалось времени, чтобы понять, как это сделать, но теперь цифра среднего онлайна в 4,5 часа уже не выглядит такой уж и большой.

Дальнейшие свои утехи с SHENZHEN I/O (и мануалом к игре) я оставлю за кадром.

В сухом остатке

Если отбросить в сторону детский восторг (хотя это и очень сложно), то игра получилась увлекательной, по-крайней мере для тех, кто не боится трудностей. Да, там не используется VHDL [5], поле программирование контроллера весьма ограничено по строкам, но для людей увлеченных этот «симулятор работы» подойдет как нельзя кстати.

Также его можно использовать для обучения детей в плане понимания алгоритмов и логики, а по отзывам игроков в Steam от SHENZHEN I/O до программирования и мигания лампочкой «ардуиной» — один шаг. Если затянет, конечно.

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

Механика игры не ограничена написанием трех строчек кода. В дальнейшем можно соревноваться с другими пользователями в уровне оптимизации, энергопотребления и стоимости конечного спроектированного в игре продукта, т.е. самостоятельно ставить перед собой челеджи. Использовал четыре контроллера, когда можно ограничиться тремя? Добро пожаловать к верстаку!

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

Фактически, SHENZHEN I/O заслуженно сравнивают с более хардкорным проектом 2015 года под названием TIS-100 [6], который был создан тем же разработчиком, который порадовал нас SHENZHEN I/O. В TIS-100 порог вхождения еще выше, что подтверждают комментарии Steam:

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 15

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 16

Понятно, что создатель игры нацелился на более широкую, если это можно так назвать, аудиторию. Во всяком случае, программирование контроллеров на коленке пугает не так, как превью-скриншоты TIS-100:

SHENZHEN I-O — новый симулятор программирования микроконтроллеров - 17
TIS-100

Игра SHENZHEN I/O требует выдержки и терпения. С первых же минут она наотмашь бьет игрока «бревном жестокой реальности» по лицу, но не настолько сильно, чтобы не попытаться в нее вникнуть. Легко не будет. Не будет красочных кат-сцен, возможности играть лежа на диване или «огроблять корованы». Но будет возможность потренировать свой мозг [7] и попробовать что-то новое.

Стоит ли SHENZHEN I/O своих денег? Однозначного ответа на этот вопрос нет. Но если у вас есть тяга к созиданию, преодолению трудностей и решению задач в свое удовольствие — да, стоит.

Автор: ragequit

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/igry/198258

Ссылки в тексте:

[1] SHENZHEN I/O: http://www.zachtronics.com/shenzhen-io/

[2] на цифры от SteamDB: https://steamdb.info/app/504210/graphs/

[3] собственный раздел на Reddit: https://www.reddit.com/r/shenzhenio/

[4] в закрепленной теме: https://www.reddit.com/r/shenzhenIO_roadmap/

[5] VHDL: https://ru.wikipedia.org/wiki/VHDL

[6] под названием TIS-100: http://store.steampowered.com/app/370360/

[7] мозг: http://www.braintools.ru

[8] Источник: https://geektimes.ru/post/281380/