По запросу: игры для программистов. Редактируем реальность и дружим с котами
Со стороны программирование может показаться далеко не самым расслабляющим занятием. Порой специалист вынужден часами решать сложные задачи или искать в огромном коде небольшие ошибки, способные полностью сломать программу. Но для многих азарт от погони за результатом и удовольствие от решённой проблемы стоят того, чтобы поднапрячь мозги.
Всегда хотели попробовать себя в программировании, но боялись высокого порога входа? Не беда! В очередном выпуске рубрики «По запросу» мы рассказываем про пазлы, завязанные на программном коде и логике.
while True: learn()
Год выхода: 2018
Платформы: PC
while True: learn() рассказывает о нелёгких буднях айтишника-фрилансера, чей кот разбирается в программировании гораздо лучше хозяина. Соединяя блоки с разными процессами, главному герою предстоит выполнить множество заказов — от анализа оценок школьных экзаменов до постройки автомобиля с автопилотом. А конечная цель: создать переводчик с кошачьей речи на человеческую, чтобы найти общий язык с хвостатым гением.
while True: learn() помогает игроку разобраться в принципах машинного обучения. Увлекательный игровой процесс сочетается с экскурсом в историю методов работы с искусственным интеллектом: от экспертных систем и вплоть до нейросетей. А заодно, используя головоломки для наглядности, while True: learn() вкратце показывает разницу между ними. Если вам нравятся умеренно сложные пазлы, благодаря которым ещё и можно немного разобраться в нейросетях — вам сюда.
Screeps
Год выхода: 2016
Платформы: PC
В Screeps игрок управляет колонией геометрических фигур, расположенной на глобальной карте в большом онлайн-мире. Для выживания колонисты должны добывать ресурсы, торговать, отстраивать инфраструктуру и воевать — то есть заниматься привычными для жанра RTS делами. Вот только управлять всеми этими процессами приходится с помощью команд на JavaScript, причем игра не поясняет основа языка.
Чтобы разобраться в Screeps, нужны хотя бы базовые навыки JavaScript или опыт использования высокоуровневых языков вроде C#. Ну и, конечно, будьте готовы подолгу сидеть на профильных сайтах вроде StackOverflow в поисках способов претворить задуманное в реальность. А тем, кто хочет играть хорошо, придётся придётся искать ещё больше, ведь от качества написанного кода напрямую зависит эффективность использования единиц CPU — времени, которое сервер готов потратить на выполнение команд игрока. Поэтому Screeps — не столько забавное развлечение, сколько способ посоревноваться в навыках алгоритмизации.
Human Resource Machine
Год выхода: 2015
Платформы: PC, Mac, Nintendo Switch, Wii U, Android
В этой игре от создателя World of Goo и Little Inferno нужно составлять инструкции для офисных клерков, сортирующих кубики с разными числами. Пожалуй, из всего списка она лучше всего подойдёт для начинающих: для прохождения достаточно хорошо понимать английский язык, чтобы правильно читать названия команд-операторов. Суть самих же команд довольно проста, да и соединяются они благодаря визуальному интерфейсу очень просто. Разработчики тщательно объясняют суть каждого задания и рассказывают, почему в программировании важны такие нюансы, как, например, комментирование кода.
SHENZHEN I/O
Год выхода: 2015
Платформы: PC, Mac
О Shenzhen I/O не стоит даже думать, если у вас нет хоть сколь-нибудь серьёзного опыта программирования: писать код придётся не на привычных многим языках, а на разработанном для игры ассемблере. Потому что здесь вы занимаетесь не программами, а созданием микроконтроллеров. То есть компьютеру придётся объяснять, как выполнять самые, казалось бы, базовые (и вместе с тем сложные) задачи — например, мультиплексирование (https://ru.wikipedia.org/wiki/Мультиплексирование). Кроме того, для нормальной игры важно досконально изучить руководство (на несколько десятков страниц) по использованию внутриигрового ассемблера и программированию контроллеров, и даже в нём описаны далеко не все нюансы.
Помимо прочего, Shenzhen I/O радует на удивление интересным сюжетом и хорошим чувством юмора, но насладиться им сполна смогут только самые искушенные в пазлах игроки — остальным лучше начать с чего попроще.
Hacknet
Год выхода: 2015
Платформы: PC, Mac
В Hacknet главному герою предстоит расследовать гибель знаменитого хакера, взламывая сервера и продираясь через сотни строк информации. Разработчики из Team Fractal Alligator отлично поработали над эстетикой: в интерфейсе используются реальные UNIX-команды, а сама игра довольно правдоподобно имитирует использование терминалов. Здесь пригодится опыт работы с командной строкой, умение правильно выбрать файл для удаления или переименования (это важнее, чем кажется!) и другие айтишные мелочи. Главный минус в том, что разнообразным или хитроумным местный игровой процесс не назвать: для того, чтобы что-то взломать, достаточно лишь выбрать правильный порт и замести за собой следы.
Infinifactory
Год выхода: 2015
Платформы: PC, Mac, PS4
В Infinifactory нужно с помощью логических блоков контролировать производственные линии на заводе. Проще говоря, делать конвейеры, доставляющие грузы из точки А в точку Б, настолько оптимальными, насколько это возможно.
В этот раз читать отдельный мануал, чтобы разобраться, что к чему, не придётся; на первый взгляд, здесь вообще нет ничего сложного. Но базовые представления о программировании, как и небольшой курс математической логики, всё равно пригодятся: всё-таки вы будете строить огромные цепочки из логических операторов, да ещё и со своей спецификой. Вдобавок в Infinifactory на кону стоит гораздо больше, чем в остальных проектах. На уровнях регулярно попадаются тела незадачливых инженеров, у которых так и не получилось выполнить сложные задачки владельцев этой огромной фабрики — инопланетян-индустриалистов.
Quadrilateral Cowboy
Год выхода: 2015
Платформы: PC, Mac
Quadrilateral Cowboy — головоломка о том, как три подруги-взломщицы учатся грабить банки, поезда и даже спутники на околоземной орбите. Помогает им в этом не грубая сила или ловкость, а интеллект: главным оружием игрока здесь станет переносная дека, как у хакеров из Shadowrun, и умение правильно подбирать команды для вскрытия кодовых замков, камер и прочей электроники. Например, в арсенале героев будет снайперская винтовка с дистанционным управлением: с помощью скриптов её нужно навести на цель и подобрать правильный момент для выстрела. Небольшими уровнями и хитрыми задачками игра напоминает Portal, только как если бы портальной пушкой пришлось управлять с помощью программного кода.
Autonauts
Год выхода: 2015
Платформы: PC
Стратегия, где игрок управляет роботами, которые строят колонию на процедурно-сгенерированной планете. Милые машины, похожие на старый пылесос или ходячий радиатор, нужно научить рубить дрова, собирать камни и копать ямы с помощью конкретных команд: например, собрать столько-то брёвен или посадить что-нибудь на определённой клетке. Хоть местный язык прост и понятен, командовать подопечными всё ещё нелегко. Нужно учитывать множество нюансов: например, грузоподъёмность робота, площадь выполнения команды в клетках и циклы поведения. Попутно нужно заботиться о благополучии колонистов-людей, производя для них пищу и одежду.
Else Heart.Break()
Год выхода: 2015
Платформы: PC, Mac
В Else Heart.Break() парня по имени Себастиан пригласили переехать в город Дорисбург, чтобы устроиться на работу. После прибытия ему предстоит познакомиться с местными хакерами, найти себе девушку и разобраться в себе — а заодно и в окружающем мире, который далеко не так прост, как кажется.
Хотя игровой процесс во многом состоит из прогулок Себастиана по городу, болтовни и чтения логов, игра не просто так попала в подборку. Главный герой способен взломать и отредактировать на свой вкус почти каждый терминал в городе — игровые автоматы, лифты, двери, компьютеры. Порой выполняемый код может даже изменить облик мира в целом: правильными командами можно запросто остановить дождь или переместить целое здание. Разбираться в программировании для прохождения не обязательно: весь код не только написан на несложном языке, но и заранее прокомментирован. Так что вам останется лишь понять, как использовать всё это богатство возможностей себе на пользу.
А какие пазлы, завязанные на программировании, нравятся вам? Может, мы забыли включить в подборку что-нибудь выдающееся? Расскажите в комментариях!