Игры в компьютер. Обзор игр, которые не только развлекут, но и обучат важным навыкам
Если ты читаешь эти строки, у меня для тебя хорошие новости: ты пока еще не умер от сам-знаешь-какого вируса! Из плохих новостей — тебя, скорее всего, уже попросили самоизолироваться и соблюдать карантин, работая из дома. Сидеть в четырех стенах невыносимо уныло, поэтому, чтобы не страдать от скуки, самое время размять мозги интересными задачками. Тем более что у Сулхака для тебя отличный список!
Прежде чем перейти непосредственно к обзорам, должен предупредить тебя о паре вещей. Здесь точно не будет «топовых», масштабных игр с огромными бюджетами. И вовсе не потому, что я их по каким-то причинам не люблю. Просто, как правило, такие игры предназначены для массовой аудитории. А ожидать от среднестатистического геймера продвинутых знаний в области информатики и компьютерных технологий все-таки не приходится.
Поэтому игровые механики таких популярных игр сознательно упрощаются, чтобы потенциальный потребитель, столкнувшись с непонятными для него вещами, лишний раз не впадал во фрустрацию и не расстраивался. В худшем случае такой подход вырождается в примитивное Press X to hack. Рискуя навлечь на себя гнев скрипт-кидди (для которых подобное положение вещей представляется вполне естественным), я все же исключил такие проекты из подборки Сулхака.
Однако это не значит, что далее тебя ждут исключительно «хардкорные» игры. Я постарался собрать сбалансированный список, который был бы интересен программистам и хакерам с разным уровнем подготовки. Ключевой момент — хоть какие-то базовые знания потребуются в любом случае. «Первому игроку приготовиться!»
MHRD
- Разработчик: Funghisoft
- Дата выхода: январь 2017 года
- Языки: только английский
- Цена: 250 рублей (Steam)
- Где купить: Steam, itch.io
Об этой игре мне уже напоминали подписчики в комментариях. Действительно, оформленная в ретростилистике, MHRD предлагает игроку примерить на себя роль инженера — разработчика цифровой логики и даже собрать полноценный 16-битный процессор (в качестве такого своеобразного «финального босса»). Вне всяких сомнений, создатели игры вдохновлялись историей компаний — пионеров Кремниевой долины (тут даже есть несколько не самых очевидных, но забавных шуточек о семидесятых).
MHRD сознательно выводит за скобки структуру и принцип действия транзистора — ключевого элемента любой сегодняшней цифровой схемы. Если физика процесса, равно как и перемещение дырок и электронов в полупроводниках тебя мало интересуют, смело можешь ставить плюсик игре. Вместо этого MHRD концентрируется на уровне конкретных элементов — вентилей И, ИЛИ, НЕ и прочих.
Придерживаясь логики изложения многих учебников, игра последовательно проводит тебя от базовых операций к блокам мультиплексора и триггера, а от них — к дешифратору команд, регистрам и АЛУ, ключевым элементам процессора. При этом MHRD лучше обычных учебников благодаря интерактивности: каждую схему предстоит не только синтезировать из уже готовых блоков с помощью внутриигрового HDL (Hardware Description Language), но еще и дополнительно верифицировать — успешно прогнать через набор тестов.
Игра обладает минималистичным интерфейсом и практически полностью текстовая. Рассчитывать на графическое представление цифровых вентилей на экране тут не приходится. Вместо этого для большего погружения в процесс и эпоху игроку предлагается использовать бумагу и карандаш и чертить схемы по эту сторону монитора. И поверь, на деле это гораздо увлекательнее, чем звучит на словах (рекомендую бумагу-миллиметровку и карандаш с мягким стержнем для наилучшего результата).
Прохождение MHRD отлично сочетается с чтением какой-нибудь литературы о цифровых схемах. Можешь, кстати, начать с цикла статей в нашем журнале! В самой игре подсказок и пояснений немного, встроенной справки тоже нет, поэтому полностью пройти игру без посторонней помощи сможет разве что разработчик на ПЛИС или тот, у кого соответствующий курс был недавно в учебной программе.
Реиграбельность и дополнительный интерес обеспечивает внутренний рейтинг, который учитывает «стоимость» каждой схемы в логических элементах. Порой оптимизация решения представляет собой куда более сложную задачу, так что поломать голову тут есть над чем. Особое удовольствие — найти минимальную схему для финального варианта процессора. Не будем портить сюрприз, но там точно есть чему удивиться!
Если говорить о минусах игры, то их немного и существенными их назвать сложно. Да, тут нет никакого звукового сопровождения, за исключением мерного гула вентиляторов и клацанья механической клавиатуры (но музыку ты всегда можешь подобрать свою). Сюжета и персонажей в MHRD тоже практически нет, хотя для головоломки это, наверное, и не критично.
На мой взгляд, основной недостаток игры в том, что почти все схемы тут стандартные, классические. А ведь на цифровой логике можно собирать не только компоненты центрального процессора, но и куда более специфичные периферийные устройства. Было бы здорово увидеть в игре задания и с ними. Кроме того, в MHRD не хватает режима песочницы, где игрок мог бы экспериментировать с собственными схемами.
В списке игр от Сулхака, нет итоговых баллов и традиционного распределения по местам. Результат формулируется проще: можно эту игру рекомендовать или нет. И MHRD однозначно рекомендовать можно!
Silicon Zeroes
- Разработчик: PleasingFungus Games
- Дата выхода: сентябрь 2017 года
- Цена: 350 рублей (Steam)
- Где купить: Steam, itch.io
- Языки: только английский
На первый взгляд, у Silicon Zeroes и MHRD много общего. Действительно, снова игра-головоломка по мотивам цифровой схемотехники, снова стартап из Кремниевой долины и снова цель собрать центральный процессор. Однако при более близком ознакомлении оказывается, что сходства между двумя играми на этом заканчиваются и дальше идут сплошные различия. Рассмотрим их подробнее.
Во-первых, Silicon Zeroes — игра с симпатичным графическим интерфейсом. И цифровые блоки, и соединительные сигналы между ними тут имеют вполне наглядное визуальное представление. Рабочая область в каждом задании ограничена, но внутри нее игрок может самовыражаться свободно, и это приятно. Если суровые, аскетичные скриншоты MHRD тебя отпугнули, то этот момент точно порадует.
При этом сам интерфейс слегка разочаровывает. Создается впечатление, что его проектировали под мобильные платформы и сенсорное управление, на экране компьютера элементы выглядят несуразно большими и расположены слишком далеко друг от друга. И да, тут доступен режим песочницы.
Во-вторых, в Silicon Zeroes неожиданно есть персонажи, сюжет и даже некоторая производственная драма! Вместо того чтобы маячить едва уловимыми призраками где-то на периферии сознания, как в MHRD, здесь коллеги не только охотно делятся с тобой полезными сведениями, но и обсуждают происходящие внутриигровые события. Не то чтобы это было очень уж интересно, но всяко лучше, чем ничего.
Наконец, в-третьих, — и это ключевое отличие — авторы Silicon Zeroes решили отойти от традиционного представления цифровых блоков на основе булевой логики. Это достаточно важный нюанс, на котором стоит остановиться подробнее. Здесь входы, выходы и сигнальные линии на схемах оперируют не двоичными значениями (нулем и единицей), а числами вообще. Более того, ближе к середине игры вводится дополнительный внутриигровой «тип» — команда (код операции), который почему-то числом не является (но мы-то знаем, что это тоже число).
Причины такого решения понять, вообще говоря, трудно. Можно предположить, что создатели хотели избежать двоичного представления чисел и таким образом расширить целевую аудиторию за счет тех, кто умеет только в десятичное представление. На деле такое «упрощение» оказывает медвежью услугу — схемы в игре очень быстро перестают быть даже отдаленно похожими на «классические». Какую пользу может вынести для себя игрок в Silicon Zeroes — вопрос остается открытым.
Таким образом, как головоломка игра вполне имеет право на жизнь. Тем более что в определенный момент в схемах появляется дополнительный элемент сложности — задержка распространения сигнала. Его не было, например, в MHRD, и, наверное, подобную игровую механику стоило бы всячески приветствовать, но… Итоговый результат к реальному железу не имеет никакого отношения.
Рекомендовать Silicon Zeroes в качестве пособия по схемотехнике сложно. Вместо того чтобы рассказать об этом «как есть» или придумать оригинальную концепцию (как далее в TIS-100), авторы выбрали промежуточное решение и ввели дополнительный слой абстракций. Зачем — непонятно.
TIS-100
- Разработчик: Zachtronics
- Дата выхода: июль 2015 года
- Языки: английский, но руководство на русском
- Цена: 170 рублей (Steam)
- Где купить: Steam, GoG, itch.io, iOS
TIS-100 — игра уникальная во всех аспектах. Чтобы это понять, в нее даже необязательно играть, достаточно почитать отзывы, в которых профессиональные программисты делятся своими восторженными впечатлениями от самого процесса программирования. Это примерно будто дальнобойщик с двадцатилетним водительским стажем взахлеб всем рассказывает, как прошел его очередной рейс. Когда повторяешь что-то изо дня в день, даже интересные вещи быстро превращаются в рутину.
TIS-100 очень самобытна. Если попытаться словами описать игровой процесс, то наиболее близким будет: «это программирование распределенной параллельной системы на ассемблере». Но это как-то слишком длинно и малопонятно. Так что можно сказать просто: «Это потрясающе!» Да, так гораздо понятнее и лучше!
TIS-100 — игра-загадка, она и начинается-то с таинственного послания на полях документации к компьютеру непонятной архитектуры. Ключ ко всему содержится где-то там, в поврежденных ячейках памяти. Вот только добыть его неимоверно трудно. И это совсем не художественное преувеличение.
TIS-100 очень быстро учит игрока, что его приобретенные навыки программирования и сформированные парадигмы мышления здесь мало чего стоят. Лишними-то они, конечно, не будут, но многое придется переосмыслить. Ну действительно, как вообще можно что-то сделать, когда у тебя в распоряжении один регистр (окей, полтора — еще один без прямого доступа)? Оказывается, можно, и еще как.
TIS-100 вводит концепцию «нод-ориентированного программирования», где каждая отдельная нода представляет собой процессор с крайне ограниченными ресурсами. Память на пятнадцать ассемблерных команд — и ни в чем себе не отказывай. Хотя можно объединять ноды и перемещать значения между ними — но нужно строго соблюдать последовательность чтения и записи в порты обмена.
TIS-100, впрочем, идет дальше. Немного освоившись и решив первые несколько заданий, ты начинаешь уже видеть, как новая программа разбивается на ноды (а не функции или объекты!) и обрабатывает входной поток данных, резво перебрасывая промежуточные значения в портах обмена. Совместная работа нод гораздо быстрее и эффективнее. А что, если организовать параллельный поток и добавить еще нод?
TIS-100 в этот момент открывается с новой стороны. Поиск решения тут сам по себе увлекателен и способен растянуться на долгое время. Но процесс оптимизации решения – о, это интеллектуальное удовольствие сложно с чем-то сравнить. Оптимизировать можно сразу по нескольким параметрам — числу занимаемых нод, количеству инструкций и скорости выполнения программы. И каждое решение будет по-своему уникальным. Эта игра в состоянии быть сложной настолько, насколько ты захочешь.
TIS-100 — не самая дружелюбная к новичкам игра. С нее точно не стоит начинать знакомство с программированием. У нее достаточно примитивный интерфейс и нет музыкального сопровождения. Временами она может бесить. И способна сожрать кучу твоего времени. Но если по каким-то причинам ты выбираешь только одну игру из всего списка — бери TIS-100.
SHENZHEN I/O
- Разработчик: Zachtronics
- Дата выхода: ноябрь 2016 года
- Языки: английский и китайский
- Цена: 350 рублей (Steam)
- Где купить: Steam, GoG, itch.io
Первая в нашем списке игра о разработчиках не из Кремниевой долины и первая игра, действие которой разворачивается не в прошлом (и даже не в будущем), а в настоящем. Игроку предлагается примерить на себя роль инженера молодой китайской компании и принять участие в создании современных цифровых устройств.
Shenzhen I/O берет на себя непростую задачу и старается продемонстрировать игроку процесс разработки электроники практически на всех этапах. Все начинается с изучения внушительной подборки даташитов и мануалов «вымышленных» производителей микросхем, но при желании аналогии легко угадываются. Авторы игры кропотливо перенесли все детали подобных руководств, сохранив логику и структуру основных разделов. Порой документация выглядит просто пугающе реалистичной.
Далее идет выбор комплектующих. Как и в других головоломках подобного рода, тут предлагается не только найти решение, но еще и дополнительно оптимизировать его: по цене, энергопотреблению и прочим параметрам. Каждый компонент имеет вполне определенную стоимость в юанях, и руководство компании в деловой переписке никогда не упустит случая напомнить тебе, что устройство обязано быть дешевым, чтобы оказаться массовым. Очень, очень реалистично!
Наконец, можно разводить плату для устройства и программировать логику работы микроконтроллеров. И здесь Shenzhen I/O сильно выигрывает за счет своего комплексного подхода к моделированию процесса разработки. Грамотно сочетая в себе и схемотехнику, и программирование, игра наглядно показывает, как одну и ту же задачу можно решить разными способами: либо аппаратно, либо программно. Такой «фазовый переход» на границе кода и железа.
Shenzhen I/O покоряет своим разнообразием. Десятки компонентов, микроконтроллеры и микросхемы комбинационной логики, периферийные устройства — авторы смогли внутри игры воссоздать современную элементную базу, которая, с одной стороны, достаточно похожа на реальную, но при этом все же имеет занятные нюансы, чтобы развлечь и специалистов тоже.
Если ты уже успел сыграть в TIS-100 или MHRD и по каким-то причинам они показались тебе слишком однообразными, то Shenzhen I/O тебя приятно удивит. Однако если в TIS-100 для старта достаточно было прочитать лишь один мануал по ассемблеру и архитектуре, то здесь к документации придется обращаться постоянно. Аскетичность и минимализм — это точно не про Shenzhen I/O.
Впрочем, ей это и не нужно. Больше, лучше, быстрее — игра наполнена энергией и динамикой современной эпохи, бешено пульсирующим ритмом огромного мегаполиса и ежедневными интеллектуальными вызовами. Игра Shenzhen I/O однозначно заслуживает рекомендации Сулхака.
Human Resource Machine
- Разработчик: Tomorrow Corporation
- Дата выхода: октябрь 2015 года
- Языки: английский, русский и другие
- Цена: 360 рублей (Steam)
- Где купить: Steam, GoG, itch.io, iOS, Android
Первое, чем запоминается эта игра, — весьма необычный для головоломок сеттинг и антураж. Оформленная в мультяшном стиле, но темных тонах антиутопии, игра в равной степени производит несерьезное впечатление поверхностной сатиры и одновременно талантливого оммажа на оруэлловский «1984». Вдобавок где-то на подступах к городу здесь маячит армия машин, о которой обеспокоенно сообщает диктор на телевидении. Разработчик явно не стремился ограничить свою фантазию!
Для человека, хорошо знакомого с низкоуровневым программированием, HRM не станет откровением. Большинство игровых задач тут достаточно легко переформулировать в терминах языков ассемблера или С — а дальше остается только портировать решение, что вряд ли займет много времени. Игру вполне можно завершить за несколько часов, если не ставить перед собой цель выполнить все задания на оптимизацию.
Прохождение осложняется еще и неудобным интерфейсом игры. Даже максимальная скорость выполнения программы здесь оказывается чересчур медленной для некоторых финальных этапов, с наиболее заковыристыми реализациями. Кроме того, тут нельзя по-человечески редактировать код с клавиатуры — игроку требуется всякий раз перетягивать мышью команды и расставлять их в нужной последовательности.
HRM здорово бы выиграла от банальной возможности структурировать код, вынося отдельные куски в функции, — тогда ее можно было бы рекомендовать как минимум в образовательных целях. Вместо этого игроку предлагается писать «спагетти»-код, с высоким содержанием безусловных переходов в самые разные части программы. Если беспорядочные хитросплетения прыжков тут и могут чему-то научить игрока, то только тому, что так делать точно не стоит.
Из плюсов игры стоит отметить музыкальное сопровождение и хороший юмор разработчиков. Почти каждый брифинг перед заданием сопровождается неприкрытым стебом автора над корпоративными ценностями крупных компаний, государственным контролем, современным обществом потребления и разными неоднозначными аспектами программирования.
EXAPUNKS
- Разработчик: Zachtronics
- Дата выхода: октябрь 2018 года
- Языки: английский, но руководство на русском
- Цена: 435 рублей (Steam)
- Где купить: Steam, GoG, itch.io
После знакомства с EXAPUNKS мне сложно представить себе более «хакерскую» игру. Безумный сплав киберпанка и ретрофутуризма, круто замешанный на низкоуровневом программировании и получении контроля над чужими компьютерами, безошибочно отзовется в сознании любого, кто неравнодушен не только к информационным технологиям, но и к таким произведениям, как «Нейромант», «Матрица» или Deus Ex.
Для этого у EXAPUNKS подготовлен полный набор обязательных элементов, бережно расставленных в нужных местах сюжета для создания той самой киберпанковской атмосферы. Антиутопия, принцип high tech — low life? Есть. Шифропанки, отвергнутые обществом и ютящиеся в трущобах, зараженные загадочной болезнью? Есть. Искусственный интеллект, чьи истинные мотивы никому не известны? Есть. Черт побери, тут даже азам внутриигрового ассемблера и тонкостям взлома игрока обучают в формате выпусков подпольного журнала! Я считаю это просто сверхреалистичным моментом!
Нащупав в TIS-100 и Shenzhen I/O удачные механики «игры о низкоуровневом программировании», в Zachtronics не стали слепо копировать свои же идеи и придумали концепцию EXA — миниатюрных цифровых роботов, которые манипулируют данными и взаимодействуют с остальными компьютерными системами. Каждый EXA исполняет собственную программу и вполне самодостаточен. Но, как и прежде, реальная глубина геймплея открывается игроку при совместных действиях нескольких EXA.
Как результат, работа программы на игровом экране стала наглядной. Здесь это не просто перемещение абстрактных чисел из регистров в порт и обратно: EXA используют ссылки, путешествуют между серверами, похищают и фальсифицируют данные в пользовательских файлах. При этом сложность заданий и достаточно крутая кривая обучения остались прежними, так что фанаты «хардкора» в играх Zachtronics могут спать спокойно. Равно как и любители соревноваться решениями в рейтингах — разработчики убрали ограничение на количество строк кода для каждого EXA, но процесс оптимизации по-прежнему приносит огромное удовольствие.
Стоит ли играть в EXAPUNKS? Однозначно стоит. Единственное, если планируешь так или иначе попробовать все игры Zachtronics подобного плана, то, возможно, лучше все же проходить их в хронологическом порядке выпуска. И вовсе не потому, что они объединены какой-то общей вселенной или сюжетом. Просто после EXAPUNKS в TIS-100 и Shenzhen I/O хорошо видна некоторая бюджетность проектов. Безусловно, авторы тогда не могли позволить себе реализовать все имеющиеся идеи на должном уровне. Но успех первых игр и поддержка благодарных игроков сделали свое дело.
Как всегда с вами был Сулхак, спасибо что прочитали до конца! Только те кто дошли до конца смогут научиться хакингу!