— People are choosing to believe the guide even when it's obviously wrong
В сюжет я не вникал, но вроде как вы крутой бедный хакер (что??) с проблемами со здоровьем. Какой-то искусственный интеллект предлагает снабжать вас лекарством если вы будете взламывать для нее.
Взлом представляет собой программирование наноботов (EXAs, EXecution Agents) которые перемещаются по сети, читают, пишут и переносят данные, создают и убивают других ботов.
Типичные примеры взломов: скопировать данные из библиотеки, изменить рейтинг ресторана, изменить надпись на электронном дорожном знаке. Зачастую задания отдают бунтарством и анархизмом. Ни одно из решенных заданий не доставило мне сложностей. Особенности работы систем хорошо описаны и доступны в документации. Самое интересное начинается после решения задачи.
Дрочка на циферки
Для каждого решения есть статистика выполнения: число циклов (время выполнения программы), количество строк кода и активность ботов. И этими метриками можно меряться! В стиме показывают результаты ваших друзей (если у вас есть друзья) и статистику по всем игрокам. Для меня самый интересный показатель — число циклов. Я дрочу на него и стараюсь всегда попадать в топ.
Боты программируются на низкоуровневом языке.Есть прямые команды для выполнения боту (LINK 800
, COPY 1 X
, KILL
, HALT
). У бота имеется два регистра для чтения и записи и еще два для доступа к более продвинутым фичам. Один для работы с файлами и один для общения с другими ботами. Боты могут взаимодействовать с окружением, работать с файлами и внешними регистрами, создавать клонов и убивать других ботов. Есть набор примитивных математических операций. Боты могут общаться друг с другом через специальный регистр. Логическое ветвление осуществляется через прямые переходы к участкам кода (привет, GOTO, давно не виделись). В целом это все что умеют боты. Функционал скудный, но его достаточно, чтобы достичь поставленных целей, надо просто быть изобретательнее. Готовое решение можно экспортировать в гифку типа такой.
В какой-то момент хакеру дают задание взломать приставку типа геймбоя. После этого открывается доступ к ее программированию. Да-да, с помощью все тех же ботов, но с чуть расширенным функционалом. Я в это особо не лез, но на ютубе есть просто фантастические вещи типа сайдскрол шутеров и даже пасьянса! Программировать виртуальную консоль пока играешь в игру 🤯.
Есть еще уровни где можно соревноваться с другими игроками, арены. На арене, например, надо захватывать (путем записи в регистр) и удерживать зоны. Кто удержал дольше тот и победил. Но соревнуешься ты не с бездушной машиной, а с алгоритмами других игроков. Приходится продумывать универсальную тактику поведения. Разумеется, есть таблицы лидеров и можно посмотреть насколько ты круче других.
Когда я только начал играть, я ахуевал от того как можно сделать решение таким быстрым. Но постепенно я придумал всякие паттерны оптимизации, и даже дал им имена: «Убийца», «Обратный отсчет», «Сдвинутые параллельные циклы». Позже я заглянул на реддит по этой игре и обнаружил там похожие термины. Был приятно удивлен что нашел все основные методы оптимизации.
На работе я пишу аккуратный, масштабируемый, хорошо поддерживаемый код, где скорость работы не так уж важна. А тут, для меня она первом месте. Я готов принести в жертву всю красоту и идиоматичность ради одного сраного цикла, чтобы попасть в список топ игроков. Я стал одержим этими цифрами, как-то раз я потратил 4 часа чтобы сократить время выполнения на два цикла. И оно того стоило, ни разу не сожалею о потраченном времени. Если я когда-нибудь я попаду в топ по всем уровням, я внесу это достижение в свое резюме.
Для меня игра является некой отдушиной от современного корпоративного программирования, местом где реально приходится напрягать мозги и начав играть я не могу оторваться часами. К сожалению я не часто могу позволить себе такие трипы, но очень ими наслаждаюсь.
Добавляйтесь в друзья в стиме, будем меряться циферками.
Это игра, чтобы выгорать в свободное от выгорания время?
Могу посоветовать TIS-100. Игра от тех же разработчиков про многопоточный ассемблер. Ну и можно Shenzhen/IO еще вдогонку.
Могу также посоветовать Screeps. RTS для программистов)
Спасибо. Заинтересовало. Люблю такие игры :)
Дико рекомендую Opus Magnum. Игрушка от создателей Exopunks.
Только стилистика другая и ооочень красивые арты!
Zachtronics делают одни из самых злых игр. Проще всего вкатиться в opus magnum, а потом по желанию идти по всему листу релизов от них, везде будет дроч на цифры, оптимизация, 6 часов чтоб придумать альтернативное решение итд итп.
А там уж кому что интереснее с точки зрения атмосферы - псевдо ассемблер, псевдо кодинг железа или псевдо алхимия
Ну и в рекомендации - Human Resource Machine, Seven Billion Humans, SpaceChem
Вообще видимо пора из фронтендеров перейти на C++/Rust и жизнь наладится
Звучит интересно! Люблю такие игры про программирование. Играл в TIS-100, Human resource machine, robozzle, Hacked (там тоже можно внутри игры программировать свои игры).
блин. вот почитал пост, и купил shenzhen i/o. Теперь еще раз выгорать придется