Robot Odyssey

Нью-йоркский программист Дэвид Ауэрбах (David Auerbach) вспоминает компьютерную игру, для прохождения которой ему понадобилось 13 лет и которая определила его будущее как программиста.

В шесть лет Дэвид на компьютере Apple IIe со 128 КБ памяти увидел обучающую игру Rocky’s Boots от компании Learning Company. Эта игра знакомила детей с основами формальной логики. Через два года та же фирма выпустила шедевр под названием Robot Odyssey, в котором сделала шаг от теории формальной логики к практике программирования. Чтобы пройти все уровни этой игры, даже самым талантливым игрокам требовались годы. Дэвид Ауэрба�� смог сделать это за 13 лет. Правда, пришлось воспользоваться некоторой помощью извне.

Дэвид уверен, что любой ребёнок, который заинтересовался этой игрой в детстве, неизбежно станет программистом. Да и среди взрослых интерес к Robot Odyssey явно указывает, что человеку надо бы сменить род деятельности и пойти в инженеры/программисты.

В любом случае, Robot Odyssey — одна из самых креативных игр эпохи Apple IIe, то есть середины 80-х гг.

По сюжету, игрок во сне попадает в таинственный город Robotropolis. Чтобы вернуться домой, ему предлагают пять уровней сложности: средний, сложный, очень сложный, невозможный и невозможный-2. В принципе, за пару лет при большом желании можно пройти первые три уровня, но невозможные уровни — это уже за гранью фантастики. Тем гениям, которые смогли решить головоломки на сложных уровнях, компания-разработчик выдаёт специальные сертификаты. Например, в 2002 году один игрок получил сертификат как 34-й человек в мире, который прошёл игру.

Каждый уровень разрабатывал отдельный сотрудник Learning Company, поэтому у уровней мало общего. Например, дьявольский четвёртый уровень создал 16-летний школьник-эрудит Шон Гордон (Shaun Gordon). Именно на этом уровне навсегда застревали большинство игроков.

Руководители компании Learning Company считают, что вряд ли кто-то из сотрудников компании вообще прошёл эту игру на всех уровнях.

Для решения головоломок дают троих (иногда четверых) роботов, которых можно подключать к контактам и программировать. Слева направо: это Sparky, Scanner и Checkers. Они могут двигаться, распознавать стены, подбирать и выбрасывать предметы, а также общаться друг с другом.


Sparky, Scanner и Checkers

Под программированием имеется в виду не привычное нам программирование высокого уровня, а самый что ни на есть низкоуровневый код, на уровне логических вентилей (AND, OR, NOT), из которых состоят микросхемы. Так что Robot Odyssey — это не только программирование, но также электротехника. Вентили реализуют примитивные операции из формальной логики или булевой алгебры.



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

Управляя логическими вентилями, можно решать различные задачи, простые для начала, но всё более сложные с продвижением по уровням.



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

Например, игра позволяет «впечатывать» созданные электрические цепи в микросхемы для абстракции. На иллюстрации показан один из таких чипов, в котором используется много логических вентилей OR для стереозаписи.



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



ТГ-канал: @alizar_news. Мои лучшие статьи и переводы с Хабра за 20 лет