Как стать автором
Обновить

15 игр, которые прокачивают логику, алгоритмы, ассемблер и силу земли

Время на прочтение8 мин
Количество просмотров102K
Всего голосов 98: ↑93 и ↓5+88
Комментарии98

Комментарии 98

Не могу не отметить одну замечательную восходяющую звезду игр для программистов: Turing Complete. В ней вы познакомитесь с "жанром" с NAND to X. Где вам предстоит последовательность задач с понимания работы простейших логических вентилей до компьютера со своим ассемблером. Успеете помучаться с программированием на опкодах. Очень круто прокачивает логику даже людям из не IT. Однако уточню: игра в раннем доступе и обновления(зачастую добавляющие/удаляющие элементы почти еждневно)

Ого, вышла в октябре 2021, свежак. Спасибо большое!
Спасибо за дополнение!

+ Pocket Robots Test Chamber

Спасибо!

спасибо, приобщусь.

спасибо за подборку

Opus Magnum и Shenzhen I/O

пробовал, классные

Пожалуйста.

Мне у Opus Magnum дизайн очень зашел, как пример нормальной логики в «фентези»-сеттинге.

Opus Magnum визуально очень классный.

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

Классная вещь.

Прочитав заголовок, сразу вспомнил игру, с которой еще в школьные годы начиналось мое становление как разработчика - Colobot.

Сколько времени я там провел за экспериментами и программированием ботов на почти-С++, даже и не знаю.

С тех пор она еще и в open-source перешла.

Спасибо, что поделились!
С тех пор она еще и в open-source перешла.

Ох, спасибо за новость! Надо скачать, понастольгировать. Шикарная была игра.

У, колобот, редактор кода там был так себе.

И мучатся с "ИИ" ботов можно было до бесконечности, добавляя фич и чиня баги.

Дополнительно замечу, что игры Tomorrow Corporation я скорее бы не рекомендовал в качестве игр для любителей логики и всего вот этого. Почему? Потому что они очень часто и совершенно намеренно используют максимально прямолинейный подход для оптимизации, и от этого производят совершенно дубовое впечатление. Например, как оптимально быстро решить задачу с циклами в Human Resource Machine? Написать её без циклов (т.е. тупо повторить шаги N раз) — и такое будет встречаться постоянно. Мне вот в HRM в конце концов надоело вручную "разворачивать" программу ради идеального по скорости выполнения.


А вот оптимизация выполнения алгоримтов в игрушках Zachtronics — наоборот, всегда хорошая и доставляющая много радости.


PS: Для джаваскриптизеров горячо рекомендую Bitburner: https://store.steampowered.com/app/1812820/Bitburner/

Спасибо, что поделились.

Zachtronics хитры тем, что они собирают данные по оптимизации со всех игроков и по нескольким параметрам. А Tomorrow Corporation, если я правильно поняла, из своей головы решили, что оптимально.
Так в HMR же можно написать программу в блокноте и затем вставить в игру. Разворачивание циклов это вполне рабочее решение, которое часто применяется при оптимизации, когда можно пожертвовать памятью для ускорения.

Конечно. И это было бы хорошим приемом, если б не повторялось постоянно. А в самой игре редактор к такому не очень располагает. Да, можно написать в блокноте — но если я буду писать в блокноте, то я тогда уж и игру не буду запускать, а напишу что-нибудь более полезное.


ЗЫ: ну и когда вы разворачиваете циклы (и любой другой синтаксический сахар) — вы не делаете этого вручную.

Ну как не делаем… Когда в начале 90-х писал демки для Спекки, то зачастую делал это вручную.

По JavaScript в который раз могу порекомендовать https://alexnisnevich.github.io/untrusted/

Она правда больше про нестандартные/неочевидные решения, а не оптимизацию и автоматизацию (хотя этого тоже есть немного).

А почему Infinifactory а не отлаженная прекраснейшая Factorio?

Factorio — это все же не игра про алгоритмы, а игра где можно прикрутить алгоритмы почти ко всему. Но можно и не прикручивать.

Ну так-то BABA тоже вообще не про алгоритмы.
Ну, если смотреть с точки зрения того, что в BABA задаешь условия (пусть и передвигая блоки), и этим прописываешь инструкцию к состоянию win, можно за уши притянуть эту игрулю к «про алгоритмы».
BIY уникальна тем, что там быстро появляются не только просто правила, но и мета-правила (т.е. правила, действующие на сами правила, TEXT IS FLOAT), и даже пара-правила (т.е. правила, действующие вне текущего уровня, LEVEL IS YOU). Пусть это и не про «алгоритмы», но и «массирует» те же аналитические отделы мозга, что и решение задач про алгоритмы.

Скорее придётся. Без нормальной автоматизации ракету сложно построить :)

