Данный файл является частью Руководства по TADS для авторов игр.
Copyright © 1987, 1996 Майкл Дж. Робертс (Michael J. Roberts). Все права защищены.

Руководство было преобразовано в формат HTML Н. К. Гайем (N. K. Guy), компания tela design.

Перевод руководства на русский язык - Валентин Коптельцев


Предисловие


Что такое TADS

TADS - это система программирования, созданная специально для написания текстовых приключенческих игр (иначе называемых текстовыми адвентюрами или текстовыми квестами). Синтакс и структура языка программирования TADS разработаны так, чтобы максимально облегчить реализацию даже сложных текстовых игр. TADS предоставляет полноценную программу-интерпретатор, оснащенную всеми функциями, которые необходимы для профессионально сделанной текстовой игры, поэтому автор адвентюры может полностью сконцентрироваться на самой игре, не отвлекаясь на ее "движок".

Настоящий раздел содержит краткий обзор TADS, текстовых игр в целом, а также данного Руководства.


О текстовых играх

Первая текстовая приключенческая игра так и называлась - Adventure (по-английски - приключение). Игра представляла собой интерактивный симулятор подземелья. Игрок взаимодействовал с игрой, вводя команды типа "север" или "взять палку", а игра в ответ выводила текст, описывавший результаты действий игрока.

Во многих отношениях игра Adventure была довольно примитивной: команды игрока были ограничены одним или двумя словами, да и набор понимаемых игрой действий был невелик. И все же игра радикально отличалась от любых других игр, компьютерных или нет, созданных до нее, и быстро завоевала множество поклонников. Она приобрела такую популярность, что породила целый жанр игр, называемый "адвентюры" по имени родоначальницы жанра. По мере развития как самого жанра, так и компьютеров, которые могли выполнять все более и более сложные программы, приключенческие игры обрастали все новыми и новыми улучшениями и нововведениями, однако базовые идеи остались практически неизменными.

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


О системе TADS

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

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

Авторы, использующие TADS, обнаружат целый ряд преимуществ написания игр в этой системе перед языками программирования общего назначения. К таким преимуцществам относятся:


О версии 2 и более поздних версиях

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

После версии TADS 2.0 вышло еще несколько релизов. Полный перечень изменений содержится далее в документации, здесь же приведены только основные нововведения.


Об этом руководстве

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

Вот краткий обзор содержания данного руководства:

При изучении TADS с помощью данного руководства начните с глав первой и второй, чтобы получить общее представление о системе; на этом этапе вам не стоит беспокоиться о понимании всех деталей. Затем переходите к главе 3, чтобы ознакомиться с языком. В процессе чтения этой главы многие вопросы написания приключенческих игр могут остаться для вас непонятными. Не озадачивайтесь этим - все будет описано позднее; на данный момент вам важно разобраться в общих принципах построения языка. После этого прочтите главу 4, где рассказано о том, как используется язык при написании игры; эта глава описывает программу-интерпретатор TADS в целом и, в частности, синтаксический анализатор команд игрока. В процессе изучения TADS вы почти наверняка будете обращаться к полноразмерной демонстрационной игре, поставляемой вместе с TADS, поскольку она содержит много примеров использования языковых конструкций TADS в реальной игре.

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


Благодарности

Система TADS - это результат многолетней работы, значительную часть которой составила как раз подготовка настоящей документации. Я хотел бы поблагодарить многих людей, которые участвовали в этом проекте. Джим Цсер (Jim Cser) использовал одну из ранних версий TADS для написания ставшей классикой игры High Tech Drifter, а Стив МакАдамс (Steve McAdams) работал вместе со мной над игрой Deep Space Drifter; опыт, полученный в процессе написания этих полноразмерных игр, просто неоценим. Я также хотел бы поблагодарить всех, кто писал отзывы на это руководство, кто тестировал демо-игру, идущую в комплекте с системой, и многих других людей, помогавших советом в процессе работы над проектом.

Я хочу поблагодарить всех многочисленных пользователей версии 1 за их комментарии и предложения, а также за то, что они вдохновили меня на продолжение поддержки и улучшение системы. Отдельное спасибо Дейвиду Баджету (David Baggett), Крису Небелу (Chris Nebel) и Дейвиду Лири (David Leary), авторам серии TADS-игр про Уннкулию (Unnkulia), за помощь в тестировании второй версии TADS и за их огромный вклад в популяризацию TADS путем демонстрации того, какие хорошие игры можно создавать при помощи этой системы; а также Энди Миллеру (Andy Miller) за иллюстрацию на обложке руководства с горой TADSмур.





Вся живость мысли - в приключении.
АЛЬФРЕД НОРТ УАЙТХЕД (ALFRED NORTH WHITEHEAD), Диалоги Альфреда Норта Уайтхеда (1953)

Я знаю инженеров - им лишь бы все менять.
ДОКТОР МАККОЙ (DR. McCOY), Стар Трек: кинофильм (1979)


Информация о лицензии и авторских правах Содержание Глава 1