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

Несмотря на опасность, что вновь возникнет спор относительно названия, я решил оставить его прежним, дабы сохранить преемственность. Можно воспринимать его как «игры для тех, кто имеет способность к программированию», или ещё как-нибудь в этом духе. Однако я полагаю, что вы читаете этот пост не ради рассуждений о семантике, потому перейдём к сути.

Infinifactory


image

Ещё одна игра от автора великолепного SpaceChem, с обзора которого начинался мой предыдущий пост. Теперь (фанфары и визги школьниц) — в 3D! В принципе, наличие третьего измерения — наиболее существенное отличие от предыдущей игры. Суть геймплея не подверглась особым изменениям: нужно брать детальки со входа, делать из них другие детальки и отправлять их на выход. Однако нельзя сказать, что Infinifactory сугубо вторична. Наличие гравитации, способы манипуляции с деталями — всё это создаёт совершенно новые задачи, не вызывая ощущения дежавю.


Отдельное удовольствие доставляет сюжет. Да, да, сюжет головоломки про создание конвейеров. Практически производственная драма… в космосе. Главного героя похитили могущественные, но довольно тупые инопланетяне, и теперь он работает для них за еду. Сюжет оказывает влияние на то, как именно называются и выглядят совокупности кубиков на входах и выходах конвейера. Думаю, вы никогда не сумеете изгладить из памяти миссию про изготовление китовых консервов. Ещё можно вспомнить прекрасный цинизм, с которым игра заставляет вас налаживать сборку камер-одиночек, полностью аналогичных той, в которой вы находитесь между миссиями. Впрочем, зачем я это пишу? Вы же наверняка уже бросили читать и пошли устанавливать игру.

Кстати, интересный факт: сходство с Майнкрафтом не случайно. Создатель Infinifactory — также автор старой малоизвестной игры Infiniminer, одним из идейных клонов которой когда-то стал Minecraft.

TIS-100




Игра того же разработчика, о которой на Хабре уже есть отдельная статья, но я всё равно напишу о ней своими словами, потому что я люблю писать, а игра того заслуживает. Если коротко, это симулятор примитивного многопоточного ассемблера, на котором вам по сюжету приходится писать разнообразные хеллоуорлды. Возможности его бедны, а в каждую ноду помещается очень ограниченное число строк, из-за чего у программиста возникают трудности, которые (я надеюсь) вряд ли встретятся в реальной работе. А чтобы жизнь не показалась мёдом, общаются ноды между собой асинхронно. Из этих трудностей рождается суть игры: ни одна нода не может целиком реализовывать сколь-нибудь сложный алгоритм, потому приходится разделять его между нодами, иногда жестоким и противоестественным способом.


Да, и там тоже присутствует сюжет. Сюжет игры про многопоточный ассемблер. Это звучит даже забавнее, чем старая шутка про Tetris: Story Mode. Суть его в том, что главному герою остаётся в наследство винтажный на вид девайс с очень странной архитектурой. Программируя его, герой восстанавливает данные из битых нод и постепенно узнаёт его историю — откуда он взялся, для чего он создан. И надо сказать, это не то знание, знакомство с которым проходит бесследно…

Human Resource Machine


image

А вот ещё один ассемблер. Обманчиво простой, с мультяшной графикой и «программированием мышкой». Наверное, не один ребёнок, получив в подарок «детскую развивающую» игру, в ярости сломал об колено клавиатуру, пытаясь оптимизировать решение какой-нибудь дебильно простой задачи, чтобы оно выполнялось на два такта быстрее.


На самом деле, если ребёнок не перфекционист, нацеленный на стопроцентное прохождание, то это действительно будет для него хорошей обучающей игрой. А, и ещё, если кому вдруг интересно, создатели Human Resource Machine — это те, кто сделал World of Goo.

Кстати, раз уж мы заговорили про обучающие игры…

MHRD


image

