Я выложила вчера подборку «15 игр, которые прокачивают логику, алгоритмы, ассемблер и силу земли». И столько классных ссылок в комментарии накидали, что я чуток опухла, но сделала отдельную подборку, по горячим следам. Спасибо большое всем, кто внес свой вклад.
Еще я веду канал в Telegram: GameDEVils, делюсь там клевыми материалами (про геймдизайн, разработку и историю игр).
Turing Complete (2021)
Игру выпустили в октябре прошлого года, пока она в раннем доступе, но уже около 600 положительных отзывов на Steam.
Практически с нуля (начиная с проводов и простейших бинарных блоков) строим процессор и программируем его. Вначале логические блоки, далее сумматоры-счетчики, потом компараторы, мультиплексоры-демультиплексоры, регистры, АЛУ… процессор… свой ассемблер и программируем его на решение простых задач. Визуально в теплом ламповом стиле 80-х (шины данных, бегающие по ним байты-биты и т.п.). Помимо собственно конструирования блоков и их программирования на некоторых задачах существуют ограничения на количество элементов или «площадь кристалла» для размещения схемы.
The Nand Game
Бесплатная игра в браузере, где вы собираете компьютер, начиная с базовых компонентов.
На каждом уровне нужно создать компонент, который ведет себя в соответствии со спецификацией. Затем этот компонент можно использовать в качестве строительного блока на следующем уровне.
Игра не требует каких-либо предварительных знаний о компьютерной архитектуре или программном обеспечении и не требует математических навыков, кроме сложения и вычитания.
From NAND to Tetris
Два обучающих курса («Nand2Tetris Part I» и «Nand2Tetris Part II») от предыдущего проекта, оба доступны бесплатно на платформе Coursera.
Курсы «Nand to Tetris» преподаются более чем в 400 университетах, средних школах и учебных лагерях. Студенты, которые их проходят, варьируются от старшеклассников до аспирантов и инженеров Google.
MHRD ( 2017)
Станьте инженером по оборудованию, создайте свой собственный процессор по технологии 80-х годов, пишите свои проекты на языке аппаратного проектирования MHRD. Короче, по картинке видно, что игра для дерзких парней, которым плевать на графику.
MHRD — отличная игрушка, поддержу (эх, будет ли когда-то продолжение, намёк на которое, помнится, где-то там в титрах мелькал?) Печалит только, что некоторая часть заданий с последовательностной логикой подвержена хакам, основанным на несовершенстве тестов. Поэтому иногда «лучшие» результаты других игроков, в которые игра непременно ткнет носом после выполнения задания, на практике честным путём не могут быть достигнуты.
Prime Mover (2018)
Можно создавать печатные платы, чтобы решать задания головоломки. Как в играх от Zachtronics, есть сравнение результатов с друзьями:
преобразование входа в выход, похожа на Opus Magnum
Robo Instructus (2019)
Инди-игра, где вы программируете робота на вымышленном языке программирования. Цель каждого уровня — довести робота до выхода, само собой, постепенно выполнить задание становится все сложнее.
Забавный момент — уровни состоят из треугольных тайлов, а не квадратных как во многих других играх.
На Хабре ее советовали тем, кто про алгоритмы на JavaScript.
Silicon Zeroes (2017)
В игра есть сюжетная линия в сеттинге 60-х в Кремниевой долине. В этой головоломке можно создавать электронику из множества простых компонентов, таких как сумматоры, защелки и мультиплексоры. Но на Steam есть критические отзывы, которые ругают игру за игрушечность и технические неточности.
The Signal State (2021)
Визуальная версия MHRD в сеттинге постапокалипсиса. 40 головоломок, которые игрок проходит за техника. Техник получает задание восстанавливая жизнь на одной из старых ферм и для этого должен перебрать всю нерабочую технику и восстановить ее. В начале игры есть обучалка. В отличии от последовательного MHRD, в Signal State нет возможности на следующих уровнях использовать свои компоненты из предыдущих.
Colobot (2001)
Ностальгические нотки: игра для детей от 10 лет, для обучения программированию. 3D стратегия в реальном времени, где вы программируете своих юнитов (ботов) на языке CBOT, который похож на C++ и Java. По сюжету игры, вы должны найти новую планету для жизни и выживания.
Прочитав заголовок, сразу вспомнил игру, с которой еще в школьные годы начиналось мое становление как разработчика — Colobot.
Сколько времени я там провел за экспериментами и программированием ботов на почти-С++, даже и не знаю.
С тех пор она еще и в open-source перешла.
Bitburner (2021)
Вышла буквально месяц назад и уже собрала на Steam 1 500+ крайне-положительных отзывов. Это первый публичный проект автора.
Я просто оставлю этот отзыв со Steam [орфография и пунктуация как в оригинале]:
Отличный способ выучить как пользоваться терминалом и начать списать первые скрипты на JavaScript(точнее на его внутри-игровом аналоге) если вы пробовали пользоваться такими сервисами как codewars или leetcode но долго там не задерживались то это будет отличная альтернатива в стиле старых фильмов про хакеров
Factorio (2016)
Factorio — это игра, где можно проектировать, строить и обслуживать фабрики. Можно создавать свои собственные карты, писать моды или играть через мультиплеер.
Как подсказывает Хабр, игра не совсем про алгоритмы:
Factorio — это все же не игра про алгоритмы, а игра где можно прикрутить алгоритмы почти ко всему. Но можно и не прикручивать.
Скорее придётся. Без нормальной автоматизации ракету сложно построить :)
И плюс постоянно возникает «так, почему у меня этого нет, ах, вон того не хватает, т.к. я теперь на вот это трачу», что довольно близко к программированию. Параллелизм, балансировка, кэш, дедлоки — всё на месте :)
while True: learn() (2019)
Как подсказали на Хабре, эта игра о машинном обучении и нейронных сетях, но про комбинаторику. Специалиста по машинному обучению она из вас конечно не сделает, но заинтересовать темой может.
А еще в этой игре есть кот, он прекрасный программист, но не говорит по-человечески. И игрок должен освоить машинное обучение, чтобы создать систему-переводчик с кошачьего на человеческий.
Больше 5 000 отзывов на Steam с оценкой игры на 10 котов-программистов из 10.
Вот интервью с создателем: Создатель игры while True: learn() о программировании в геймдеве, проблемах с VR и симуляции ML / Хабр (habr.com)
BOX-256 (2016)
BOX-256 — это 8-битный фэнтезийный компьютер с 256 байтами памяти, 16-цветным дисплеем 16x16. Вот мануал, как пользоваться этим компьютером.
Игра, в которой нужно на примитивном ассемблере рисовать картинки на дисплее. Хотя, это скорее не развлекающая игра, а обучающая: хорошо и довольно точно показывает как на самом деле ЦП выполняет инструкции. Да и в целом наглядно показывается что такое инструкции и память.
Screeps (2016)
ММО стратегия, где вы программируете поведение своих «юнитов»
«Screeps» это «scripting creeps». Хоть и есть обучалка, игра все таки для людей с навыками программирования. В отличие от других игр, в «Screeps» не нужно постоянно играть за крипов, они могут реагировать на события без прямого участия игрока, при условии, что их правильно запрограммировали.
Своего рода Colobot на хардкор-уровне. Как пишут в рецензиях на Steam:
Твой шеф будет думать что ты кодишь нужные вещи.
Gladiabots (2019)
Программируете роботов и воюете
В игре 4 класса ботов из которых можно набрать команду из 4 юнитов. Боты умеют ходить, стрелять, распознавать свой чужой, тащить ресурс, но умеют это в том порядке, в котором игрок прописал это в редакторе искусственного интеллекта. В игре есть компания и мультиплеер, разбитый на лиги.
Oh My Git! (2021)
Игра для помощи новичкам в Git, которая визуализирует внутренние структуры репозиториев в режиме реального времени. Игрок может сразу увидеть результаты своих действий.
В игре есть интерфейс игральных карт, которые помогают запоминать недавно введенные команды Git. Бесплатно и опенсорс.
Pocket Robots Test Chamber
Игра со спартанским интерфейсом, где надо создать логическую схему для робота так, чтобы он смог пройти уровень. Играть можно в браузере бесплатно по ссылке.
Shapes IO + (2020)
shapez.io — игра, похожая на Factorio, в которой можно строить фабрики по автоматизированному производству геометрических фигур. В игре нет лора, вселенной, просто геометрические фигуры, у которых есть очевидные свойства: форма и цвет. Есть бесплатная демка, чтобы решить, а надо ли оно.
Crazy Machines (Заработало!) (2005)
Серия игр, основанная на создании машин Голдберга. Это серия из 5 игр с кучей дополнений, в названии год релиза первой игры из серии. Вот тут даже заботливо поддерживают сайт по игре. Игра больше для детей, тоже идет с пометкой ностальгия.
Mindustry (2019)
Гибридная песочница tower-defense с упором на управление ресурсами. В игре 24 встроенных карты, кроссплатформенный мультиплеер и масштабные сражения PvP-юнитов. Есть исходный код на GitHub.
там есть программируемые блоки (процессор, память итд), с их помощью можно менять логику юнитов, например
Awesome Programming Games
А еще вот ссылка на github, которая меня просто порвала. Там штук 150 потрясающих игр для программистов. Я в ближайшее время обязательно проверю подборку, и добавлю те игры, что вы посоветовали, если их там еще нет.
Спасибо большое всем, кто внес свой вклад:
zede, Fenex, 0serg, JustDont, Prilr, nzeemin, ShadF0x, Shreedeer, microspace, solarize, Ghostcar, Joysi, kinjalik, AndreySinelnikov, CiceJis, pvvv, wataru, agat000, jawaharlalnehru, opxocc, dfgwer, zorg-kirill, constXife, mikhail_roslov, poslannikD, CyaN, Peacemaker, t76480.
Огромная благодарность всем, каждому, и пусть никто не уйдет обиженным.
Первую часть можно найти тут: 15 игр, которые прокачивают логику, алгоритмы, ассемблер и силу земли.
А еще я узнала, что некоторые игры разработчики придумали во время геймджемов, и написала про историю джемов: Каким был первый game jam 20 лет назад и где можно поджемить в этом году
Update [18:30 14.01.22]
Остановите меня:
GreyHack
Steam [ранний доступ]:
Grey Hack – многопользовательская игра – симулятор хакера. Вы играете за хакера с полной свободой действий в обширной сети процедурно генерируемых компьютеров.
Hardware_Engineering
Hack 'n' Slash
Кажется Hack 'n' Slash забыли, там часть игрового процесса это «взлом» самой игры — изменение параметров игровых объектов, их логики и т.п.
Space Engineers
Добавлю Space Engineers, игра песочница выживалка в космосе. Сама игра не требует программирования, но можно программировать на C#. От простых вещей вроде автоуровня и солнечных панелей следящих за солнцем до очень крутыч штук, вроде фрезера, разнообразных ботов, систем наведения пушек, как зенитных ближнего радиуса так и дальнобойных наземных гаубиц.
From the Depth
The Deadlock Empire
Еще была хардкорная игра про параллельное программирование. Где надо было завести параллельно исполняемый код в состояние ошибки. Только название вспомнить не могу.
ВСПОМНИЛ. The Deadlock Empire. И да, она реальнэ хардкор, только для «настоящих программистов»
Stationeers
Раз уж такое дело, порекомендую игру Stationeers. Хардкорная выживач-песочница на других планетах (Марс, Луна и другие планеты), в которой ты пытаешься построить базу и выжить, обильно всё автоматизируя — слежение солнечных панелей за солнцем (в зависимости от планеты и её расположении относительно солнца нужны коррекции), смешивание газов в различных пропорциях и поддержание нужной температуры для выращивания растений и т.д.
Очень увлекательно, и испытываешь вплеск радости, когда у тебя НАКОНЕЦ-ТО что-то получилось сделать )
Stationeers — очень сложная и подробная песочница-выживалка в основном на планетах и космосе. Программирование на MIPS (ассемблерный язык). Можно играть и без него, но с ним можно настраивать циркуляцию атмосферы на базе, ее температуру, давление, объем, состав, работу конвееров/печей для создания сплавов, или ферм для выращивания всякого, вращение солнечных панелей, и т.д.
Hacker Evolution
Logic World
Не давно вышла store.steampowered.com/app/1054340/Logic_World. К сожалению пока про неё ничего написать не могу так как залип в Turing Complete. Но по скринам и одному запуску могу сказать что похожа на режим песочницы в Turing Complete.
Мой канал в Telegram с находками про разработку игр, историю игр и геймдизайн: GameDevils.
Автор: Анастасия