Хакеры: Герои компьютерной революции - Стивен Леви
Шрифт:
Интервал:
Закладка:
Затем он начал работать над формами двух ракетных крейсеров: оба были классическими космическими кораблями из мультфильмов. Для того чтобы отличать их друг от друга, он сделал один корабль в виде короткой сигары с утолщением по середине, а второй — в форме тонкой трубы. Процедуры синуса и косинуса Рассел использовал для того, чтобы управлять движением кораблей в разных направлениях. Затем он написал процедуру стрельбы торпедой (маленькой точкой). Она вылетала из носа космического корабля, после того как Рассел нажимал на специальный переключатель. Компьютер выполнял определение положения космического корабля и торпеды, если они оба находились в одной точке, программа вызывала процедуру, которая заменяла несчастный корабль случайным месивом из точек, которые представляли собой взрыв. (Этот процесс назывался «обнаружением столкновений»).
Все это представляло собой существенный концептуальный шаг по направлению к программированию в «реальном времени»: события, происходившие в компьютере, совпадали с временной шкалой, в которой обычно работали человеческие существа. Другими словами, Расселу удалось сэмулировать онлайновый, интерактивный стиль отладки, который почитали хакеры больше своей свободы, и который позволял видеть какая из инструкций вашей программы обработалась неправильно. После чего, использовав переключатели или Flexowriter можно было перескочить на другую инструкцию, причем все это время на машине работал отладчик DDT. Игра «Космические войны», которая была компьютерной программой, помогла понять, что все игры, а, может быть и что-нибудь еще, работают как компьютерные программы. Когда у вас что— то начинает не получаться, вы модифицируете параметры и, если повезет, это помогает. Затем вы добавляете новые команды в программу. Те же принципы были пригодны и для стрельбы по мишеням, выработке стратегии для игры в шахматы и написания курсовой работы в МТИ. Именно поэтому компьютерное программирование было не только технической гонкой, но и подходом к решению жизненных проблем.
На последних стадиях программирования, Сандерс помог Расселу, и они предприняли несколько 6-8 часовых сеансов хакинга. Где-то к концу недели, в пятницу, Рассел продемонстрировал первую версию игры. В ней были два корабля, у каждого из которых было по тридцати одной торпеде. Также на экране присутствовало несколько случайных точек, которые изображали собой звезды на этом небесном поле битвы. Вы могли маневрировать кораблями, щелкая четырьмя переключателями на консоли PDP-1, которые представляли собой «поворот по часовой стрелке», «поворот против часовой стрелки», «ускорение» и «выстрел торпедой».
Слаг посмотрел на первую, еще сырую версию игры, и положил ленту с программой в коробку, где лежали системные программы для PDP-1, и начал ожидать модернизаций со стороны своих товарищей. «Космические войны» не были простой компьютерной симуляцией, вы действительно могли быть пилотом ракетного крейсера — это был осуществившийся в реальности роман Дока Смита. Та же самая сила, что заставляла Рассела делать эту программу, которая позволила создать на PDP-1 свою собственную маленькую Вселенную, была доступна и для других хакеров, у которых были свободны руки для улучшения вселенной Слага Рассела. И они сделали это немедленно.
О направлении улучшений можно было бы догадаться по общей реакции хакеров на оригинальный код, который использовал Рассел для своих торпед. Зная, что в реальной жизни, это оружие не всегда совершенно, Рассел решил сделать свои торпеды более реалистичными. Вместо того чтобы заставлять их летать по прямой, до тех пор, пока у них не заканчивалось топливо, после чего они взрывались, он добавлял в их движение некоторые случайные вариации по направлению и скорости. Но вместо того чтобы воздать должное правдоподобию, хакеры резко его осудили. Им нравились хорошо работающие системы и надежные инструменты, а столкновение с тем, что работало ненадлежащим образомих привело в бешенство. Рассел позднее понял, что «оружие и инструменты, которые не слишком надежны, не пользуются большим уважением у людей, которые обычно привыкли им доверять», и это было особенно характерно для данного случая.
Но, конечно, это все можно было очень легко исправить. Преимущество, которое имел мир программ перед реальным миром, состояло в том, что вы могли решить серьезную проблему, такую, например, как плохо управлявшиеся торпеды при помощи всего лишь нескольких команд. Именно это привлекало в хакерстве больше всего. После того как торпеды были поправлены, народ начал тратить много часов на дуэли в открытом космосе, и еще больше времени на то, чтобы улучшить «Космические войны».
Питеру Самсону также понравилась идея «Космических войн», но он не мог вынести вид случайно сгенерированных точек в качестве звездного неба. На настоящем небе звезды располагались в строго определенном порядке. «Мы сделаем то, что есть на самом деле», —дал себе обещание Самсон. Он взял толстый атлас звездного неба и начал вводить данные в написанную им процедуру, в результате работы которой генерировались настоящие созвездия, которые были видны в ясную ночь наблюдателю на экваторе. Присутствовали все звезды до пятой величины включительно. Самсон даже повторил их относительную яркость, управляя частотой зажигания на экране точки, представлявшей собой звезду. С помощью программного трюка он добился, чтобы по мере игры, после того как экран занимал 45 процентов неба, небо сдвигалось в нужную сторону. Помимо добавления правдоподобия, данная программа «Дорогостоящего Планетария», дала игрокам карту, по которой они могли производить стрельбу ракетами. Поэтому данную игру можно было также назвать «Стрельбы по Кассиопее».
Еще один программист по имени Дэн Эдвардс, был неудовлетворен безостановочным движением двух сражающихся кораблей, что делало игру больше похожей на тест на быстроту пальцев. Он понимал, что добавление гравитации придаст игре стратегическую компоненту. Поэтому он создал в центре экрана звезду-солнце. В том случае если вы пролетали мимо, вы могли использовать притяжение солнечной гравитации для придания скорости, но если вы были не слишком осторожны и приближались к звезде слишком близко, то солнце вас притягивало, что было неминуемой гибелью.
До того как были освоены все стратегические приемы данного усовершенствования, Шэг Гаретц, один из троицы Хайэмовского Института, разработал еще одно интересное новшество. В одном из романов Дока Смита он вычитал, что эти космические рейдеры могли исчезать в одной галактике и появляться в другой посредством «гиперпространственного тоннеля», который переводил вас в загадочное N-ное измерение. Он добавил в игру возможность перехода в «гиперпространство», позволяя игроку в отчаянный момент избежать неприятной ситуации, нажав на «паническую» кнопку, которая перебрасывала его корабль в гиперпространство. За всю игру гиперпространством было разрешено пользоваться трижды, причем, вы никогда не могли заранее знать, куда вы попадете. Иногда вас выбрасывало в непосредственной близости от солнца, и оставалось только наблюдать за тем, как ваш корабль безнадежно притягивается к звезде и находит свою безвременную кончину на ее поверхности. Отдавая должное оригинальному хаку Марвина Минского, Гаретц запрограммировал вхождение в гиперпространство так, что корабль оставлял после себя «фотонную ударную волну» — световое пятно в виде следа, часто остававшегося на дисплее в результате работы Минскитрона.
Вариации были бесконечными. Изменив несколько параметров, вы могли играть в «поливаловку», в которой торпеды выбрасывались потоками, вместо того чтобы выстреливаться по одной. «Давайте включим звездный ветер!», — восклицал кто-нибудь, и тут же хачил игру. После чего появлялся искажающий фактор (warping factor), который заставлял игроков подстраивать свои положения каждый раз после выполнения перемещений. Хотя принимались все улучшения игры, сделанные хакерами, считалось крайне плохой формой поведения никому не сообщать о «странных модификациях» игры. Поэтому эффективное общественное давление, которое вдобавок было усилено Хакерской Этикой, стимулировало изготовление новшеств, а не разрушительных свойств и предотвращало появление подобного беспорядка. В любом случае, хакеры уже занимались этими невероятными изменениями в системе, и они использовали дорогостоящий компьютер для того, чтобы играть в самую великую игру в мире.
В «Космические войны» играли до одури. Для некоторых она стала пристрастием. Хотя никто не мог официально записаться на сеанс времени, чтобы посвятить его игре, всю эту весну, каждый свободный момент на машине был занят какой-нибудь версией игры. С бутылками Коки в руке (а иногда и с деньгами на кону), хакеры пускались в марафонские турниры. Рассел написал процедуру, которая вела подсчет очков и количество общих выигранных игр, которые печатались на экране в восьмеричном виде. Машинная форма записи не представляла никакой проблемы, так как все легко читали восьмеричные числа. Через некоторое время стал очевиден главный недостаток игры: переключателями на консоли PDP-1 было крайне неудобно управлять, потому что приходилось болезненно выворачивать локти, чтобы держать руки под определенным углом. Именно по этой причине Коток и Сандерс однажды пришли в клубную комнату TMRC и начали подбирать запчасти, из которых впоследствии был собран один из первых компьютерных джойстиков. В течение, примерно, часа вдохновенной работы конструкторской мысли, они сумели собрать из частей лежавших, а то и просто валявшихся по клубной комнате, систему управления. Верхняя ее часть была из масонита, а сама корпусная коробка была изготовлена из дерева. На них были закреплены переключатели для поворота и ускорения, а также кнопка для перехода в гиперпростраство. Все кнопки управления работали бесшумно, так что вы могли тайком подобраться к вашему противнику или, в случае необходимости, скрытно нырнуть в N-е измерение.