В мире программного обеспечения время от времени выпускаются программы, вносящие значительный вклад в написание игровых программ. Одной из таких программ была программа QUILL. Она открыла возможность самим создавать адвентюрные игры для тех, у кого хорошо развито воображение, есть терпение и совершенно нет навыков в программировании.
Конечно, большинство программ, созданных в системе QUILL, оставляют желать лучшего, но самые лучшие из них (например, TOWER OF DISPAIR) показывают каких успехов можно достичь.
Несмотря на то, что программа QUILL очень долго доминировала на рынке, у нее все-таки есть свои ограничения, и программа GAC (Graphic Adventure Creator), выпущенная фирмой INCENTIVE SOFTWARE явилась для нее серьезным конкурентом. Она предоставляет следующие дополнительные возможности:
- анализ сложных предложений;
- многозначные команды:
- компрессия текста;
- широкий спектр графических возможностей.
Пакет GAC включает в себя кроме самой программы еще и небольшой полезный файл Quickstart, являющийся как бы образцовой адвентюрной микроигрой.
Конечно, как и положено серьезной системе, к пакету должно прилагаться объемистое руководство по работе с ним, которого у нас в "Инфоркоме" к сожалению нет, но если есть у кого-то из наших читателей, мы с радостью бы его приобрели. Поэтому нам приходится сегодня ограничиваться лишь обзорной статьей на эту тему, тем более, что многие читатели просят именно обзорных статей, для расширения общего кругозора по интересным программным продуктам.
Наше общение с любителями адвентюрных программ, показало, что при наличии упорства с этой программой можно разобраться и без учебника, а та информация, которую мы здесь дадим, поможет сделать первый шаг. Мы будем рады получать письма от тех, кто пробьется в этом направлении через первые трудности и поможет другим, ценным было бы также исследование возможности русификации этой программы. Общие соображения говорят о том, что это не должно быть очень трудно, поскольку в программе где-то есть свой знакогенератор.
После загрузки программы Вам выдается обширное меню различных опций. Самое мудрое, что здесь можно сделать - это загрузить прилагаемый файл "Quickstart".
Это даст полезную базу, от которой можно развивать работу. В этом файле уже есть небольшой словарь, включающий в себя такие совершенно необходимые в любой текстовой программе команды, как GET, LOOK, EXAMINE, INVENTORY и т.п. Там же есть и небольшая система программных сообщений типа:
YOU CAN'T - Вы не можете.
WHAT NOW? - Что дальше?
YOU APE CARRING... - Вы несете...
Конечно их можно переделывать как хотите.
Словарь входит в программу в трех отдельных файлах:
- VERBS (глаголы),
- NOUNS (существительные),
- ADVERBS (наречия).
Процесс заполнения и редактирования словаря изумительно прост. Каждому глаголу, существительному или наречию присваивается номер от 1 до 255. Программа может теперь элементарно работать и с синонимами, поскольку Вы можете разным словам, имеющим одинаковое значение, присвоить и одинаковые номера.
Способность работать с наречиями существенно отличает GAC от QUILL, поскольку теперь Вы можете различать такие команды как:
EXAMINE BOX - проверить ящик и
EXAMINE BOX CAREFULLY - тщательно проверить ящик.
Ввод текстов сообщений и описаний обстановки тоже доставляет удовольствие. Вводя текст Вы можете не думать, как он расположится на экране, не будет ли разрыва в слове при переносе. Просто набирайте текст, и все. Программа сама все сделает за Вас. Правда, программа немного путается со знаками препинания. Считается общепринятым после знака препинания давать пробел, поэтому если знак препинания оказывается последним на строке, то в начале следующей строки этот пробел давать не надо. Здесь программа этого не учитывает и левый край текста может получиться неровным. На каждом шагу работы программа дает вам необходимые запросы, что очень упрощает работу. Так, например, когда Вы закончите описание какой-либо локации, программа запросит от Вас ввода соединений этой локации с другими. Например, если из данной точки можно пойти на север и попасть в пункт номер 15, то Вы вводите:
NORTH 15
Таким простым путем задается карта игры. Изменения в процессе работы вводятся тоже очень легко.
ЛОГИКА.
Когда введен текст, описания локаций, сообщения, карта и имена объектов (существительные), можно приступать к разработке логики игры. Именно здесь и выявляется вся сила этой программы и именно здесь и наступают основные трудности для Вас.
Существуют три типа условных конструкций, для каждого типа есть свой файл и доступ к ним открывается из главного меню.
Условия высшего приоритета (High Priority Condition) проверяются, перед тем как играющий вводит команду.
Условия низшего приоритета, проверяются после того, как игрок команду подал.
Локальные условия относятся к тем специфическим действиям, которые могут происходить в данной локации, в которой сейчас находится игрок.
Логические операторы, которые могут быть при этом созданы и рассмотрены, очень широки и многообразны. Достаточно сказать, что Вы имеете возможность задавать и проверять 255 флагов (маркеров), с помощью которых программа отслеживает важнейшие события, такие например, как открыта дверь или закрыта. С их же помощью можно оценивать и более сложные вещи:
- сколько весит объект;
- есть он у Вас в наличии или нет;
- есть он в заданной комнате или нет и т.п.
Нижеприведенный пример служит для иллюстрации языка программы.
Предположим, что где-то по ходу игры Вам может встретится гангстер NICK, вооруженный пистолетом (GUN). В этом случае программа в ответ на команду игрока:
TELL NICK TO GIVE ME THE GUN
(сказать Нику, чтобы отдал пистолет) программа должна, во-первых, дать нужное ответное сообщение и, во-вторых, добавить пистолет к списку объектов, которыми Вы владеете.
Условие в программе будет выглядеть так:
IF (VERB 24 AND NOUN 3 AND NOUN 5 AND RES? 6 AND HERE 3) SET 6 MESS 6 5 TO 3 GET 5 END
Если это грубо перевести на русский язык, то получится следующее:
Если команда содержит глагол (VERB) номер 24 (tell) и существительное номер 3 (Nick), а также существительное номер 5 (GUN) и если при этом флаг номер 6 выключен (RESET) и Ник находится здесь же рядом с Вами (HERE 3), то включить флаг 6 (чтобы можно было забрать пистолет только один раз), напечатать нужное сообщение (MESSAGE 6), образовать пистолет как объект в данной локации (5 ТО 3) и взять его, добавив к списку предметов, которыми владеет игрок (GET 3).
Если Вы зададите таким образом логику работы по отдельным командам типа
UNLOCK THE DOOR - отпереть дверь
OPEN DOOR - открыть дверь
GO INTO DOOR - войти в дверь,
то и многозначные команды типа: UNLOCK THE DOOR, OPEN IT AND GO IN - будет тоже выполняться!
Обратите внимание, что программа понимает местоимение IT и использует его вместо последнего встречавшегося существительного DOOR.
Чего правда не хватает программе - это она не умеет работать с командами DROP ALL и TAKE ALL.
ГРАФИКА.
Адвентюрная игра может быть сделана с графическими иллюстрациями, любую картинку из загруженных Вы можете включить и выключить в любом месте игры по желанию.
Картинка изображается в окне, занимающем верхние 2/3 экрана, что пожалуй многовато, поскольку внизу остается недостаточно места для детального описания обстановки, и если описание слишком длинное, то оно начинает скроллировать до того, как игрок успеет его прочитать.
Программа может рисовать эллипсы, прямоугольники, линии, точки. Можно заполнять фигуры гладким цветом или несложной текстурой. Есть очень хорошие редакторские возможности. Одним словом, создать можете любую иллюстрацию из тех, какие Вам позволят создать собственные таланты. Приличная картинка (не хуже, чем те, которые Вы можете увидеть в программе HOBBIT) занимает примерно 0.5 K.
Замечательной способностью программы является возможность "сливать" (MERGE) изображения. Поэтому Вы можете один раз изобразить "стандартное" дерево и всякий раз, когда надо, вызывать и накладывать его на картинку. То же самое часто используется для стилизованных орнаментов вокруг картинки.
Единственное ограничение - это то, что, как дерево нарисовано на экране, так оно всегда и будет изображаться - в одном и том же месте. Передвигать рисунки программа не умеет.
Заканчивая обзор этой замечательной программы, нам бы хотелось обратить внимание наших читателей на одно существенное обстоятельство.
Мы все время говорили о программе GAC как об инструментальном средстве для создания игр, в данном случае текстовых. Совсем не надо иметь богатую фантазию для того, чтобы сообразить, что это почти готовая система для создания обучающих программ, способных и дать материал с иллюстрацией и поставить вопрос и проанализировать ответ, а затем сделать вывод о том, чтобы похвалить/ пожурить/ подсказать.
Причем работать с этой системой (создавать учебные комплексы) может преподаватель, хорошо знающий свой предмет, но не знающий программирования. Вы же, конвертировав GAC и сделав из него систему, можете наоборот не быть преподавателем и не знать никаких предметов. Вот Вам и путь к быстрому решению проблем компьютеризации образования. Нам часто пишут молодые люди, освоившие или осваивающие программирование и спрашивают совета куда приложить свои усилия. Возьмите GAC, разберитесь с ним так, чтобы ориентироваться в этой программе, как в своей, замените генератор шрифта на русский, адаптируйте GAC под другой круг задач, напишите достойную инструкцию по работе с ним, и Вы сделаете такой вклад в общее дело, который конечно же не останется незамеченным. Даже если у Вас из этого ничего не получится, Вы приобретете опыт и при этом у Вас появятся новые идеи. Дерзайте, и никакие Ваши усилия не пропадут даром, а мы дадим рекламу Вашим достижениям на страницах "ZX-РЕВЮ".