TIS-100 — обложка игры

TIS-100

🕒 Последнее обновление:
Всего скачиваний: 302
💬 Комментариев: 0
Скачать игру

Описание

Я прошел TIS-100 полностью, включая скрытые сегменты и оптимизации. Игра представляет собой набор задач на восстановление работы поврежденного компьютера TIS-100 (Tessellated Intelligence System) 1970-х годов. Вы получаете машину от тети после смерти дяди Рэнди, который работал с ней. Задача - писать код на собственном ассемблере для каждого узла, чтобы обрабатывать входные сигналы и выдавать требуемые выходы.

Сюжет

Сюжет раскрывается через заметки дяди Рэнди в поврежденных узлах. Он купил машину на блошином рынке в 1979 году. Сначала думает, что это секретная разработка для анализа сигналов. По мере прогресса записи становятся более хаотичными: Рэнди теряет работу, отношения с тетей Дорис ухудшаются, он углубляется в общение с машиной. В TIS-NET сегментах история выходит на новый уровень - машина связана с правительственными проектами, есть отсылки к DoD и Quantum Information Science Lab. Финал показывает, что машина влияет на владельца, с жуткой анимацией. Полный разбор всех debug-логов требует прохождения всех сегментов, включая анти-тампер.

Геймплей и механики

Основная механика - 12 узлов в сетке. Каждый узел имеет ACC (аккумулятор) и BAK (резервный регистр). Команды: MOV, ADD, SUB, MUL, DIV, MOD, AND, OR, XOR, NOT, JMP, JEZ, JNZ, JGZ, JLZ, SLT, SWP, SAV, NEG и undocumented вроде HCF. Узлы соединяются в четырех направлениях, данные передаются между ними. Позднее появляются stack nodes для памяти и image console для графики.

Каждый уровень задает входы (IN) и требует точного совпадения выходов (OUT). Можно шагать по коду, ставить breakpoints. После решения сравниваете с лидербордом по nodes, instructions, cycles.

Сложные места и советы

  • Начальные уровни с простым перемещением данных: Используйте MOV ACC RIGHT (или другое направление). Избегайте лишних циклов. Для BUSY_LOOP достижения специально замедлите решение до 100k+ циклов с помощью ненужных ADD/SUB.
  • Signal Comparator и Multiplexer: Сравнения через SUB и условные прыжки. Для мультиплексера распределяйте логику по нескольким узлам, каскадируйте MOV. Удаляйте ненужные значения в NIL.
  • Sequence Sorter и Generator: Здесь нужна сортировка и генерация последовательностей. Используйте несколько узлов для хранения состояний, SWP для обмена. Оптимизация циклов требует параллельной обработки. Один узел может контролировать другие через JMP.
  • Wave Collapse Supervisor и Signal Divider: Сложная математика и обработка потоков. Делите внимание: один узел на ввод, другой на расчет. Тестируйте на малых входах. Для divider используйте repeated subtraction.
  • Stack nodes: Появляются позже. Управляйте PUSH/POP аккуратно, чтобы избежать переполнения. Они критичны для хранения состояний в длинных последовательностях.
  • Image console: Рисуйте пиксели цветами. Планируйте вывод по координатам. Требует точной синхронизации узлов.
  • Оптимизация: Минимизируйте nodes (используйте не все 12), instructions (короткие циклы), cycles (параллелизм). Сохраняйте несколько решений. Читайте manual полностью - там все команды и примеры.

Общие проблемы

  • Зависания из-за бесконечных циклов без выхода данных - всегда проверяйте условия JMP.
  • Неправильная маршрутизация сигналов - рисуйте схему на бумаге.
  • Ограничение в 15 инструкций на узел - разбивайте логику.
  • Debug logs дают сюжет, но не подсказки по коду - решайте сами.

Игра не для всех. Если нет интереса к низкоуровневому программированию, она покажется сухой. Нет графики, звука почти нет. Полезна для понимания ассемблера и алгоритмов. Я потратил десятки часов на оптимизации. Решайте, нужно ли вам это.

Скриншоты

⬇️ Скачать игру

Написать комментарий