После таких низкоуровневых вещей, как ассемблер, почему бы не… опуститься на уровень ниже? MHRD — это игра про логические элементы, в которой игрок своими, можно сказать, руками, собирает из голых NAND полноценный процессор. Причём игра подводит его к этому плавно, без резких скачков сложности. На мой взгляд, прохождение этой игры нужно давать в качестве лабораторной работы к курсам типа «Архитектура компьютера».



«Сюжет» игры незамысловат, как в старом добром немецком кино: игрока нанимает на работу корпорация MicroHard, которая хочет завоевать рынок процессоров, или что-то в этом роде. Соответственно, пока она будет завоёвывать рынок, игрок должен собрать сам процессор. Делается это с помощью своеобразного «языке программирования», на котором описываются элементы и их связи. Однажды собранный элемент можно переиспользовать в дальнейших схемах, не описывая его каждый раз заново.

К сожалению, игре не хватило совсем немного, чтобы стать истинным бриллиантом. «IDE» подтормаживает, нет возможности интерактивно поиграть с собранными элементами. Игра не великолепна, но весьма хороша.

Hack'n'Slash


image

Порой игроки хакают игры, чтобы упростить себе прохождение. Но что насчёт игры, в которой хаки необходимы для прохождения? Hack'n'Slash начинается с того, что главный герой (сходство которого с Линком из Legend of Zelda, разумеется, совершенно случайно) находит странный меч, оканчивающийся USB-штекером. Тыкая этим мечом в разнообразные игровые объекты, он может изменять их свойства — например, самое банальное, установить свойству «здоровье» монстра значение «0».


В дальнейшем герой находит новые артефакты, делающие другие полезные вещи — например, показывающие collision boxes всех объектов на экране. А для победы над финальным боссом необходимо модифицировать скрипты самой игры, написанные, кстати, на языке Lua. Честно говоря, графика меня немного вымораживает, но с геймплейной точки зрения игра весьма любопытна.

И раз уж мы заговорили о графике…

Untrusted —or— the Continuing Adventures of Dr. Eval


image

Раз уж мы заговорили о графике, то у Hack'n'Slash есть брат близнец, который приятнее мне по трём причинам. Во-первых, он бесплатный и опенсорсный. Во-вторых, он в ASCII-графике, что согревает моё сердце как человека, прошедшего оригинальный Dungeon Crawl. И в-третьих, у него под капотом JS, а не Lua — тут, конечно, дело привычки, но первый для меня уже роднее русского, а со вторым я имел дело лишь при написании мелких модов к Don't Starve.



Игровой процесс похож на то, что происходит в самом конце Hack'n'Slash: игрок получает доступ к самому коду игры и может модифицировать отдельные его участки, что необходимо для прохождения. Игра остроумна и прекрасна; единственный недостаток её в том, что она слишком короткая.

Что ж, пожалуй, на этом всё. До встречи в третьей части, ещё через четыре с половиной года.

P.S. Предвижу, что в комментариях упомянут Shenzen IO. Мне известно о её существовании, но, к сожалению, я не успел ещё в неё поиграть, а потому не стал писать о том, чего толком не знаю.

