«Звездный торговец» или компьютерное обучение в эпоху мини-компьютеров

Это рассказ о различных подходах к компьютерному обучению в США, в эпоху до появления персональных компьютеров. Особое внимание будет уделено просветительской деятельности «Народной компьютерной компании» (People's Computer Company, PCC). Упоминание об этой организации, а также одноименных клубе и газете вы могли встретить в известной книге С. Леви «Хакеры: Герои компьютерной революции». Наконец, речь пойдет о ранних текстовых играх, в частности, о «Звездном торговце» (Star Trader). О современной реализации на Питоне этой классической игры будет рассказано в заключительной части.

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



«Кризис образования»


Давайте перенесемся в 1957 год. Только что запущенный советский «Спутник-1» произвел, как известно, колоссальное впечатление на США. Хорошей иллюстрацией царивших тогда настроений является обложка журнала «Life» за 1958 год, на которой соседствуют отличник из Москвы с серьезным проницательным взглядом и его американский сверстник-оболтус. Обложка имеет заголовок «Кризис в образовании». Выводы, к чести Америки, были сделаны быстро и на науку с образованием начали выделяться значительные государственные средства.


Обложка журнала «Life» за 1958 год.

Появилось, в частности, знаменитое агентство ARPA (которое позже получило более привычную аббревиатуру DARPA) по проектам, которые связаны с долгосрочными, перспективными и, зачастую, никак не касающимися обороны исследованиями. Благодаря поддержке ARPA и на деньги военных были созданы интернет и первые персональные компьютеры. О работе ARPA в те времена А. Кэй (Alan Kay) говорил так: «основная идея ARPA заключается в том, что вы находите отличных специалистов, вы даете им много денег, а затем оставляете их в покое. Если они не сделают через 3 года что-то хорошее (то есть что-то новое и интересное), то их уволят».

Ящик Скиннера


Надежды на улучшение качества образования связывали, в том числе, с компьютеризацией учебного процесса. И здесь, казалось бы, как нельзя лучше подходили популярные в то время теории психологов-бихевиористов (от слова behavior — поведение), в которых ученик рассматривался, как подопытное животное, вроде собаки Павлова. Компьютер, в полном согласии с данными теориями, способен оценивать лишь внешние реакции. Желаемое поведение предлагается формировать с помощью поощрений и наказаний. Наибольшей популярностью пользовались работы Б.Ф. Скиннера. Он получил основные свои результаты, тренируя голубей, реакциями которых управлял с помощью специального ящика.


Ящик Скиннера.

Типичный CAI-курс (Computer Aided Instruction) компьютерного обучения 60-х годов, организованный в духе работ Скиннера, представляет собой демонстрацию фрагментов из какой-то области знания, усвоение которых проверяется с помощью диалога с пользователем. В закреплении нужного «условного рефлекса» у ученика помогают такие стимулы, как баллы или ограниченное время ответа. Вопрос, на который был получен неверный ответ, может быть задан повторно, но уже с дополнительными пояснениями или демонстрацией правильного варианта. По большому счету, различные реализации CAI отличаются друг от друга уровнем имитации преподавателя, который руководит действиями ученика и здесь напрашивается использование подходов из области ИИ. С другой стороны, именно простые, линейные CAI оказались наиболее удобны с точки зрения разработки преподавателями. В целом, CAI-курсы наиболее полезны в тренировке и при проверке знаний, которые поддаются простой количественной оценке.

Боб Альбрехт


В 1962 году Боб Альбрехт (Bob Albrecht) впервые начал обучать старшеклассников языку Фортран. Кто такой Боб Альбрехт? О нем впоследствии писали, как о компьютерном энтузиасте-просветителе, который повлиял в конце 60-х и начале 70-х на молодежь более, чем кто-либо еще в соответствующей сфере. Именно Альбрехт основал «Народную компьютерную компанию», но об этом я расскажу позже. Вернемся к 1962 году. Компьютеры в то время занимали целые комнаты и находились во владении крупных корпораций. Программистам приходилось днями ждать очереди для того, чтобы передать свою программу на исполнение операторам — «жрецам» машины. Типичным вариантом обучения для избранных, а в лучшем случае ими являлись студенты соответствующих специальностей, были скучные лекции, без использования самих компьютеров. Альбрехту посчастливилось организовать учебный процесс по-иному, с практическим применением одной из машин CDC. При этом во главу угла было поставлено программирование (решение школьных задач, игры), а не CAI. На занятиях поощрялась ситуация, когда более опытные ученики сами пробовали себя в роли преподавателей. Горящие глаза школьников, их неподдельный интерес к освоению компьютеров стали для Альбрехта стимулом серьезно заняться вопросами компьютерного обучения обычных людей, далеких от компьютеров и интересов крупных компаний. Разумеется, все это оказалось возможным благодаря помощи CDC, а также наличию государственных грантов. В середине 60-х также появились 2 очень важных вещи для развития учебной деятельности Альбрехта: мини-компьютеры и язык Бейсик.

Мини-компьютеры


Сегодня слово «мини-компьютер», кажется, утратило свое первоначальное значение. Но когда-то это была целая эпоха. Новая элементная база, сами компьютеры «всего лишь» размером со шкаф. И, конечно же, использование систем разделения времени. Более быстрые, чем предыдущее поколение, мини-компьютеры могли обслуживать нескольких пользователей, подключенных одновременно. Общение с вычислительными машинами стало более интерактивным и доступным для более широкого круга пользователей. ЭЛТ-мониторы в 60-х годах все еще оставались слишком дорогими и мало распространенными, поэтому в качестве устройства ввода-вывода обычно использовалась электромеханическая печатная машинка — телетайп. Вы печатаете на бумаге текст, текст печатается вам в ответ. Подключение телетайпов к мини-компьютеру могло быть также удаленным, с использованием обычной телефонной линии и акустического модема. В таком удаленном режиме мини-компьютеры часто использовались в американских школах.


Мини-компьютер PDP-8

BASIC


Мини-компьютеры и системы разделения времени дали возможность появиться на свет интерактивному языку программирования специально для начинающих и для непрограммистов. Критика Бейсика хорошо известна. Однако, рассматривать положительные и отрицательные свойства этого языка лучше в контексте времени, когда он был действительно актуален. Многие отрицательные черты, такие, как, например, неструктурированность, объясняются желанием авторов языка сделать возможной реализацию интерпретатора Бейсика даже на самых слабых мини-компьютерах. Один из авторов языка, Д. Кемени (John Kemeny) предлагал в качестве обучающего аспекта написание компьютерных программ. В этом случае ученик становится учителем для компьютера. Ученик получает очень полезный опыт в процессе формулирования задачи в пригодной для вычислительной машины форме.

Одним из тех, кто сразу оценил возможности нового языка в учебной деятельности был Боб Альбрехт. Он даже полусерьезно организовал общество по отмене использования Фортрана в обучении. Возможности Бейсика Альбрехт демонстрировал с участием своих учеников на многочисленных конференциях и выставках. Также он одним из первых написал несколько самоучителей по языку. Самыми, пожалуй, популярными программами на Бейсике являлись учебные симуляции и игры.

Симуляции и игры


Очень любопытно читать статью 1966 года под названием «Две компьютерных экономических игры для шестиклассников» (Two Computer-Based Economics Games for Sixth Graders). В статье говорится об интересном эксперименте по использованию игр в учебном процессе. Школьники с помощью терминалов-телетайпов от IBM (данная компания участвовала в проекте) общаются с компьютером, а кроме того, часть информации выводится графически с помощью слайд-проектора. Одна из игр предлагает попробовать себя в роли правителя во времена шумерской цивилизации. Выдаются сведения о текущем количестве населения и состоянии ресурсов. Играющему приходится принимать решения на тему распределения зерна и т.п. Если вы хорошо знаете историю компьютерных игр, то данное описание могло показаться вам знакомым. Действительно, перед нами предтеча таких игр, как Hamurabi (1968).


«Шумерская игра»

Разумеется, восприятие нового знания в игровой форме значительно увлекательнее CAI. Я, например, до сих пор с благодарностью вспоминаю текстовые игры на компьютере ZX Spectrum, такие, как Sherlock. С помощью этих игр я в свое время смог изучить основы английского языка. Этот игровой опыт был более похож на попадание в иностранную среду, чем на типичный курс CAI.

Тем не менее, во многих случаях здесь применима критика А. Кэя, которую он высказал по отношению к знаменитой игре SimCity. Кэя не устраивало, что игра скрывает многое от пользователя. Нам недоступны правила и эвристики, которые используются в основе игрового мира. Если бы у ученика было это знание и возможность модификации основных параметров, то он был бы способен, действуя, как исследователь, на более глубоком уровне понять важные принципы, которые используются в основе игровой модели.

В конце 60-х и начале 70-х действовал Хантингтонский проект (Huntington Computer Project), поддержанный государственным грантом и, впоследствии, компанией DEC. Суть проекта состояла в создании пакета обучающих симуляций на Бейсике для школьников и студентов. Данные программы были ориентированы на самые разные школьные предметы: биология, физика, социальные науки. Код был намеренно упрощен, чтобы, во-первых, позволить запускать симуляции на слабых машинах и, во-вторых, дать возможность ученикам исследовать программы. Среди прочих симуляций проекта выделяется своей своей масштабностью LIMITS, в которой моделируется рост человеческой популяции и исчерпание природных ресурсов.

Следует также упомянуть о первых обучающих истории играх. Это Civil War (1968) на тему гражданской войны в США и, конечно же, знаменитая «Орегонская тропа» (Oregon Trail, 1971), написанная на Бейсике.

LOGO


Выше говорилось о теориях психологов-бихевиористов. Совершенно иной подход к проблематике обучения демонстрируют психологи-конструктивисты, среди которых следует упомянуть Ж. Пиаже и советского ученого Л.С. Выготского. В конструктивизме главную роль играет ученик, а не учитель. Для ученика создаются условия, при которых он самостоятельно способен вырастить, переизобрести знания. Разумеется, больше всего вопросов вызывает то, каким образом создается это стимулирующее работу мысли учебное окружение.

В области компьютерного обучения пионером использования конструктивизма является С. Пейперт (Seymour Papert). Знаменитая фраза Пейперта звучала так: «Должен ли компьютер программировать ребенка, или ребенок должен программировать компьютер?». Пейперт и его коллеги из MIT создали язык Лого (Logo, 1967) для обучения детей программированию. Лого является очень хорошо спроектированным языком даже по современным меркам. Он вобрал в себя многие элементы языка Лисп. На Лого имеются реализации компиляторов и сложных алгоритмов ИИ. Но широкой публике он известен, конечно же, благодаря «черепашке». Концепция рисующей узоры «черепашки» предполагает, что ребенок способен легко представить себя в ее роли и может провести, например, «отладку» программы, двигаясь по комнате в соответствии с заданными командами.

Задачи, которые ученик решал с помощью программирования на Лого в лаборатории MIT тех времен, существенно отличаются от типичных школьных задач по программированию («вычислить сумму квадратов первых N четных чисел» и тому подобное). В статье 1971 года «20 вещей, которые можно сделать с компьютером» (Twenty Things To Do With A Computer) Пейпертом описаны некоторые интересные применения Лого. Среди них: управление роботом-черепашкой с помощью компьютера, рисование различных картин и мультфильмов на экране монитора, создание учениками своих версий игры Spacewar, генерирование музыки и стихотворений, управление со стороны компьютера игрушечным краном, создание светового шоу с помощью управления лампами, самостоятельное создание CAI-курсов для своих сверстников и т.д.


Механическая «черепашка»

На занятиях по Лого дети делали примерно то же, что их нынешние сверстники делают с помощью Arduino и Processing. И акцент на вещах из реального мира (робот-черепашка, игрушечный кран, световое шоу), разумеется, не случаен. Да, управлять краном сложнее, чем найти сумму чисел. Но ведь и гораздо увлекательнее!

PLATO


Под названием PLATO скрывается поражающий воображение проект по компьютерному обучению, созданный силами Иллинойсского университета, при поддержке государства и компании CDC. В 1972 году система состояла из суперкомпьютера и множества подключенных к нему терминалов в различных учебных заведениях. Каждый терминал был снабжен клавиатурой и плазменным монохромным дисплеем с сенсорным управлением и разрешением 512x512. Основная идея проекта заключалась в использовании CAI-курсов высокого качества: с хорошей графикой и музыкой. Здесь можно провести параллель компьютерными курсами на CD-ROM для мультимедийных PC, на которые тоже когда-то возлагались большие надежды.


Терминал PLATO IV

Несмотря на то, что в рамках PLATO был разработан простой высокоуровневый язык TUTOR для создания CAI, на деле уровень используемых в рамках PLATO курсов далеко не всегда оказывался высоким. К счастью, в системе имелась возможность самостоятельно разрабатывать программы на терминалах с помощью TUTOR и делать их доступными для других пользователей. Именно эта возможность позволила PLATO остаться в истории в качестве системы, опередившей свое время, в которой впервые широко использовались чаты, форумы, электронная почта и многопользовательские игры. Эти замечательные вещи были созданы, в основном, обычными школьниками и студентами.

Влияние контркультуры


Контркультура 60-х в США была явлением многоплановым: психоделический рок, движение «Назад к земле», антивоенные протесты и т.д. В компьютерной области контркультурные идеалы включали в себя децентрализацию и персонализацию компьютеров. В противовес ИИ, который мог быть использован корпорациями для управления массами, предлагались подходы, связанные с УИ (усиление естественного интеллекта), которые ставили человека во главе симбиоза человека и машины. Среди основных выразителей данных идеалов следует отметить В. Буша (Vannevar Bush), Д. Энгельбарта (Douglas Engelbart) и Т. Нельсона (Ted Nelson). Большую популярность в контркультурной среде имели также идеи изобретателя Б. Фуллера (Buckminster Fuller). Одним из известных высказываний Фуллера является: «если вы хотите научить людей думать по-новому, даже не пытайтесь их учить. Вместо этого, дайте им инструмент, использование которого приведет к постижению новых способов мышления».

Это были идеалы, которые вполне разделял Боб Альбрехт, открывший в конце 60-х, скорее всего, первый в мире компьютерный клуб под названием «Народный компьютерный центр» (People's Computer Center, PCC). В него мог попасть любой желающий и использовать мини-компьютеры и программируемые калькуляторы по своему вкусу: для игр, обучения и написания программ.

Атмосферу клуба можно представить себе с помощью следующей цитаты из книги С. Леви.

«Воздух обычно был заполнен стрекотом терминалов, один из которых был присоединен к PDP-8, а другой — к телефонной линии, через которую можно было связываться с компьютером в компании Hewlett-Packard, предоставившей для PCC бесплатное время. Весьма вероятно, что кто-нибудь играл в одну из игр, которую написала разросшаяся группа хакеров PCC. Иногда домохозяйки, сидевшие дома с детьми, приходили с ними сюда и неожиданно увлекались программированием, да так, что мужья начинали беспокоиться, что лояльные до сего момента матери забрасывали и детей, и кухню в пользу радостей Бейсика. Некоторые бизнесмены пытались запрограммировать компьютер для предсказания котировок на бирже, и тратили на эту химеру несчетное количество времени.

Газета Saturday Review цитировала Альбрехта: «Мы хотели бы, чтобы по соседству с
людьми работали дружественные для них компьютерные центры, куда может спокойно
зайти любой человек, точно так же, как он заходит в боулинг или в игровые автоматы, и придумать, как интересно провести время с компьютером».

Подход Альбрехта состоял в том, чтобы создать для детей такую обстановку, в которой они могли бы учиться самостоятельно. Разумеется, сотрудники PCC всегда были готовы ответить на вопросы посетителей клуба или предложить самоучитель. Регулярно проводились семинары. Альбрехт о процессе обучения высказывался так.

«Когда дети впервые приходят в PCC, они обычно играют в игры. Иногда 2 или 3 недели. Но в какой-то момент почти каждый ребенок задает вопрос: „А как научить компьютер играть в такие игры? Как я могу написать игру?“ После того, как ребенок изучил азы математики, возможно, с помощью CAI, мы можем объяснить ему, как писать подобные программы-тренажеры самому, для обучения других детей. И, возможно, его программа будет полезнее для других детей, чем программа, написанная ученым-бихевиористом, сидящем где-то в своей башне из слоновой кости».

Кстати говоря, знаменитая компьютерная игра «Охота на Вампуса» (Hunt the Wumpus, 1972) была написана именно в стенах клуба PCC.

«Народная компьютерная компания»


В 1972 году Альбрехт и его коллеги начали выпускать газету под названием «Народная компьютерная компания». Это было не первое компьютерное издание. До него существовали Computers and Automation (1950), Datamation (1957) и Computerworld (1967). Но «Компания», определенно, стала первой компьютерной газетой, ориентированной на широкого читателя. В номерах много места уделялось Бейсику и листингам игр на этом языке. Большое число статей было посвящено компьютерному искусству (графика, музыка, генераторы стихов). Имелись статьи на тему выбора мини-компьютера, обзоры книг. Газету PCC отличала необычная верстка: разнообразные шрифты, неожиданное расположение текста, рисунки от руки.

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


Рисунок из первого номера газеты PCC

Влияние PCC (клуба, компании, газеты) оказалось очень велико. Без PCC не было бы знаменитого «Клуба самодельных компьютеров» (Homebrew Computer Club). Из PCC вырос «журнал доктора Добба» (Dr. Dobb's Journal), а также академический «Журнал компьютерной музыки» (Computer Music Journal).

В наше время сам формат журнала о компьютерах практически полностью перестал существовать, но если вы читали в начале 90-х отечественный журнал «ZX-Ревю», то перелистывание страниц PCC может вызвать у вас ностальгическую улыбку.

«Что делать после того, как вы нажали ENTER»


В 1975 году силами PCC была издана замечательная книга о компьютерных играх под названием «Что делать после того, как вы нажали ENTER» (What to Do After You Hit Return).

Как ни странно, это была не первая книга на данную тематику. Еще в 1973 году вышла книга Д. Эла под названием «101 компьютерная игра на Бейсике» (101 BASIC Computer Games). Любопытно, что в ней выражаются благодарности все тем же Альбрехту и PCC. Список Эла состоял из игр, которые он адаптировал к DEC-версии Бейсика с других языков и компьютеров. Каждая игра сопровождалась небольшим описанием, примером игрового процесса и листингом.

Вернемся к «Что делать после того, как вы нажали ENTER». В книге собраны, в основном, оригинальные игры, многие из которых были в предыдущие годы опубликованы в газете. Представленные игры можно разделить на несколько следующих категорий.

  • Варианты угадывания числа.
  • Игры в слова.
  • Настольные игры.
  • Прятки на 2d-сетке.
  • Игры с узорами (игра «Жизнь», генераторы лабиринтов и т.п.).
  • Пещеры (путешествия по графам-деревьям, Wumpus).
  • Симуляции (Hamurabi, King, Civil War, Market, симуляции из Хантингтонского проекта).
  • Научно-фантастические игры (Star Trader, Star Trek).


Обложка книги об играх от PCC.

Любопытно, что данная книга в интернете (на archive.org) появилась совсем недавно, в начале 2017 года. И теперь уже стали видны некоторые неточности, допущенные компьютерными историками, не имевшими доступа к тексту.

«Звездный торговец»


Особенный интерес, на мой взгляд, в «Что делать после того, как вы нажали ENTER» представляют даже не сами игры, а подход к их описанию, который я далее проиллюстрирую на примере «Звездного торговца».

Игра «Звездный торговец» была разработана в 1974 году Дэйвом Кауфманом (Dave Kaufman), сотрудником PCC и большим любителем фантастики. Игра является одной из самых объемных по коду для своего времени. Ее размеры превышают размеры таких «тяжеловесов», написанных на Бейсике, как «Звездный путь» и «Орегонская тропа». По сути, перед нами родоначальник жанра космической торговли.

На странице, посвященной «Звездному торговцу», приведено общее описание и игровые правила. Это пошаговая игра для нескольких игроков, каждый из которых владеет несколькими космическими кораблями. Корабли перемещаются от одной планетарной системы к другой и занимаются торговлей. Системы имеют различный уровень развития. В центре находятся самые развитые из них, здесь можно приобрести высокотехнологичные товары. На приграничных системах вам продадут сырые материалы. Основная задача игроков — заработать больше, чем соперники. С течением игрового времени планетарные системы медленно развиваются, а на карте могут быть открыты новые звезды.


Звездная карта из игры

Игра достаточно увлекательна, и стоит заметить, что не в педагогических правилах PCC представлять свои игры в виде черных ящиков, недоступных для понимания внутреннего устройства и его изменения. Просто играть недостаточно. Играть в создание собственного варианта игры — вот где настоящее удовольствие! Поэтому далее в книге имеется часть, озаглавленная «2 страницы идей для Звездного Торговца». Идеи эти призваны стимулировать воображение читателя, а также сподвигнуть его на собственное творчество. Приведу лишь некоторые из них.

  • Создайте новую макроэкономическую модель.
  • Создайте на карте более одной звезды 1 класса (самый высокий уровень развития), чтобы с самого начала существовали конкурирующие торговые центры.
  • Позвольте игроку «подрабатывать» пиратством. Но если он будет пойман — (придумайте сами).
  • Как насчет торговли между кораблями игроков?

В книге подробно объясняется, как устроены основные элементы игры. В частности, для создания звездной карты используется простой алгоритм процедурной генерации. Алгоритм торгов на планетарных системах организован с помощью постепенно сужающегося ценового окна. Экономическая модель задана с помощью графика, где по оси X представлены классы развития планетарных систем, а ось Y отражает производство или потребление того или иного товара. В программе элементы графика представлены в виде коэффициентов уравнения прямой.


Экономическая модель «Звездного торговца»

В сети мне встречались воспоминания о том, как несколько студентов в 70-х без особенных усилий сделали многопользовательский вариант «Звездного торговца», где каждый игрок управлял процессом со своего телетайпа.

Реализация на Питоне


BASIC-код «Звездного торговца» существует в интернете достаточно давно. При этом, почему-то, никто до сих пор не заинтересовался переводом игры на более современный язык. Одна из причин, возможно, в том, что выложенный в интернете код имеет неверные данные экономической модели в DATA-операторах. Выяснить это удалось, только когда книга появилась онлайн-доступе. Мне игра показалась интересной и незаслуженно забытой, поэтому я решил потратить время на собственную реализацию на Питоне и постараться максимально выдержать соответствие с оригиналом.

«Звездный торговец» написан на Бейсике для системы 2000F компании Hewlett-Packard. Поэтому в первую очередь потребовалось найти документацию на 2000F и разобраться, как работают нестандартные конструкции. Оригинальная программа разбита на два файла. Один из этих файлов используется для настройки новой игры, а другой — для игрового процесса. Созданные данные для новой игры помещаются в специальные COM-массивы (от слова common — общий), которые находятся в памяти, доступной для других программ на Бейсике. Таким образом в то время экономили драгоценную оперативную память. При разборе алгоритмов определенные проблемы доставила неструктурированность кода, а также использование операторов сравнения в арифметических выражениях.

Игра была переписана на Питоне дважды. Для первого раза использовалась прослойка, которая позволила оставить без изменений некоторые «идиомы» Бейсика, такие, как индексы массивов, начинающиеся с 1. Во второй раз я постарался сделать код более читаемым, выдержать его в нормах Питона. Для тестирования использовался генератор случайных команд, с помощью которого имитировались действия игроков. Длительность игры выставлялась на сотни лет и после прогона изучался лог игры на предмет каких-то ошибок.

Не скажу, что результат меня полностью устраивает. Хотелось бы сделать код еще более читаемым, особенно, для начинающих. Тем не менее, предлагаю ознакомиться с проектом на github: github.com/true-grue/trader

Заключение


В процессе чтения «Что делать после того, как вы нажали ENTER», у меня возникла следующая мысль: было бы здорово иметь современное издание, с кодом не на Бейсике, а на Питоне (или Луа, или другом подходящем для начинающих языке). Необязательно это будет та же самая книга. Более важен дух книги: описание увлекательных игр с предоставлением компактного и читаемого кода и, что самое главное, с подробным описанием внутреннего устройства, а также советами, как игру можно улучшить.

Крис Крофорд (Chris Crawford), заслуженный разработчик игр, в конце 80-х ввел термин «интенсивность процессов» (process intensity). Термин этот для конкретной игры отражает, в какой степени процессы (то есть игровые алгоритмы, уравнения, правила) преобладают над данными (графика, музыка, текст). Очевидно, что наибольшей интенсивностью процессов обладают как раз такие ранние текстовые игры, как «Звездный торговец». В небольшом количестве строк кода сконцентрировано ядро игры, «сырой» игровой процесс.

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

Литература


С. Леви, «Хакеры: Герои компьютерной революции».
Книга увлекательная, хотя и содержит некоторые неточности. Термин «хакер» автором используется в старом, положительном смысле.
Перевод: rus-linux.net/MyLDP/BOOKS/zip/hackers-heroes.pdf

Статья «Две компьютерных экономических игры для шестиклассников».
Данный текст представляет большой интерес для историков компьютерных игр.
Ссылка на sci-hub

Письмо Алана Кэя с критикой игры SimCity.
www.donhopkins.com/drupal/node/134

Статья о хантингтонском проекте по созданию Бейсик-симуляций.
files.eric.ed.gov/fulltext/ED174467.pdf

История создания игры «Орегонская тропа».
motherboard.vice.com/en_us/article/qkx8vw/the-forgotten-history-of-the-oregon-trail-as-told-by-its-creators

История создания игры «Охота на Вампуса».
www.atariarchives.org/bcc1/showpage.php?page=247

Статья «20 вещей, которые можно сделать с компьютером» о применении Лого.
www.stager.org/articles/twentythings.pdf

Также стоит обратить внимание на книгу C. Пейперта, которая в русском переводе называется «Переворот в сознании: дети, компьютеры и плодотворные идеи» («Mindstorms»).

Эмулятор PLATO. До сих пор не так много имеется информации о том, что собой представляла эта система. На данном ресурсе вы можете зарегистрироваться и самому увидеть PLATO в действии.
www.cyber1.org

Удивительная статья 1972 года в знаменитом журнале Rolling Stone. О первом чемпионате по киберспорту, о разработках Xerox PARC и многом другом. Автор, Стюарт Брэнд, тесно сотрудничал с Бобом Альбрехтом в то время. Советую еще поискать «Всемирный каталог» Брэнда.
www.wheels.org/spacewar/stone/rolling_stone.html

Подборка номеров газеты PCC.
archive.org/search.php?query=%22PCC%20Newsletter%22
searchworks.stanford.edu/catalog?f%5Bcollection%5D%5B%5D=cj445qq4021

Книга «Что делать после того, как вы нажали ENTER».
archive.org/details/Whattodoafteryouhitreturn

Книга «101 компьютерная игра на Бейсике».
www.ccapitalia.net/descarga/docs/1975-101-basic-computer-games.pdf

Интенсивность процессов по Крису Крофорду.
www.erasmatazz.com/library/the-journal-of-computer/jcgd-volume-1/process-intensity.html
  • +21
  • 5,9k
  • 8
Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама
Комментарии 8
  • 0
    Спасибо за интересную статью.

    Посмотрел на проектик в гитхабе — да там довольно трудночитаемый код. Понятно что он с бейсика переводился (это прямо чувствуется :) ), но над кодом надо еще работать. Я посмотрю еще — может что-то предложу более конкретное в виде пулреквеста.
    • 0
      Спасибо за отзыв!

      Увы, «дух» Бейсика все еще витает в коде. Собственно, третье переписывание кода на Питоне должно бы происходить уже без оглядки на оригинальный исходный текст. Но меня на этот этап не хватило. Много было потрачено времени на разбор оригинала на HP BASIC. Чтобы было понятнее, каким был оригинал, вот файлы: github.com/oubiwann/star-traders/tree/master/BASIC/HP-BASIC
      • 0

        Духов разгонять лучше именно без оглядки на оригинал.

        • 0
          Разумеется. По большому счету, было бы полезно иметь две версии игры. Текущий вариант представляет собой самый простой способ познакомиться с оригиналом. Я постарался, как смог, обеспечить максимальное соответствие с игрой 74 года. С точностью до алгоритма RND :) Это ведь важно для целей компьютерно-игровой истории-археологии. А вот вторая версия, для начинающих, еще ждет своего часа (и автора). Насколько было бы проще, если бы игра изначально была написана на Лого или Смолтоке! Но, что поделаешь, это языки в то время были «элитарными», ну а Бейсик — поистине народным :)
    • +1
      Ээээх, бейсик… Вспоминаю школьные «Корветы»… Среди стандартных моноромных серых мониторов был один дико модный, тоже монохромный, но зелёный! Я его оккупировал всегда, фигачил всякие картинки. Верхом творчества стала картинка домика с дымящей трубой, мерцающие звёзды и восход Луны. А традицию зелёного шрифта я перетащил в баш =)
      Интересная статья. Сейчас надо наоборот уже агитировать, увы. Где-то на рандомной библиотеке наткнулся на опрос по поводу того, что японцы вводят программирование уже в среднюю школу (по нашим меркам это с 5 класса). Весь мир за. А у нас астрономию отменили, астрофизику не преподают, зато опиум для народа завезли…
      • 0
        Информатика и в наших школах с 4-го. Там мути много (недавно у дочки смотрел учебник для 5-го класса), но базовые понятия (объекты, свойства, иерархия, файл, каталог, процесс, алгоритм, программа и т.п. включая системы счисления). А программы для черепашки они еще в прошлом году (4й класс) писали.

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

        У них уже почти на любой вопрос ответ один — google…
      • +1
        Спасибо за статью. Одно упоминание Кея, Пиаже и Папперта, уже достойно уважения.
        Шикарнейшие отсылки. (Кстати, ссылочки на доступные цифровые копии упомянутых вами журналов и книг, для тех кому лень искать, можно в конце статьи оставить, это не возбраняется, насколько мне известно ;)
        • 0
          Большое спасибо, что напомнили по поводу списка литературы. Теперь он есть, надеюсь, он окажется полезен :)

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.