И плюс постоянно возникает "так, почему у меня этого нет, ах, вон того не хватает, т.к. я теперь на вот это трачу", что довольно близко к программированию. Параллелизм, балансировка, кэш, дедлоки — всё на месте :)

А вот не надо! Если у вас задротство прокачано до уровня 80+, то в факторио можно неплохо строить turing-complete вещи. Во-первых, там есть зелёные и красные провода, а при наличии комбинаторов и умножителей там можно такое настроить, что мало не покажется.

Более того, вопрос был поднят на реддите и сразу-же отвечен.

https://www.reddit.com/r/factorio/comments/43giwy/i_made_a_programmable_turingcomplete_computer_in/

Пожалуйста.

Вот ещё пример:

https://www.youtube.com/watch?v=brYDcNxyU_0

Даже если факторио не учит алгоритмам напрямую, она заставляет думать в правильном ключе. Потому что factory must grow а что-бы вы не делали, меди всегда недостаточно.

Из личных закромов:

  • MHRD (симулятор Verilog)

  • Prime Mover (преобразование входа в выход, похожа на Opus Magnum)

  • Robo Instructus (алгоритмы на JavaScript)

  • Silicon Zeroes (как nandgame, решение задач аппаратными средствами)

  • The Signal State (преобразование входа в выход)

Класс, спасибо, тоже добавлю в апдейт.

MHRD - отличная игрушка, поддержу (эх, будет ли когда-то продолжение, намёк на которое, помнится, где-то там в титрах мелькал?) Печалит только, что некоторая часть заданий с последовательностной логикой подвержена хакам, основанным на несовершенстве тестов. Поэтому иногда "лучшие" результаты других игроков, в которые игра непременно ткнет носом после выполнения задания, на практике честным путём не могут быть достигнуты.

P.S. И Verilog'а там, кстати, нет - это чисто внутриигровой нарочито примитивный язык.

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

  1. выполнять просто, чтобы работало;

  2. оптимизировать честно, следуя спецификации;

  3. оптимизировать под открытые тесты.

Каждый может остановиться там, где пожелает.

Впрочем, отдельный лидерборд для "честных" решений не помешал бы.

Только в robo instructus не жаваскрипт, а свой собственный, очень упрощённый язык. (Без объектов)

Вспомнилась ещё "while True: learn()" - головоломки, про изучение основ машинного обучения и нейронных сетей.

Только она не про машинное обучение ну просто ни разу. Она "о" машинном обучении (сеттинг), но "про" комбинаторику.

Спасибо, добавила.
Мне нравится box-256.com

Игра, в которой нужно на примитивном ассемблере рисовать картинки на дисплее. Хотя, это скорее не развлекающая игра, а обучающая: хорошо и довольно точно показывает как на самом деле ЦП выполняет инструкции. Да и в целом наглядно показывается что такое инструкции и память.
Спасибо большое, закинула в апдейт.
просто добавлю это в апдейт

Думаю Screeps будет достойна добавления

Окей, спасибо!
store.steampowered.com/app/1444480/Turing_Complete
Практически с нуля (начиная с проводов и простейших бинарных блоков) строим процессор и программируем его. Вначале логические блоки, далее сумматоры-счетчики, потом компараторы, мультиплексоры-демультиплексоры, регистры, АЛУ… процессор… свой ассемблер и программируем его на решение простых задач. Визуально в теплом ламповом стиле 80-х (шины данных, бегающие по ним байты-биты и т.п.). Помимо собственно конструирования блоков и их программирования на некоторых задачах существуют ограничения на количество элементов или «площадь кристалла» для размещения схемы.

Круто!

Да, спасибо, клевая, ее прям в самом первом комменте посоветовали, уже добавила ее в апдейт статьи.
Хорошая статья, рад, что кто-то пишет об играх про программирование, плюсую SpaceChem и tis-100, обе прошёл с большим удовольствием, 7 Billion Humans и human resource machine тоже крутые, но попроще игр от Зака, сейчас прохожу Exapunks, пока нравится, а вот Baba Is You не понравилась, показалась очень однообразной. От себя могу посоветовать небольшую игру helltaker, потому что всё остальное уже итак посоветовали)
Спасибо!

Мне кажется, что helltaker не совсем про алгоритмы. Или я по описанию не уловила геймплей?

Все правильно, это унылый однообразный сокобан.

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

Автор статьи, внесите пожалуйста сюда свой вклад, если не сложно

https://github.com/readyready15728/awesome-programming-games

OMG! Это же сокровищница! Хорошо, только надо прочекать, чего там еще нет. А то выглядит так, словно там есть ВСЁ.
Да, ее чуть выше советовали, я ее уже добавила в апйдет.

Можно еще добавить:

Gladiabots - Программируете роботов и воюете. gladiabots.com

Screeps - ММО стратегия, где вы программируете поведение своих "юнитов" screeps.com