Комментарии (72)


  1. Devagleo
    25.08.2017 11:50
    +3

    Помню, играл в Human Resource Machine и много друзей подсадил, даже тех которые не увлекались программированием. Сидели на парах, на листках составляли код и потом обсуждали его. Игра дает хорошее представление о низкоуровневом программировании. Узнаешь как на самом деле устроены циклы и ветвления.


    1. Sirion Автор
      25.08.2017 12:04
      +1

      А потом эти люди устроятся си-решёточниками и будут из управляющих конструкций признавать только if и goto =)
      Добавил смайлик, чтобы было понятно, что это шутка.


      1. LoadRunner
        25.08.2017 12:14

        Хе-хе. Вы не поверите, какой я код пишу на C# (исключительно для себя, ничьи глаза не плачут от вида той лапши) :)
        Я не программист, поэтому не знаю, как без goto и стека сделать нормальный (и производительный) поиск с возвратом.


        1. Sirion Автор
          25.08.2017 15:54
          +2

          Возможны побочные эффекты
          image


          1. LoadRunner
            25.08.2017 16:15

            Танцующий Линк для меня всё же сложный, поэтому я готов к последствиям.


    1. leshabirukov
      25.08.2017 15:38
      +1

      В HRM редактор неудобный, хорошо что экспорт\импорт в текст есть. Задания на мой вкус простоваты (ага, написано от 3 до 6 лет, а я за две недели собрал). Большой плюс — арт от Kyle Gabler, саундтрек теперь у меня в фонотеке вместе с World of Goo и Little Inferno.


      1. LoadRunner
        25.08.2017 15:42
        +1

        Именно что на Ваш вкус. Большинство игроков — не программисты, высшую математику тоже вряд ли знают. Обычно — ещё в школе учатся.
        Ну и да, задачи решить легко. Сложнее перевести в алгоритм и реализовать его. А чтобы оптимизировать его и выполнить достижения — вот тут уже ад начинается.


        1. leshabirukov
          25.08.2017 16:55

          Да претензия даже не к простоте, а к их, заданий, шаблонности. А в копилку игр вот ещё bug brain. Жаль только заброшена.


          1. LoadRunner
            25.08.2017 17:04

            А в чём шаблонность? Для меня там прослеживается прогресс от простого к сложному с применением уже выученных методик.
            Сначала туториальные задания, обучающие новым командам, а потом их комбинирование. Ну и их так мало, поэтому ими можно решить малый круг задач и не умереть от старости, пока пишешь код мышкой\пальцем.


            1. leshabirukov
              25.08.2017 18:22

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


              1. Sirion Автор
                25.08.2017 23:34
                +1

                Мне с точки зрения оптимизации понравилась задача про разложение на простые множители. Если в более простых задачах оптимизация зачастую сводилась к угадыванию одного-единственного авторского решения, то тут был простор для фантазии. В итоге лучше всего оказалось следующее решение: сначала вручную составил таблицу простых до девятнадцати включительно. Потом каждое входящее число проверялось на равенство простым числам от 11 до 19, в случае равенства — сразу же отправлялось на выход. Если этот трюк не срабатывал, то уже стандартная факторизация с заранее вычисленными простыми.


                1. LoadRunner
                  26.08.2017 09:48

                  А почему угадывание? Скорее, там просто авторы задачи нашли какое-то своё решение, показавшееся им наиболее оптимальным и включили его результаты в достижения. И какое удовольствие найти решение, которое лучше, чем в условиях.


              1. LoadRunner
                26.08.2017 09:45

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


  1. Biga
    25.08.2017 12:03

    Спасибо за обзор!
    А можете посоветовать игры «для программистов» под iOS/Android? Может быть какие-то из уже упомянутых есть под мобильники?


    1. Sirion Автор
      25.08.2017 12:06

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


    1. Bolterer
      25.08.2017 12:52
      +1

      Под андроид есть SpaceChem из первого поста.


    1. vdvvdv
      25.08.2017 12:52

      Hacked


    1. Disasm
      25.08.2017 12:53
      +1

      SpaceChem есть под Android, насколько я помню.


    1. lorc
      25.08.2017 15:10
      +1

      Да, я прошел Human Resource Machine как раз на мобильнике.


    1. evseev
      26.08.2017 07:33

      На iOS есть Swift Playgrounds. Как ни трудно догадаться для изучения Swift.


  1. GunBlade
    25.08.2017 12:27
    +3

    Если «для», а не «про» программистов, то Factorio тоже стоит упомянуть!


    1. slovak
      25.08.2017 17:44

      Кстати, там тоже моды на Lua.


  1. LoadRunner
    25.08.2017 12:35
    +2

    Вспомнил, какой игры ещё не хватает в списке (уже не первый раз про неё пишу в комментариях к подобным статьям): Great Permutator.
    Сам автор даже писал о ней на Хабре.
    И даже в комментариях к первой части :)


    1. Sirion Автор
      25.08.2017 15:55

      Вот никак до неё не доберусь, не иначе как из-за диавольских ухищрений.


  1. Disasm
    25.08.2017 12:43
    +4

    почему бы не… опуститься на уровень ниже?

    Да, давайте: http://www.zachtronics.com/kohctpyktop-engineer-of-the-people/
    Ну и Robot Odyssey заодно.


    1. Sirion Автор
      25.08.2017 16:45
      +1

      Ну и Robot Odyssey заодно.

      Пресвятой Ктулху, какая аццкая жесть о_О
      Кажется, я знаю, чем скоротать долгие осенние вечера.


  1. Sartor
    25.08.2017 13:18
    +3

    А как же Factorio? Это номер 1 должна быть. Может автор про неё не знает?


    1. Sirion Автор
      25.08.2017 13:22
      +1

      Автор абстрактно знает, но не играл.


      1. ArsenAbakarov
        25.08.2017 20:22

        Я рекомендую, очень грамотная игра


        1. Sirion Автор
          25.08.2017 20:36
          +1

          У меня просто аллергия на Early Access'ы.


          1. AllexIn
            26.08.2017 09:20
            +1

            Никакой она не Early Access.
            Она уже пару лет как полноценная игра.


          1. ftvkyo2011
            26.08.2017 14:37

            Она уже давно в очень хорошем и играбельном состоянии. А ее разработчики каждую неделю пишут «Пятничные факты» и охотно отвечают на вопросы пользователей реддита.


        1. arteast
          26.08.2017 03:57

          Игра интересная, пока проходятся миссии, а стандартная игра очень уж однообразная — вторая половина игры сводится к часам простоя, когда игроку по сути нечего делать, кроме как ждать и обустраивать новые и новые поля по сбору ресурсов (и километры фабрик по производству электронных плат). 1-2 раза можно сыграть, пока не знаешь, что там за странные технологии дальше, и разок в death world запилить (ну и по желанию ачивки полачить).


          1. mayorovp
            26.08.2017 09:49

            Если вам приходится чего-то ждать кроме как в самом начале игры — значит, вы недостаточно автоматизировали производственные процессы. :-)


            1. arteast
              26.08.2017 11:27

              Ждать технологии, и в конце ракету. Может быть, я еще не умею правильно строить, но какой-нибудь Kovarex Enrichment Process стоит очень дорого и ждать его долго. Сейчас хочу взять сразу 4 ачивки про "Lazy bastard", "Steam all the way", "Raining bullets", "Logistic network embargo", поэтому всюду транспортные ленты крутятся — грусть-тоска (хорошо, что можно игру пустить на заднем плане и оно продолжает работать).


              1. mayorovp
                26.08.2017 11:36

                Сколько у вас лабораторий технологии двигают? Я обычно 12 строю и технологии исследуются очень быстро.


                Ракету тоже можно быстро построить если сборщиков достаточно. С 20 сборщиками у меня первая цепочка ресурсов собралась пока я третью достраивал.


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


                По поводу Kovarex Enrichment Process согласен — накопление урана-235 ускорить трудно. Но тут помогает заняться чем-нибудь еще.


                1. arteast
                  27.08.2017 00:09

                  у меня 10. Проблема их прокормить старшими науками — нужно много красных и синих "плат", которое в свою очередь выжирает огромное количество зеленых, которое в свою очередь требует огромного количества как железа, так и меди.


                  1. mayorovp
                    27.08.2017 09:39

                    Ну, вот и занятие на то время пока технология открывается — развивать мощности по производству "плат" :-)


  1. Tufed
    25.08.2017 13:57

    Space Engineers позволяют писать скрипты на С# для управления станцией/кораблем и их модулями, кораблями со связью и т.д. Достаточно интересно с 3D графикой, физикой, и т.д. программировать поведение дронов добытчиков или разведчиков. Внимание, игра в бете уже давно, сырая и проблем у неё хватает.


    1. Sirion Автор
      25.08.2017 23:36

      А она вообще стремится релизнуться, или там всё постепенно глохнет?


      1. FeNUMe
        26.08.2017 17:49

        Не особо, разрабы пошли по пути бесконечного расширения возможностей, вместо реализации полноценного игрового продукта. Но игра все равно шикарна если вы любите космос, астрономию, физику и программирование. Могу порекомендовать ютуб-канал о решении разного рода астрономических задач, создании автоматических роботов и вообще разных экспериментах в игре. Заодно может заинтересует еще одна игра с программированием — From The Depth, конечно если не слышали.


  1. amarao
    25.08.2017 14:08
    +1

    Между infinifactory и TES проходит грань, как мне кажется. infinifactory — игра, TES — какая-то мрачная часть работы, когда зарываешься в strace'ы по самые уши. Infinifactory — восторг, а TES я сдал обратно, ибо на игру это не похоже.


    1. Sirion Автор
      25.08.2017 15:25
      +1

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


    1. LoadRunner
      25.08.2017 15:44

      Зато можно играть в рабочее время и начальство не заметит. Будет думать — код пишешь и отлаживаешь.


  1. sterling239
    25.08.2017 15:48
    +1

    Еще есть царица и богиня игр — Factorio и вечные третьи геройцы


  1. aquamakc
    25.08.2017 16:21
    +1

    Если обратить взор на WEB, то можно упомянуть:
    Creeps — screeps.com
    MMO RTS с добыванием ресурсов, настраиваемыми специализируемыми юнитами и написанием скриптов к ним на языке похожим на JavaScript.

    CodeCombat — codecombat.com
    Образовательный проект в стилистике RPG. Поддерживается несколько языков. Лично я выбирал Python. Сделано в виде: локация — задача. От простого понимания линейной последовательности выполнения до сложных алгоритмов, сочетающих ветвления, выборки, циклы и т.д. Лично я дошёл до математических формул для рисования фигур. В комплекте РПГ`шные фичи, как прокачка персонажа. Есть «арены», где игроки стравливают своих персонажей и соревнуются у кого код круче.


    1. Sirion Автор
      25.08.2017 16:37

      А можно поподробнее про CodeCombat? Конкретно — про то, что даёт подписка, а что без неё недоступно. Не доверяю я этим фримиумам.


      1. aquamakc
        25.08.2017 16:47

        Лично я увидел только то, что в подписке больше локаций => больше задач и есть выбор персов, не только бесплатный «воин», но и «маг» или «лучник». Других различий не видел.


    1. artch
      25.08.2017 23:02
      +2

      В Screeps язык не «похож» на JavaScript, а является самым настоящим полноценным JavaScript. Runtime-серверы крутятся на Node.js и запускают скрипты игроков в виртуальной машине.

      Дисклеймер: я автор игры. Если захотите написать про нее обзор, могу выдать бесплатно ключик на Стим и 30 дней подписки :)


  1. FlashBlack
    25.08.2017 16:35
    +3

    Посмотрите еще такие игры: SHENZHEN I/O и Screeps, но это совсем не killer-time игры. Заставляют напрячься =)


  1. Sie
    25.08.2017 16:35
    +1

    Список игр шикарный, открыл Untrusted —or— the Continuing Adventures of Dr. Eval и просидел пару часов после работы. Огромное спасибо за статью.


  1. asmix
    25.08.2017 17:59

    Для фанатов PLC и FPGA на ведре есть таймкиллер Circuit Scramble


  1. Idot
    25.08.2017 18:46

    Искал на Стиме Hack'n'Slash наткнулся на Hack Run с командной строкой:



    1. Sirion Автор
      25.08.2017 18:50

      Проходил. Забавно, но совершенно из другой оперы. Игры в статье (то, что я называю «игры для программистов») — про конструирование либо изменение сложных систем. А Hack RUN — это длинная череда подборов паролей на основании тех или иных подсказок.


  1. Firfi
    25.08.2017 20:47

    Удивляет отсутствие Dwarf Fortress. По сложности с ней мало что сравнится.

    www.amazon.com/Getting-Started-Dwarf-Fortress-complex/dp/1449314945


    1. aquamakc
      25.08.2017 21:43

      Так не в сложности дело, а в элементах кодинга.


      1. Sirion Автор
        25.08.2017 23:37

        Ну, так-то кодить можно и в DF. Насколько я читал, механизмы там тьюринг-полны.


  1. miga
    25.08.2017 21:43
    +1

    Colobot!


  1. Wedmer
    25.08.2017 21:54
    +2

    Пошел искать Hack'n'Slash в стиме… Оказалось, что уже куплен.
    Иногда плохо иметь большую библиотеку игр и не иметь времени или возможности ее полноценно освоить.


    1. Sirion Автор
      26.08.2017 14:39

      Кажется, Hack'n'Slash выдавался нахаляву владельцам какой-то другой игры. Таким образом получить его можно было незаметно для себя.


      1. Wedmer
        28.08.2017 19:59

        Он был именно куплен году так в 2015м.


  1. evseev
    26.08.2017 07:47

    По-моему именно для программистов будет интересна игра на checkio.org. Что бы двигаться вперед вам нужно писать программы на Python и теперь еще и на JS. Вам предлагаются заковыристые задачки разной сложности. Для прохождения уровня нужно набрать определенное количество очков. Для этого вы можете решить несколько простых задач или меньшее количество сложных. После этого вы можете открыть задачи на соседних островах-уровнях. Прелесть в том, что задачи предлагаются разными людьми и они очень разные.


  1. vagran
    26.08.2017 11:51

    Fortresscraft evolved похожа на infinifactory.


    1. Sirion Автор
      26.08.2017 15:06

      Нехорошие у неё отзывы в последнее время, отчего так?


      1. vagran
        26.08.2017 18:45

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


        1. inkelyad
          29.08.2017 10:01

          Только не 'не позаботились'. Разработчик — всего один человек. Которой довольно цинично в своих стримах объяснял про соотношение время на разработку/увеличение продаж. А еще он время от времени вытаскивает на свет отзывы про игру 'дурная игра, играть скучно, делать нечего, контента нет, быстро надоедает'. И этов все от человека, наигравшего 1000+ часов. Да и дешевая она. Своих денег точно стоит.


  1. vagran
    26.08.2017 18:45

    del.


  1. perfect_genius
    26.08.2017 19:02

    Интересно, TIS-100 и Мультиклет знают друг о друге?


  1. Gwinbleind
    28.08.2017 09:28

    Многое из этого не видел, в основном знаком с играми только из первого поста. Из новья еще могу подсказать Gladiabots — игра с программированием логики роботов и драк на арене за ресурсы против AI либо других игроков. Знакомился с этим проектом на андроиде на стадии альфы.


  1. Optimus_990
    29.08.2017 09:07

    Вот что нужно внедрять на уроках информатики.


    1. Sirion Автор
      29.08.2017 10:02
      +1

      Вот, кстати, не уверен. По моему опыту, люди делятся на два типа. Одним интересно и голый паскаль ковырять, а другим программирование даже в самой-пресамой игровой форме неинтересно. Не знаю, существует ли промежуточный тип.


      1. LoadRunner
        29.08.2017 12:45
        +1

        Люди делятся на 10 типов: те, кому нравится программирование и те, кому нет.