Жизнь в мире компьютерных игр - Ли Нунан Дженнифер. Страница 27


О книге

Вскоре после этого появилась усовершенствованная версия этой машины – Ферранти Марк 1. Ее Стрейчи тоже старался использовать для решения скорее творческих, чем математических задач. Сначала он выработал способ изменять высоту звука щелчков и скрежетания, издаваемых компьютером, и выстроил их в мелодии «God save the Queen» и «Baa, Baa, Black Sheep». В 1952 году он нашел себе новый интерес: теперь он решил, что Ферранти необходимо научить писать любовные письма.

Стрейчи написал шаблон, который позволял случайным образом сочетать несколько текстовых фрагментов и отдельных слов в формате письма. Получившиеся послания были хоть и нескладными, но вполне понятными. Иногда компьютер даже создавал нечто близкое к поэзии: «Я горю от страсти к тебе, вся душа моя от тебя в огне» или «Мое обожание страстно жаждет твоего внимания». По сегодняшним меркам звучит не слишком романтично, но зато по этим строчкам можно составить представление о том, какие слова были распространены для выражения привязанности в Великобритании в 1950-е. «Расположение» и «приязнь» в то время были синонимами любви, а среди распространенных обращений были, например, «милый мой» и «малыш» (помимо классических «дорогой» и «любимый»).

Отраслевой термин для такого рандомизированного шаблона или – если конкретизировать – идеи доводить рандомизированные шаблоны до уровня настоящего творчества звучит как «процедурная генерация». Возьмем для примера «Гамлета» Шекспира. Перенесем место действия из Дании в Африку, а людей заменим львами. Вдруг перед нами «Король Лев» со всеми сюжетными деталями: тут и дядюшка – узурпатор и убийца, и страдающий экзистенциальной тревогой протагонист, который на время исчезает, а потом возвращается, чтобы заявить свое право на трон. Затем перейдем к «Вестсайдской истории». Чем больше отдельных элементов сюжета вы заметите, тем ближе окажетесь к совершенно новому сюжету, в котором никто не узнает оригинал. Можно задать компьютеру начальную точку, указать ему, какие куски истории разрешено менять и как это делать: например, нельзя менять Данию на пчел, только на другие территории. Именно такой процесс и называется процедурной генерацией.

Что интересно, популярная детская игра Mad Libs[3] была изобретена совсем в другом месте, но в то же время, когда Стрейчи предпринял первые попытки создать алгоритм для любовных писем. Крис Кроуфорд, основатель Конференции разработчиков компьютерных игр, который как-то даже поднял ради искусства меч в воздух, заразился идеей компьютера, который мог бы сочинять истории, и в конце концов ушел из игровой индустрии ради разработки программы Storytron. Я не хотел заходить так далеко, но при этом знал, что совсем без использования процедурно генерируемого сюжета Covert Action будет неконкурентоспособной.

После нескольких месяцев работы мой прототип подавал некоторые признаки жизни, но при этом заметно пробуксовывал. Мы с Брюсом сделали два или три десятка шаблонов детективных историй, в которых при каждом сеансе использовались разные варианты плохих парней, городов и тайных организаций. Разнообразия должно было хватить на то, чтобы удовлетворить запросы обычного игрока, но до прорыва, о котором я мечтал, было еще далеко. Паттерны вскоре становились слишком узнаваемыми, шаблоны – предсказуемыми. Модель с подстановкой вариантов в специально оставленные в истории пробелы по сути своей означала, что ничего, кроме этих пробелов, не подлежит изменению, и рандомизированный фрагмент данных не оказывает никакого влияния на те элементы сюжета, которые идут после него. Обычно такие проблемы решаются простым увеличением объема данных: больше шаблонов, больше взаимозаменяемых элементов, более длинные списки вариантов. Но даже если бы у нас была для этого свободная память (а ее у нас не было), такой результат все равно меня бы не устроил. Я хотел сделать так, чтобы история планировалась в самом начале игры, но при этом концовка становилась ясна только в самом финале – как в детективе про Шерлока Холмса.

