Title: Exapunks
Author: Viva Calman
Date: 2018-11-26 13:12:14
Correction code: 161400526654832

Воспользовавшись скидкой, доставленной "Черной пятницей", я наконец то стал обладателем недавно вышедшей игры Exapunks, от создателя офигенных TIS-100 и Opus Magnum — Zachtronics. Если честно, ожидал, что возьму ее не раньше новогодней распродажи, однако, обстоятельства распорядились иначе, нетерпение оказалось сильнее, а деньги на игру каким-то чудом нашлись в тот момент, когда это потребовалось сильнее всего. Осталось только весь комплект игр прихватить на GOG и радоваться. (Я последнее время стараюсь не дублировать зазря игры на разных сервисах, но кое-что мне хотелось бы иметь DRM-free)

Вернусь к самой игре. Сюжет тут прост — нас жрет киберзараза, под названием Phage, которая превращает организм в набор электронных компонентов. Нет, не превращает в киборга, просто рандомные узлы, без всякой координации между ними. Что-то типа того, что было в Tetsuo: Iron Man, только куда более бесполезно в практическом плане. И да, при этом phage каким-то чудом может взаимодействовать с нервной системой человека.

Лекарства от болезни нет, есть, как я понимаю, лишь препараты, замедляющие процесс заражения и облегчающие при этом жизнь. Самой практичной врачебной рекомендацией является ампутация зараженной конечности. Ну и чтобы все было совсем плохо — лекарство дорогое. А денег у нас нет. В начале игры нам предлагают заняться чем-то типа OCR, вбивая в форму данные из чеков. Платят по десять центов за чек. Доза лекарства стоит семьсот долларов. Доза нужна каждый день. Все очень плохо.

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

Так как выбора у нас нет, мы соглашаемся.

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

Сама игра ведется вот в таком вот IDE, где есть секция кода, секция для задания и скажем так, экран визуализации, информация на котором не менее важна для игрового процесса, чем само задание.

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

Так вот, про хакерство. Первые три или четыре задачи — чистый туториал, практически полностью его можно копипастить из Zine — внутриигровых хакерских журналов, которые, впрочем, валяются в папке игры в виде PDF и для аутеничности их можно даже распечатать (что я и сделал). Копипаст — вполне разрешенный инструмент в туториале, если бы не одно "Но". Да, правильно догадались, это лидерборды.

У меня получалось примерно так. Сделал задачку самым очевидным образом. Грязно запихнул все в один цикл, проверка условия в каждой итерации, самый примитивный код, который только может придти в голову человеку, который способен разложить задачу на последовательность элементарных операций с применением заданных ограничений. Никаких сверхъестественных вывертов. Запустил, прошел все итерации верификации решения. И получил результат 407 циклов. Уже было расслабился, мол задача выполнена, тем более это же туториал, чего тут напрягаться? Но тут мне в нос суют лидерборд, где у двух человек из моих стимовских френдов — решения на 180 с копейками циклов и на 143. Некоторое время я офигеваю, Потом начинаю ковыряться в коде, выдумывать новые алгоритмы, пытаться более эффективно ходить по циклам. Постепенно результат улучшается.

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

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

Туториал тут простой, дающий основы управления EXA-ми, а вот последующие задачи куда более разнообразны. От взломов банков, до взломов онлайн-игр. Заданий много, задания разные, задания сложные. Мне кажется, полное прохождение игры может занять не день, не два, не неделю даже, особенно если стремиться к перфекционизму по производительности. Долгая игра.

Хорошая игра.

А Zin-ы я распечатал. Так гораздо интереснее играть.

^HOME