В итоге Роберта написала «код» игры на самых обычных бумажных листочках. Затем этот текст мы набрали с клавиатуры – получились простые текстовые файлы, которые я потом сжал, чтобы они занимали как можно меньше места на дискете.
Она описала каждое место в игре примерно так:
Объекты были описаны с использованием того же подхода:
Глаголы:
Существительные:
Сообщения:
Чуть интереснее было с «действиями». Мне нужно было дать Роберте возможность писать код. У Роберты был некоторый опыт программирования, но навыков было немного. Мне предстояло написать на ассемблере настоящий код («интерпретатор»). Мой интерпретатор должен был считывать созданные Робертой таблицы и решать, что выводить на экран.
В таблице «Действия» происходило действие. Чтобы описать его, Роберте нужно было указать комнату, в которой будет происходить действие, какие условия должны быть выполнены, чтобы действие произошло, и что случится, если действие будет выполнено.
Прошло сорок лет, и я давно забыл, как именно выглядел код. Но я помню, что Роберта быстро во всем разобралась и смогла создать таблицу действий без моего участия.
Пока Роберта гейм-дизайнерствовала, исписывая одну стопку бумаги за другой, я писал код для нескольких утилит:
1) Жене нужен был какой-то простой экран для ввода данных, куда можно было бы вводить данные с клавиатуры и создавать текстовые файлы, которые я буду компилировать.
2) Ей нужен был компилятор, который брал бы ее текстовые файлы и компилировал их в серию чисел.
3) Ей нужен был интерпретатор, который бы выводил на экран игровой процесс уже на основе скомпилированных данных.
Тут нужно учитывать, что в те времена у разработчиков игр не было никакого инструментария. Сейчас есть приложения и для анимации, и для редактирования/отладки исходников, а тогда ничего этого не было. Мне каким-то образом удалось написать код прямо на машинном языке (он же ассемблер), но я не помню, как это сделал. Возможно, у самой Apple и были какие-то утилиты, но мне они были недоступны. Что бы я ни делал, это получалось очень примитивно, ужасно медленно и болезненно. И, не забывайте, у меня была еще и работа на полный день плюс несколько подработок. Выкроить сколько-то часов еще и для Робертиного проекта было нелегко.
Тем не менее, как мне помнится, уже в течение недели или двух я наловчился выводить на экран картинки Роберты, а за месяц написал утилиты для ввода данных, компилятор и интерпретатор в достаточно работоспособном виде, чтобы жена могла начать отладку своей игры.
Я регулярно заглядывал в тот самый местный компьютерный магазин, где мы купили мой Apple II, чтобы посмотреть, нет ли в продаже каких новых периферийных устройств или программного обеспечения. Тогда компьютерных магазинов было не так много, наверное, не более двух или трех на весь Лос-Анджелес. Во время таких посещений я рассказывал о своем многообещающем компиляторе Fortran и о том, как он перевернет разработку программного обеспечения для Apple II.
И вот в одно такое посещение я принес с собой раннюю копию игры Роберты. И торговля замерла – все, кто был в магазине, собрались вокруг компьютера и смотрели. Каждый хотел что-то набрать на клавиатуре. Я даже не хотел подпускать их к компьютеру, потому что знал, насколько ненадежной тогда была игра: напечатаешь что-то не то, и она вылетит. К сожалению, я не мог удержать публику: все хотели попробовать поиграть.
Хозяева магазина Вивьен и Джин прямо спросили, когда можно будет купить копии игры – они хотели ее продавать. Я был поражен до глубины души и не мог дождаться, когда вернусь домой и расскажу об этом Роберте. Ее маленький проект, который вроде бы лишь отвлекал меня от серьезных дел, похоже, действительно мог оказаться чем-то стоящим!
То, что казалось нам долгим циклом разработки игры, на самом деле заняло не очень много времени. Роберта купила компьютер Apple II на Рождество 1979 года. Mystery House вышла в мае 1980 года.
Роберта разработала для Mystery House упаковку – это на самом деле была всего лишь одна печатная страница, которую вместе с дискетой клали в пакет на застежке «зиплок».
«Что такое приключенческая игра? Согласно словарю, приключение (adventure) – это опасное или смелое предприятие; пускаться в приключение – рисковать, подвергать себя опасности, ввязываться в авантюру. Тот, кто отправляется на поиски приключений: авантюрист, делец, устраивающий рискованное предприятие в надежде на богатство, спекулянт. По сути, приключенческая игра – это фантастический мир, куда вас переносит компьютер. Вы – главный герой художественного повествования, которое разворачивается в неизведанной стране. Это почти как в книгах, которые задействуют ваше воображение и переносят вас в вымышленный мир.
Здесь вы играете и видите происходящее благодаря более чем сотне изображений в формате высокого разрешения, вы играете и видите свои приключения. С HI-RES ADVENTURE можно общаться на чистом английском языке (игра понимает более 300 слов!) Все комнаты этого жуткого старого дома показаны на экране в графике высокого разрешения; здесь есть множество предметов, которые можно брать, нести, бросать, ронять или?..»
Оригинальная упаковка Mystery House
В те времена на домашних компьютерах еще не было программ для верстки и печати. Вкладыш мы делали так: шли в компьютерный магазин, распечатывали нужный текст на тамошнем принтере, затем вручную наклеивали фрагменты текста на лист бумаги, а затем ксерокопировали страницу – сколько нужно было вкладышей, столько и делали копий. Игра потребляла больше памяти, чем предполагалось поначалу, и кое-кто из первых покупателей даже не сумел заставить ее запуститься. Как вы можете видеть на этой фотографии, после того как розничные продавцы выявили проблему, я от руки написал на упаковке требование к памяти. Розничные продавцы на это не жаловались: планки оперативной памяти для Apple II расходились у них как горячие пирожки.
Игра Роберты тут же стала хитом!
Глава 9. Поговорим о буквах– ИНТЕРЛЮДИЯ –(Небольшое отступление, чтобы я мог вклинить что-нибудь другое)
Большинство людей упускает свой шанс, потому что этот шанс одет в спецовку и похож на работу.
ПРИМЕЧАНИЕ: По мере чтения этой книги вам будут попадаться главы с пометкой «Интерлюдия», как эта. В некоторых случаях эти главы представляют собой отступления от повествования. Например, здесь есть интерлюдия, в которой я даю кое-какие советы разработчикам программного обеспечения. Есть и такие интерлюдии, которые важны для понимания того, как работала Sierra. Но они охватывают всю историю Sierra, их нельзя привязать к какой-то точке во времени – например, главка, где я рассказываю о том, как Sierra подходила к маркетингу и стратегии развития продуктов. Некоторые из тех, кому я давал почитать книгу до публикации, предложили мне перенести эти главы в конец, но мне больше нравится, когда они разбросаны по всей книге. Не бойтесь, наслаждайтесь отступлениями, просто продолжайте читать – я вернусь к повествованию чуть позже.
Прежде чем я расскажу о Sierra, я хочу отвлечься и поговорить о том, как я всегда оценивал самого себя и окружающих меня людей. Не стесняйтесь пропустить эту главу – но, если вам любопытно, как работает мое мышление, вы найдете для себя кое-что полезное.
Возможно, вы слышали выражение: «Она (или он) – первоклассный работник». Это что-то вроде рейтинга в компании.
Первоклассных работников («категория А») не так уж много.
Первоклассные специалисты привлекают других первоклассных специалистов. Специалисты второго класса привлекают специалистов третьего.
Это значит, что у большинства людей «категория» – третья (C) и ниже. Полезно ли ранжировать людей? И где вы находитесь на этой диаграмме?
Ранжирование – штука не очень популярная. В современном мире есть тенденция к отказу от оценок. Школы стремятся к тому, чтобы все ученики сдавали выпускные экзамены и получали аттестат. Звучит критика в адрес тестов IQ, SAT[15], вступительных экзаменов в вузы и т. д. Я не буду рассуждать о том, правильно это или нет. Вы уж сами сформируйте собственное мнение о том, как должен выглядеть мир и как он должен работать.
Я могу рассказать вам о том, как я мысленно классифицирую людей и почему я считаю это важным. И, что бы там ни говорили, даже самые непримиримые борцы с системой оценок надеются найти себе первоклассного спеца, когда им нужно отремонтировать холодильник.
Я начну с определения категорий, начиная с самого низа.
Работники категории F отлынивают от работы всеми силами. Они придумывают себе причины не работать. Если такие люди что-то и делают на работе, то, как правило, без конца опаздывают, подсчитывают, сколько отпуска по болезни им положено, преувеличивают малейшую боль, чтобы удрать на больничный.
Работники категории D лишь немногим лучше. Они свою работу делают, но ровно столько, сколько от них требуется за зарплату. Для какой-нибудь работы на заводе такие люди подходят идеально. Они обычно приходят вовремя, отрабатывают смену и уходят домой.
Категория C – это хорошие надежные трудяги. Они хорошо подготовлены к работе, и на них можно положиться.
Работники категории В выделяются в коллективе. Они делают свою работу лучше, чем окружающие. Если дела у фирмы будут плохи и придется уволить две трети всех сотрудников, работники категории В и выше – это те, кого вы оставите. Если вы позвоните такому сотруднику с просьбой поработать вечером или в выходные, он с радостью откликнется и приедет в офис.