Честно говоря, я рассматривал этот проект как своеобразную разминку и возможность отладить технологии, которые потом я собирался использовать при разработке более совершенной игры в том же стиле – о ней я мечтаю до сих пор. Представьте себе, как здорово было бы играть в игру, где компьютер подбрасывает вам важнейшую улику в самом начале и ждет, пока вы разгадаете ее истинное значение. Причем она будет не выбираться из заранее составленного списка улик вроде обшарпанной замочной скважины или отпечатка грязной обуви, а формироваться на основе некоего обобщенного представления о том, что нормально, а что, следовательно, выбивается из нормы. Для этого разработчику нужно было бы задать правила, по которым функционирует реальный мир, установить все причинно-следственные связи, которые мы с вами принимаем как само собой разумеющиеся, а потом на этой основе сделать практически бесконечный список правил, прописывая при этом последствия поломки любого из звеньев этой логической цепочки, ее влияние на следующие звенья… Неважно. Как я и сказал, пока это остается мечтой. Важно то, что Covert Action не соответствовала моим ожиданиям.

Брюс чувствовал, что у меня в отношении нашего проекта все меньше энтузиазма, да и сам, наверное, испытывал нечто похожее. Мы оба знали, что игра получается неплохая, но не более того, и что по-настоящему замечательной она никогда не станет. В то же время моя жена Джиджи ждала нашего первого ребенка, и у меня, как и у всех новоиспеченных родителей, происходило изменение жизненных приоритетов и переоценка ценностей. Я решал проблемы Будущего, и по сравнению с ним Прошлое выглядело во всех отношениях устаревшим.

Но признать поражение было трудно, особенно если учесть, что я все еще верил в потенциал нашей идеи, хоть и не был в восторге от текущего уровня ее воплощения. Мне и раньше случалось бросать неудачные разработки, но никогда я не тратил на брошенные проекты столько времени и сил. Более того, теперь речь шла не только о моем личном времени. Когда я работал над играми в одиночку, извиняться за любые неудачи мне нужно было только перед самим собой, но в этом случае вместе со мной с самого начала проекта работал Брюс, и я не хотел поступить с ним несправедливо.

Я хотел бросить проект, но не понимал, как это можно сделать.

Мне нужен был отпуск.

Глава 9. Подождите секундочку!

F-15 Strike Eagle, 1989

За несколько страниц до этого я немного отклонился от истины. Формально авиасимулятор с моим именем – не в названии, а в положенном ему месте в титрах – был выпущен в 1989 году, назывался он F-15 Strike Eagle II. Но я не считаю, что по-настоящему над ним работал. А если и работал, то ничего об этом не помню.

В игре, по сути, использовалась видоизмененная версия кода F-19 Stealth Fighter – ничего нового. Возможно, предполагалось, что я должен работать над этой игрой, но вместо этого я сидел в своем офисе и занимался Covert Action. А может быть, я и внес в программный код какие-то небольшие изменения, но авиасимуляторы настолько меня уже не вдохновляли, что у меня не сохранилось об этом никаких воспоминаний. Не знаю. Но мне не нравится присваивать себе лавры за игру, о работе над которой я не помню. Шести авиасимуляторов мне более чем достаточно, присваивать себе еще и седьмой мне совсем не хочется (Достижение разблокировано – «Жизнь коротка»: закончите главу за одну страницу.).

Глава 10. Все на борт!

Sid Meier’s Railroad Tycoon, 1990

Как оказалось, пара недель на пляже – именно то, что мне было нужно. В августе я вернулся в офис с загаром на лице и дискетой в руке: все мои беспокойства по поводу Covert Action остались в прошлом.

– Что это? – спросил Брюс. Он был удивлен (а может быть, и не очень), что я работал даже в отпуске. Он повертел неподписанную дискету в руках. – Еще одна игра про шпионов?

Перейти на страницу: