главная  |   статьи  |   гостевая книга |    перекресток миров  |  



Рассказы с фронта кодирования:
Interactive Fiction - за пять лет!

© Stephen Granade
original from: http://www.xyzzynews.com



"Напишите свой собственный Interactive Fiction!" v1.0 by Stephen Granade
Разработано с помощью TADS, Text Adventure Development System.

Начало игры: Ноябрь 1989



Энтузиазм, Часть 1


Ноябрь 1989. Идея написать адвенчуру пришла ко мне, когда я был старшеклассником средней школы. Она родилась, как идея игры для Sierra Online. Я прошел "Hitchhiker's Guide to the Galaxy" и играл в "Ballyhoo" и "Infidel", но о других играх Infocom знал мало. С другой стороны, я прошел почти все игры, выпущенные Sierra, начиная с "King's Quest II" и заканчивая "Space Quest III". У меня были грандиозные планы создавать игры для Sierra вследствие избытка свободного времени и недостатка опыта.

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

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

От людей, вот от кого. Я только что закончил чтение нескольких мрачных романов, так что идея была определенно привлекательной. Я вытащил свои замусоленные копии "Написания адвенчур для TRS-80" [1] и "Создания адвенчур на вашем компьютере" [2] и начал серьезную работу. В течение недели у меня было готово краткое содержание Путевых Станций.

Затем я выздоровел.

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




Энтузиазм, Часть 2


Апрель 1990. С приходом лета я решил завершить Путевые Станции и послать их Кену Уильямсу (Ken Williams), президенту Sierra Online. Я начал с решения, на что каждый мир должен быть похожим и как игрок должен спасать вселенную. Затем появилась карта. Я начал с белого листа, писал название для каждой комнаты, состоящее из 2-3 слов, затем начал придумывать паззлы для каждой комнаты. После двух месяцев у меня была разработанная игра. Конечным шагом было создание общих описаний для всех комнат, задача, которая оказалась не такой устрашающей, как я ожидал. Один месяц и много тысяч слов, все было завершено и отослано заказным письмом.

В августе я получил ответ. Анонимный секретарь Sierra послал мне стандартное письмо. Оно содержало около шести параграфов, колеблющихся от "Нам нравится ваше письмо!" до "Я боюсь, что Sierra Online не дает подсказок по почте..." Перед каждым параграфом был небольшой пробел; параграф, наилучшим образом отвечающий на письмо, был выделен. Выделенный параграф в моем письме говорил "Нам жаль Вам сообщить, что мы не можем использовать ваши идеи игры. Хотя мы постоянно удивляемся изобретательности наших клиентов..."

С громким глухим звуком все мои заметки по Путевым Станциям были заброшены за шкаф.

AGT поднимает свою голову в ноябре 1991. Университетский друг показал мне копию AGT, которую он скачал с локальной доски объявлений. "С нею ты сможешь написать адвенчуру!", взволновано сообщил мне он.

Путевые Станции возрождены. Я вытянул свои старые заметки и начал работу, программируя игру на AGT. Мне удалось воспроизвести комнаты со сделанных мною ранее карт. Запись длинных описаний комнат заняла некоторое время, так как я никогда не планировал печатать мои первоначальные описания. К январю комнаты были готовыми.

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

В своей беспредельной мудрости я решил написать свой собственный язык interactive fiction. Он был создан по подобию AGT, единственного языка, с которым я был знаком. Я работал над ним, начиная с сентября 1992, по ходу забывая все о Путевых Станциях.




TADS во спасение


Февраль 1993. Друг, который познакомил меня с AGT, передал мне копию TADS. После просмотра документации в течении часа, я забросил заметки о своем языке программирования в шкаф и вытащил материалы по Путевым Станциям . Две недели я игрался с TADS, ощупывая этот язык.

9 Апреля, 1993. Путевые Станции возрождены. Снова. Первые комнаты шли медленно: я изучал язык по ходу дела, пока ждал прибытия своего руководства пользователя. На кодирование кухни и кафетерия потребовалась неделя. Мой опыт кодирования наилучшим образом отражен в том, как я справился с созданием кухни и кафетерия.

  • Написать описания для двух связанных комнат кухни. 1 час.

  • Добавить ленту конвейера, поручни и другую внутреннюю отделку в обе кухонных комнаты. 2 часа.

  • Создать турникет в кухне. Учтите, что требовался новый класс, тот, что будет выводить "За xxx вы видите..." 30 минут.

  • Вернуться и поменять все "==" на "="; TADS 2.1 пока не поддерживает полный синтаксис C. Повторить после каждого шага. 2 минуты на каждое повторение.

  • Отладить класс "beyonder". Обнаружить, что функция showcontcont() (которая отображает полное содержание объекта), также должна быть переписана для того, чтобы оперировать классом "beyonder". 1.5 часа.

  • Кухня посещена второй раз, она закрыта. Записать весь код для обработки этого случая. 30 минут.

  • Переместить любой предмет, оставленный в кухне, чтобы его не было видно во время обратных визитов. 20 минут.

Это забирало по 7 часов кодирования, растянувшись более чем на три дня, прежде чем у меня была рабочая кухня. Тем не менее, после этого я узнал, что с TADSом можно проработать любой паззл, о котором я мог мечтать. Я завершил первую половину Путевых Станций в мае 1993. Летняя научно-исследовательская работа погасила мое вдохновение, и Путевые Станции завяли до весны 1994. В этот момент я решил, что должен закончить игру. Подобно взрыву лихорадочной энергии, я завершил программирование в течение двух месяцев и набрал десять бета-тестеров.




Раздавливая баги


Август 1994. Бета-тестеры начали находить баги через две минуты после того, как я переслал им копии Путевых Станций. В течение двух дней у меня было свыше двадцати страниц дефектов, опечаток и предложений, половина из которых от одного Майкла Киньйона (Michael Kinyon). Отладка - долгий, потрясающий процесс. В случае Путевых Станций она длилась с августа по декабрь, прежде чем почувствовал, что игра готова к релизу. В начале января я загрузил Путевые Станции на GMD.




Что я узнал, или как не надо писать IF


Пять лет периодической работы научили меня многому о процессе написания interactive fiction. Надо надеяться, другие найдут следующий совет полезным:

  • Придумайте все, что можете, на бумаге прежде, чем начнете программировать. Это значительно легче, чем выбрасывать непригодные для работы или глупые части, только из-за того, что они написаны. Как только вы запрограммировали часть своей игры, вам захочется оставить ее, несмотря ни на что.

  • Выберите язык программирования, который наилучшим образом подходит к вашим потребностям. TADS хорошо сочетался с моим опытом программирования на С; для других Inform, AGT, Hugo или любая из дюжины других систем может быть лучшей.

  • Работайте КАЖДЫЙ день, даже если когда-нибудь вы потратите всего пять-десять минут. Подобно воде, что камень точит, вы можете сделать колоссальную задачу написания IF возможной, если сохраните свое вдохновение. Мои постоянные начинания и остановки растянули Путевые Станции более чем на год, будучи принятыми во внимание, только когда я начал работать с TADS.





Спасибо, что играете в "Напишите свой собственный Interactive Fiction!"

Время прохождения: 5 лет, один месяц.





Сноски

[1] Dacosta, Frank. "Writing Basic Adventure Programs for the TRS-80." Tab Books: Blue Ridge Summit, PA, 1982.
[2] Hartnell, Tim. "Creating Adventure Games on Your Computer." Ballantine Books: New York, 1984.

© Stephen Granade
Перевод: Wizard Nash
Литературный редактор: Игорь Савин
2004


Hosted by uCoz