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