Инноваторы. Как несколько гениев, хакеров и гиков совершили цифровую революцию - Уолтер Айзексон
Шрифт:
Интервал:
Закладка:
В их группе лучшим программистом был Стив Рассел. Он помогал профессору Маккарти в создании языка LISP[404], который разрабатывался для исследований в области искусственного интеллекта. Рассел был абсолютно чокнутый, увлекающийся, переполненный невероятными идеями. Его интересовало все, от паровозов до думающих машин. Он был небольшого роста, легко приходил в волнение, у него были вьющиеся волосы и толстые очки. Когда он начинал говорить, казалось, будто кто-то нажал кнопку быстрой перемотки. Упорный и энергичный, он был склонен все откладывать, за что заработал кличку Слаг[405].
Как и большинство его друзей-хакеров, Рассел был заядлым поклонником плохих кинофильмов и второсортной научной фантастики. Его любимый автор Эдвард Эльмар «Док» Смит, неудачливый инженер мукомольной фабрики (эксперт по отбеливанию муки и составитель рецептов теста для пончиков), писал дрянные научно-фантастические книжки в жанре «космической оперы». В них описывались мелодраматические приключения, сопровождающиеся битвами со злом, космические путешествия и шаблонные романтические истории. По словам Мартина Греца, члена «Клуба технического моделирования железных дорог» и сотрудника института Хинэма, описавшего, как создавались Spacewar, Док Смит «писал с грацией и изысканностью отбойного молотка». Грец так пересказывает одну из характерных для Дока Смита историй:
После неразберихи вначале, когда все старались правильно запомнить имена друг друга, компания накачанных Храбрецов отправилась бороздить просторы Вселенной. Они должны были вырубить последнюю банду галактических головорезов, взорвать несколько планет, изничтожить всевозможные отталкивающие формы жизни и просто, черт побери, хорошо провести время. Предполагалось, что в экстренных ситуациях, которые случались постоянно, наши герои смогут предложить законченную научную теорию, разработать новую технологию, позволяющую воплотить ее в жизнь, сделать оружие, которым можно взорвать плохих парней, и все это время они, запертые в отсеке своего космического корабля, будут мотаться туда-сюда по бесконечным просторам галактики[406].
Неудивительно, что Рассел и Грец с друзьями, страстно любившие подобные творения, решили придумать для PDP-1 космическую игру. «Я только закончил читать „Сагу о Ленсменах“ Дока Смита, — вспоминал Рассел. — Негодяи преследовали его героев по всей галактике, а им по ходу дела надо было придумывать, как от них избавиться. Это и навело нас на мысль о Spacewar»[407]. Будучи занудами, они стали называть себя исследовательской группой по изучению правил ведения космических войн института Хинэма, и «Слизняк» Рассел приступил к написанию программы[408].
Однако верный своему прозвищу, дело до конца он не довел. С чего начать программу для игры, он знал. Профессор Мински случайно обнаружил алгоритм, позволяющий построить с помощью PDP-1 окружность. Расселу удалось модифицировать его так, что на экране появлялись три точки, которые, взаимодействуя друг с другом, вырисовывали небольшого размера красивые узоры. Мински назвал придуманную им программку Tri-Pos[409], но студенты окрестили ее «Минскитроном». Она была хорошей основой для игры, где стреляют и сражаются космические корабли. Завороженный «Минскитроном» Рассел потратил несколько недель, пытаясь разобраться, насколько он им подходит, но увяз, кода дело дошло до стандартных программ с синусами и косинусами, которые должны были управлять движением космических кораблей.
Когда Рассел рассказал о своих затруднениях, один из членов клуба Алан Коток понял, как с ними справиться. Он отправился в один из пригородов Бостона, в штаб-квартиру компании DEC, изготовившей PDP-1, нашел там симпатичного инженера, у которого были необходимые для расчетов подпрограммы. Коток объявил Расселу: «Ну, вот программа с тригонометрическими функциями. Что ты теперь придумаешь в свое оправдание?» Рассел позднее признался: «Я задумался, но ничего придумать не мог, поэтому пришлось засесть за расчеты»[410].
Рассел провозился все рождественские каникулы 1961 года и за несколько недель придумал метод, позволявший манипулировать точками на экране. С помощью переключателя на панели управления их можно было заставить ускоряться, замедляться и поворачиваться. Затем он заменил точки двумя смешными условными космическими кораблями, один из которых был толстым и раздутым, наподобие сигары, а другой — тонким и прямым, как карандаш. Другая подпрограмма позволяла каждому из кораблей выстреливать точками, словно ракетами, из головной части судна. Когда координата ракеты совпадала с координатой корабля, тот «взрывался», распадаясь на крошечные осколки, двигающиеся в случайных направлениях. К февралю 1962 года в основном все было готово.
С этого момента к пакету программ Spacewar получили доступ все. Рассел выложил ленту с программой в ящик, где хранились другие программы для PDP-1, и друзья занялись ее усовершенствованием. Один из них, Дэн Эдвардс, решил, что гравитационные силы — это прикольно, поэтому он ввел в программу большое солнце, притягивающее корабли. Если ты был недостаточно внимателен, оно могло затянуть в себя твой корабль и разрушить его. Но хорошие игроки научились проскакивать вблизи солнца и использовать его гравитацию, чтобы увеличить импульс и мотаться по космическому пространству с еще большей скоростью.
Рассел вспоминает, что другой их приятель, Питер Самсон, «считал, что звезды у него разбросаны случайно и звездный фон нереалистичен»[411]. Самсон решил, что игре требуется «реальность», то есть созвездия должны быть не просто произвольно разбросанными точками, а настоящими. Поэтому он создал дополнение к программе, которое назвал Expensive Planetarium. Воспользовавшись информацией из The American Ephemeris and Nautical Almanac, он написал программу, показывавшую на ночном небе все звезды вплоть до звезд пятой величины. Указав, сколько раз данная точка экрана возбуждается, ему удалось даже отобразить относительную яркость звезд. Теперь космические корабли проносились мимо созвездий, медленно уходивших за горизонт.
Благодаря открытому доступу к программе, в игре появилось много интересных усовершенствований. Мартин Грец предложил так называемую «кнопку отчаяния», дававшую возможность в случае критической ситуации просто переключить тумблер и исчезнуть, перебравшись на какое-то время в другую размерность гиперпространства. «Суть была в том, что, если уж ничего помочь не может, есть возможность стать невидимым, перепрыгнув в четвертое измерение и исчезнуть», — объяснял Грец. О чем-то подобном, именовавшемся «гиперпространственная труба», он читал в одном из романов Дока Смита. Однако были и ограничения: за одну игру переходить в гиперпространство можно было всего три раза. Твое исчезновение давало противнику передышку, и было неизвестно, в каком месте твой корабль появится снова. Так, он мог окончить свое существование, залетев на Солнце, или объявиться прямо под носом противника. «Такую возможность можно было использовать, но лучше этого было не делать», — объясняет Рассел. В качестве реверанса профессору Мински Грец сделал так, что каждый корабль, исчезающий в гиперпространстве, оставлял за собой сигнатуру «Минскитрона»[412].
(adsbygoogle = window.adsbygoogle || []).push({});