Была обнаружена компьютерная игра Turing Complete в жанре «головоломка», суть которой: соединять проводочки, организовывать регистры памяти, писать машинный код — и всё это надо делать в точности так, как это происходит в реальном процессоре. При этом, чтобы начать играть — ничего особо о компьютерах знать не нужно, вся теория объясняется игроку по ходу дела.
Поиграв в Turing Complete часов 30..40 — можно об архитектуре компьютера узнать больше, чем за 2..3 года изучения аналогичных институтских курсов (не думаю, что это преувеличение).
При этом игра очень наглядная, удобная и интуитивная. Для сравнения, вот как выглядит одна из программ (Logisim), по которой учатся обычные компьютерные студентоиды:
При всём уважении к Logisim (2014), визуально и интерактивно он сильно проигрывает Turing Complete. А привлекательнее Logisim в институтских кругах вроде ничего особо и не крутится.
Разница между традиционной программой Logisim и игрой Turing Complete — это разница между «я ничего не понял, было скучно, я забил и не ходил» и «это был самый интересный курс за всё время учёбы».
Суть такова
В отличие от многих подобных «игр для программистов», в игре Turing Complete большинство головоломок — это прямое воспроизведение архитектуры реального компьютера, а не просто абстрактные логические задачи. Т.е. можно, пройдя все этапы игры, реально прочувствовать, как (буквально) нолики и единички превращаются в компьютерные программы.
Игрок собственными руками с нуля (с уровня логических ворот, если точнее) строит аж собственный полноценный процессор. При этом в игре настолько плавно растёт сложность, что каждый новый шаг естественно вытекает из предыдущего.
💡
Название «Turing Complete» переводится как «полный по Тьюрингу». Грубо говоря, вычислительная машина называется «полной по Тьюрингу», если она может воспроизвести «любой» машинный алгоритм. Полнота по Тьюрингу занимает центральное значение в теоретической информатике и в жизни программистов-абьюзеров, создающих Тьюринг-машины там, где это не особо предполагалось.
Подробнее, о чём игра
Ниже подробно описываю всё то, что было показано в трейлере. Не могу назвать это спойлерами, ибо этапы игры ожидаемо соответствуют любому традиционному институтскому курсу по архитектуре компьютера:
Игра стартует с задач уровня «собери из нескольких логических ворот новые логические ворота»:
На середине игры нужно создать небольшую тьюринг-полную вычислительную машину (с шестью 8-битными регистрами памяти), на которой на созданном пользователем машинном коде (ассемблере) надо программировать простые алгоритмы:
К этому моменту игрок изучает:
- Логические ворота (также известны как: Logic gate, логический вентиль)
- Регистры памяти (пока 8-битовые, но далее будут вплоть до 64-битных)
- Работу с отрицательными числами в двоичном коде
- Арифметически-логические операции (сложение, сравнение, сдвиг и т.п.)
- Программирование процессора двоичным кодом (т.е. ноликами и единичками)
- Создание собственного ассемблер-языка
Ещё не прошёл последние уровни игры, но судя по всему, в них изучаются:
- Стек
- RAM
- Шины данных
- Прерывания (interruptions)
- Драйвера
- Устройства ввода-вывода
- И пр.
Также в игре всегда открыт режим песочницы, который полностью доступен с самого начала. В этом режиме одним энтузиастом, например, был воспроизведён процессор Intel 8008 (это известный процессор 1972 года, часто детально разбираемый на традиционных курсах компьютерной архитектуры).
Видео прилагается (на английском):
https://www.youtube.com/watch?v=21bQBCfMDb8
О сложности заданий
В игре сделано всё, чтобы изучать архитектуру компьютера было легко и интересно.
Но совсем чисто по приколу пройти игру не получится. На многих уровнях нужно вникать, напрягаться, думать, изучать теорию:
- В самой игре теория даётся очень сжато. В большинстве случаев этой теории достаточно, но иногда приходится изучать теорию на сторонних ресурсах. В любом случае, по справке игры всегда можно понять, хотя бы какой запрос надо вбить в гугл.
- К большинству уровней есть ютуб-решения от разработчика (они открываются, если нажать кнопку «подсказка» в игре). Там, где нет решений от разработчика — можно подсмотреть решения у летсплейщиков (ибо смысл игры вроде как — научиться програть процессоры, а не сделать всё строго самому без подсказок).
- Не часто, но бывает, что задания не совсем понятно сформулированы. На паре уровней мне приходилось смотреть решения, чтобы понять, что вообще нужно получить.
- Очень удобно, что в игре для каждого уровня есть готовый отладчик и готовый список тестовых прогонов. В профессиональных прогах при разработке подобных схем — все эти тестовые прогоны приходилось бы писать самому.
После прохождения игры открывается рейтинговая система, вроде как основанная на параметре Delay (что-то типа быстродействия разработанной схемы). Можно сравнивать «профессионализм» своих схем с схемами других игроков. Правда, не уверен, что рейтинговая ситема работает при игре из РФ. У меня пока не работает, лол.
Дай сюда
Я покупал игру в Steam. В нынешних реалиях для России деньги на кошелёк Steam можно занести через QIWI
upd 2024: больше нет
, а потом через Казахстанский кошелёк уже перевести на Steam. Игра стоит 435₽ (в декабре 2022 года). С учётом комиссий и конвертаций у меня вышло 570₽.
Игра «Turing Complete» (пока?) не переведена на русский язык.
Игра (несмотря на экстаз, в который она способна вогнать всех проникшихся) не очень популярна. На ютубе о ней мало видиксов, и мало учебных материалов. Но прохождения уровней всегда таки есть где найти.
У игры активное Discord-коммунити:
https://discord.gg/hdrJaMUdrF
Игра всё ещё дорабатывается. К игре продолжают выходить обновления.