Традиционной отправной точкой, как я считал, должны были стать крестики-нолики – и история развития технологий шла именно по этому пути, хотя тогда мне это и не было известно. В 1950 году, всего через два года после того, как Тьюринг изобрел компьютер с хранимой памятью, человек по имени Джозеф Кейтс построил четырехметрового гиганта, которого назвал Bertie the Brain («Умник Берти»). Компьютер предстал перед публикой на Канадской национальной выставке и выиграл там все партии в крестики-нолики у тех зрителей, кто захотел с ним сразиться. (Историки часто подчеркивают, что первой компьютерной игрой все же был Tennis for Two («Теннис для двоих»), потому что там, в отличие от «Берти», для вывода информации использовался видеоэкран, а не набор обыкновенных лампочек.) Другие инженеры в 1950-е годы создавали свои независимые версии играющих в крестики-нолики компьютеров, за ними последовали рабочие версии шашек, блек-джека и даже шахмат. Уже в мое время, в 1975 году – именно тогда я пытался самостоятельно изучить основы игрового ИИ, – группа студентов из Массачусетского технологического института сделала механический аппарат для игры в крестики-нолики из детского конструктора Tinkertoy. Их машина, что удивительно, получилась очень похожей на древний «Тотализатор» – там тоже использовались рычаги и рояльная проволока. Мне бы очень не помешало все это знать уже тогда, но без интернета мои порывы к самообразованию были практически лишены поддержки извне. Так что я пробивался в одиночку, не пользуясь плодами чужих знаний.
Пока доктор Шерман гулял по холмам Италии, лаборатория была полностью в моем распоряжении. Я с пользой проводил имеющееся время и каждый день работал над проектом, который сам же для себя и наметил. Прежде всего я создал простую систему ввода информации в текстовой форме, с помощью которой можно было вносить в машину один ход за раз. На тот момент я еще не понял, как заставить компьютер отображать сделанный им ход на экране, поэтому просто запрограммировал его распечатывать изображение игрового поля на стоявшем в соседней комнате принтере, которым могли пользоваться все в здании университета. Я шел к принтеру, брал распечатку, возвращался к своему столу и вносил свой следующий ход. Процесс шел медленно, но по крайней мере у меня была возможность немного размяться. (Если бы я только знал, что через 40 лет игры, заставляющие людей бродить туда-сюда, станут бешено популярны!)
После того как я в третий или четвертый раз забрал распечатанный лист с крестиками и ноликами, на меня обратила внимание управлявшая принтером секретарша.
– Подождите-ка секундочку! – сказала она, хватая лист, который сама же только что мне передавала. – Что это вы тут вытворяете? Компьютеры предназначены не для игр!
У меня не нашлось достойного ответа: для меня было очевидно, что именно для этого они и предназначены.
– Мне придется составить на вас жалобу, – проворчала она, разыскивая на своем рабочем компьютере информацию о моей учетной записи. Она нашла имя и контактные данные моего курирующего преподавателя, и я испугался, что моя мечта о создании игрового компьютера погибнет еще до того, как я закончу одну партию в крестики-нолики. Доктор Шерман открытым текстом не разрешал мне заниматься подобными играми и тоже мог посчитать их чрезмерно легкомысленными. Кто знает, не сошлют ли меня теперь в мир перфокарт.
К счастью, как только секретарша дозвонилась до профессора, находившегося по ту сторону Атлантического океана, он не только за меня поручился, но и любезно разъяснил всем сотрудникам, что у меня есть всеобъемлющее разрешение использовать компьютер как мне заблагорассудится до самого конца лета. Думаю, доктор и представления не имел, к каким последствиям все это приведет, но я был ему очень благодарен.
После окончания университета я начал работать в General Instrument. Там я опять получил доступ к технике, которая находилась далеко за пределами моих финансовых возможностей. Это был 16-битный мини-компьютер Nova (приставку «мини» следует воспринимать со скидкой на эпоху), он тогда считался последним словом техники, ведь его процессор был установлен на единой печатной плате, причем с обратной ее стороны не торчали пучками переплетенные, как макаронины, провода. Все это помещалось в ящике, который по высоте был размером с восьмиклассника и стоил больше нового автомобиля. Вот такая машина была у меня в личном пользовании. Более того, такими же могли похвастаться почти все мои коллеги. Помимо этого, все мини-компьютеры в нашем офисе были напрямую соединены друг с другом, а не привязаны все разом к единой центральной ЭВМ. У нас была настоящая сеть.
Как и университетские телетайпы, бизнес-компьютеры GI не поддерживали никаких графических форматов – только простой текст. Но я был не первым, кто столкнулся с этой дилеммой. Еще в 1865 году, до изобретения печатной машинки, Льюис Кэрролл давал издателю «Алисы в Стране чудес» инструкции относительно того, как расположить буквы наборного шрифта так, чтобы историю удобно было иллюстрировать. После повсеместного распространения печатных машинок популярным хобби стала так называемая символьная графика, по всей стране газеты платили за изображение сложных портретов и пейзажей посредством множества отдельных символов. В 1963 году эта техника приобрела цифровую форму после публикации официального двоичного кода для текста под названием «Американский стандартный код для обмена информацией» (ASCII). Печатным машинкам суждено было прожить еще пару десятилетий, но новая аббревиатура прижилась, и с тех пор картинки, составленные из текстовых символов, стали известны как ASCII-графика.
Для меня потенциал этого метода состоял не в возможной сложности изображений, а в скорости, с которой компьютер мог бы отображать на экране то, что для него было простым текстом. Возможно, этот столбик цифр содержал данные о продажах продуктового магазина, обновляемые с каждым купленным где-нибудь на Западном побережье бананом, а может, это была каменная крепость номер 3s, стреляющая черточками в противника – столбик данных о продажах на другой стороне экрана. Для компьютера никакой разницы не существовало. Я понял, что при правильном расположении текста из символьной графики можно сделать символьную анимацию.
Возможно, на подсознательном уровне я видел в испещренном белыми символами черном дисплее компьютера что-то вдохновляющее, а может быть, я просто подхватил всеобщий фанатизм, но, так или иначе, я решил делать игру на основе «Звездного пути». В ту эпоху, в 1971 году, была создана довольно известная ASCII-игра на ту же тему, автором которой стал Майк Мэйфилд. Это была пошаговая игра, в которой клингоны и астероиды располагались на сетке, наложенной сверху. Игра стала настолько популярна, что ее программный код был напечатан сразу в нескольких книгах и с тех пор регулярно переписывается ностальгирующими энтузиастами для работы на новых операционных системах. Сейчас есть даже версия, в которую можно играть на смартфоне с операционной системой Android. Эта широко распространенная в то время и опубликованная во многих источниках программа была создана не мной, и я ни в коем случае не собираюсь пожинать лавры вместо ее создателя. Более того, насколько я знаю, моя ASCII-игра на тему «Звездного пути» никогда даже не покинула внутреннюю сеть компании General Instrument.
В отличие от пошаговой игры Мэйфилда, в моем варианте игровой процесс проходил в режиме реального времени, как в игровом автомате. Для начала я нарисовал контуры экрана, использовавшегося в игре Enterprise, при помощи символов подчеркивания, косых и вертикальных линий (тех, что находятся на правой стороне вашей клавиатуры). Этот контур на всем протяжении игры оставался неподвижным, а все, что находилось внутри него, двигалось с частотой несколько раз в секунду. Таким образом я сделал анимацию вражеских космических кораблей и межзвездного мусора, изображенных в псевдотрехмерном виде и летевших в сторону игрока. Анимацию снарядов и лучей бластеров нужно было очень точно рассчитать по времени, а когда игрок подбивал корабль соперника, наградой ему был небольшой, но сочный взрыв. Я даже добавил простенькие звуковые сигналы зуммера, которые в итоге стали для моей игры началом конца.