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