Спасибо! Screeps буквально недавно в комментах советовали, добавлю ее.
Так вписала уже в апдейт, по рекомендациям из комментов.

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

Factorio уже добавла в апдейт, спасибо!

Хотелось бы ещё отметить игру Screeps, отличная RTS в реальном времени, где нужно максимально оптимально писать код на JS, чтобы управлять всё большим количеством юнитов. Но она скорее, подойдёт для уже опытных программистов.

Спасибо! Я уже поняла, что Screeps того стоит, ее раза 3 в комментах упомянули.

Не попадалась ли вам игра в духе Factorio, с двумерной графикой и в казуальном жанре - чтобы в неё можно было поиграть максимум полчаса?

shapez.io


Можно прям в браузере играть, но есть еще расширенная версия в стиме.
Она проще и абстрактнее factorio.


Но вот про полчаса — это мимо. Может затянуть очень надолго. Особенно, если решите сделать универсальную фабрику на основе логики.

В Mindustry есть программируемые блоки. Сам, правда, ещё не пробовал.

Есть отличная игрушка - Заработало или Crazy Machines - конструктор Машины Голдберга. Для детей от 8 до 90 лет. Рабочие цепочки от шариков до электрических цепей. А так же пушки, магниты, взрывчатка и прочее. Вторая в жизни игра моего сына

Mindustrie - там есть программируемые блоки (процессор, память итд), с из помощью можно менять логику юнитов, например

на питоне программится Minecraft :)

Кажется Hack 'n' Slash забыли, там часть игрового процесса это «взлом» самой игры — изменение параметров игровых объектов, их логики и т.п.

Если уж factorio добавили, то стоит добавить и shapez.io. Оно более абстрактно и просто, но поэтому там и больше акцент имено на логике.

Добавила, в отдельную подборку.
Добавлю Space Engineers, игра песочница выживалка в космосе. Сама игра не требует программирования, но можно программировать на C#. От простых вещей вроде автоуровня и солнечных панелей следящих за солнцем до очень крутыч штук, вроде фрезера, разнообразных ботов, систем наведения пушек, как зенитных ближнего радиуса так и дальнобойных наземных гаубиц.
Еще From the Depth, но я в нее не играл.
Еще была хардкорная игра про параллельное программирование. Где надо было завести параллельно исполняемый код в состояние ошибки. Только название вспомнить не могу.
ВСПОМНИЛ. The Deadlock Empire
github
И да, она реальнэ хардкор, только для «настоящих программистов»

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

Спасибо большое, добавила при апдейте, но апдейт уже в отдельной подборке.

Раз уж такое дело, порекомендую игру Stationeers. Хардкорная выживач-песочница на других планетах (Марс, Луна и другие планеты), в которой ты пытаешься построить базу и выжить, обильно всё автоматизируя — слежение солнечных панелей за солнцем (в зависимости от планеты и её расположении относительно солнца нужны коррекции), смешивание газов в различных пропорциях и поддержание нужной температуры для выращивания растений и т.д.

Очень увлекательно, и испытываешь вплеск радости, когда у тебя НАКОНЕЦ-ТО что-то получилось сделать )

Спасибо, добавила ее в новую подборку.

Stationeers - очень сложная и подробная песочница-выживалка в основном на планетах и космосе. Программирование на MIPS (ассемблерный язык). Можно играть и без него, но с ним можно настраивать циркуляцию атмосферы на базе, ее температуру, давление, объем, состав, работу конвееров/печей для создания сплавов, или ферм для выращивания всякого, вращение солнечных панелей, и т.д.

Hacker evolution обязательна к ознакомлению)

Не давно вышла store.steampowered.com/app/1054340/Logic_World. К сожалению пока про неё ничего написать не могу так как залип в Turing Complete. Но по скринам и одному запуску могу сказать что похожа на режим песочницы в Turing Complete.
Уже добавила.Так много крутых игр насоветовали, что я отдельную подборку сделала.

Думал что первой в списке будет GreyHack, а её даже в комментах нет...

https://store.steampowered.com/app/504210/SHENZHEN_IO/

Да, я про нее писала, даже скриншот оттуда на КДПВ

А как же Grey Hack? или эта игра сюда не подходит?

подскажите из этого всего лучшую игру для 9-летнего ребенка для игрового обучения программированию?

Вдруг понял, что никто не упомянул Atomix
MOLEK-SYNTEZ является её внучкой.
Хотя программирования здесь нет, но на мена мелкого произвела сильное впечатление, + к химии получил.

Поколение Python. В процессе игры изучается настоящий язык Python! Можно играть прямо в браузере! А потом можно на работу устроиться питонистом и на работе играть всю жизнь, получать задания, решать головоломки, ещё и деньги получать за это!

Ух большое спасибо, наконец то нашел Else Heart.Break(). Знал про эту игру, но нигде не мог найти.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий