Adventurer #05
30 ноября 1996
  Софт  

Презентация - Программа для создания адвентюр QUILL.

<b>Презентация</b> - Программа для создания адвентюр QUILL.
                   (C) ????
              ┌─────────────┐
              │             │
              │  Q U I L L  │
              │             │
              └─────────────┘

    "В мире програмного обеспечения время
     от  времени  выпускаются  программы,
     вносящие значительный вклад в  напи-
     сание игровых программ. Одной из та-
     ких программ была  программа  Quill.
     Она открыла возможность самим созда-
     вать адвентюрные игры для тех, у ко-
     го хорошо развито воображение,  есть
     терпение и совершенно нет  навыков в
     програмировании...
     ... самые  лучшие  из  них (например,
     TOWER of DISPAIR) показывают,  каких
     успехов можно достичь...
     ... программа Quill очень долго  до-
     минировала на рынке..."
                     /ZX-РЕВЮ, 1991 год./



     Итак, Quill - это полностью  автома-
тизированная  программа  для создания ад-
вентюр, которую большинство из  тех, кому
надоело играть в адвентюрки,а хочется са-
мому  сделать  какой-нибудь  шедевр, при-
мут с радостью.  Она была написана фирмой
GYLSOFT  в  1983  году,  русифицирована и
адаптирована к системе TR-DOS Томенко Ев-
гением в 1994.  Некоторые команды выгодно
отличают его от GAC'а, а об ABS'е и гово-
рить нечего.  Отсутствие  графики немного
компенсируется  возможностью  использова-
ния UDG.
     Ниже дано описание  дисковой версии,
но кассетная практически не отличается.

            ╔════════════════╗
            ║                ║
            ║ Описание опций ║
            ║ главного  меню ║
            ║                ║
            ╚════════════════╝

     Вначале несколько  слов  о командах,
присутствующих в каждой опции.
     Z - выход в главное меню.
     P и L - вывод текста на экран или на
принтер.  В  некоторых опциях можно ввес-
ти число (B, C, D, E, F) или одно или два
слова (G, H), начиная  с  которых   будет
выводиться текст.
     Сервис  всех опций очень похож и ра-
зобраться в них вам не составит труда.

 ╔═══╗
 ║ A ║   Перво-наперво  нужно ввести сло-
 ╚═══╝   варь вашей будущей игры,  причем
некоторые слова уже  присутствуют.  Это :
названия сторон света, промежуточные нап-
равления,  вверх,  вниз, взять, положить, 

загрузить, сохранить, стоп  (смерть), ин-
вентарь, смотреть.
     Попробуем  ввести  слово,  например,
"НОЖ":
     I нож 20
 А теперь его синоним:
     I кинжал 20
 Просмотрим синонимы слова "НОЖ" :
     S нож
 И, наконец, сотрем это слово.
     D нож
   Если  у  вас все получилось, то радуй-
тесь. На кнопки нажимать вы умеете, и ра-
ботать с Quill'ом сможете.

 ╔═══╗
 ║ B ║   В этой  опции можно ввести сооб-
 ╚═══╝   щения, которые будут выскакивать
 по ходу игры.
  Например:
     I
    в книге написан странный символ. 

 ╔═══╗
 ║ C ║   Подробное или не очень подробное
 ╚═══╝   (это зависит  лично от вас) опи-
сание локаций.  Предметы,  которые  будут
путешествовать в течении игры,  описывать
здесь не стоит.

 ╔═══╗
 ║ D ║   В  сей  опции  описываются связи
 ╚═══╝   локаций  между  собой.   Пример:
свяжем четыре локации так, что первая ло-
кация находится к северу от нулевой, вто-
рая к западу от нее же,  а третья на юго-
западе  от  нулевой,  причем  все локации
связаны между собой.
     A 0
    с 1 в 2 св 3
     A 1
    ю 0 юв 2 в 3
     A 2
    з 0 сз 1 с 3
     A 3
    юз 0 з 1 ю 2
     Если  вы бросились набирать вышепри-

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

 ╔═══╗
 ║ E ║   Сюда записываются названия пред-
 ╚═══╝   метов, но  учтите, что в словарь
 обязательно  надо  вносить  эти слова и,
желательно,  не одно (его синонимы).  За-
помните, чем больше слов будет в словаре,
тем дружественней будет связь с  игроком,
тем интересней будет играть в вашу игру.

 ╔═══╗
 ║ F ║   Расшвыривание предметов по лока-
 ╚═══╝   циям.  Предметы  могут  получать
специальные номера,  которые делают ниже-
следующее:
   252 - присвоить  предмету  маркер  "не
         создан".

   253 - одеть  вашего  персонажа  в этот
         предмет.
   254 - всучить его в руки вашему персо-
         нажу.
  Например:
   A 2 7 - отправление предмета с номером
           2 в локацию 7.
   A 3 252
   A 4 253
   A 5 254

 ╔═══╗   ╔═══╗
 ║ G ║ и ║ H ║  Логика низшего приоритета
 ╚═══╝   ╚═══╝  (далее н.п.)  проверяется
после  ввода команды пользователем (в иг-
ре),  а логика высшего приоритета  (далее
в.п.)  проверяется  перед  вводом.  Более
подробно об этих опциях в разделе "Логика
адвентюры".

 ╔═══╗
 ║ K ║   Тестирование адвентюры. Этой оп-
 ╚═══╝   ции  также  посвящена  отдельная
глава с одноименным названием.

 ╔══╤═══╤══╗
 ║ I│ J │L ║   У вас спросят имя файла, а
 ╚══╧═══╧══╝   затем  загрузится  кодовый
блок или выгрузится готовая адвентюра или
кодовый блок.  Не  бойтесь,  если вы оши-
блись  при вводе имени, ничего плохого не
случится.  Просто вам будет сообщено, что
допущена ошибка.

 ╔═══╗
 ║ M ║   Вывод каталога диска.
 ╚═══╝

 ╔═══╗
 ║ N ║   Сообщение о количестве свободной
 ╚═══╝   памяти. Эта опция удержит вас от
сверхобилия при описании локаций и  вводе
сообщений.  Помните, что у вас чуть более
тридцати килобайт свободной памяти и око-
ло пяти нужно оставить для логики.

 ╔═══╗
 ║ O ║   Введенное  здесь  число даст по-
 ╚═══╝   нять  игроку, что он не всесилен

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

 ╔═══╗
 ║ P ║   Изменение цветов (BORDER, PAPER,
 ╚═══╝   INK).

 ╔═══╗
 ║ (C) ║   Выход в BASIC или,  попросту го-
 ╚═══╝   воря, сброс системы.


          ╔═══════════════════╗
          ║                   ║
          ║ Логика  адвентюры ║
          ║                   ║
          ╚═══════════════════╝


     43 команды Quill'а подразделяются на
несколько категорий. Команды первой груп-
пы работают с локациями,  команды  второй

группы относятся к предметам.  В  третьей
категории  команды связаны с переменными.
К четвертой и  последней группе относятся
сервисные команды.  Рассмотрим каждую ка-
тегорию в отдельности.

           ┌───────────────────┐
           │ Сервисные команды │
           └───────────────────┘

   CHANSE n   -   вероятность  выполнения
некоего действия в n процентах.  Это, на-
верное, самая интересная команда, так как
она  позволяет создать приближенные к ре-
альности действия.
     Пример :  создадим  помощника (номер
20),  приходящего и уходящего из локации,
в  которой находится игрок, через некото-
рое время, причем всегда различное (почти
как  в  Hobbit'е или Sherlock'е).   Сорок
седьмое сообщение говорит, что ваш помощ-
ник  пришел,  а  сорок восьмое объясняет,
что он ушел.

   (в.п.) I _ _
 CHANSE 40 CREATE 20 MESSAGE 47
          I _ _
 CHANSE 30 DESTROY 20 MESSAGE 48

   DESC  - выдать описание локации, в ко-
           торой находится игрок.
     Пример:
   (н.п.) I см _
 DESC

   INVEN  - распечатать список предметов,
            имеющихся у играющего.
     Пример:
   (н.п.) I и _
 INVEN

   SAVE / LOAD  - сохранить/загрузить по-
ложение  игры  на внешнем носителе инфор-
мации - дискете или кассете (в зависимос-
ти от версии).

     Пример:
   (н.п.) I сохр _
 SAVE
          I загр _
 LOAD

   SCORE  -  сообщить  сколько  процентов
игры выполнил игрок или,что будет точнее,
содержимое переменной номер 30.
     Пример:
   (н.п.) I счет _
 SCORE

   TURNS  - нaпечатать  количество ходов,
            сделанных игроком.
     Пример:
   (н.п.) I ходы _
 TURNS

   QUIT  -  выяснить,  не желает ли игрок
закончить игру. Y - продолжает выполнение
строки команд, другие клавиши прекращают.

   END  - закончить  игру и узнать, будут
ли играть в эту игру еще раз.  N - очист-
ка  памяти  компьютера,  другие клавиши -
старт с самого начала. После команды QUIT
обязательно нужно подавать END.
     Пример: закончить игру, сообщить ко-
личество очков и ходов.
   (н.п.) I стоп _
 QUIT SCORE TURNS END
   ANYKEY  - ожидание  нажатия  какой-ни-
             будь клавиши.

   OK  - дать  понять  игроку,   что  все
         О'кей.
     Пример:
   (н.п.) I взять ключ
 GET 7 OK

   DONE  -  прервать  проверку дальнейших
условий и перейти к вводу команд.  Обычно
используется,  когда существует несколько
проверок одной  команды  (смотри пример к
PRESENT / ABSENT ). 

   PAUSE n  - ожидать n тактов прерываний
          (один такт равен 1/50 секунды).

   BEEP m n  - звуковой  сигнал  длитель-
ностью m/50 секунды и высотой звука n.

           ┌────────────────────┐
           │ Работа с локациями │
           └────────────────────┘

   AT n  Если персонаж находится в комна-
те n, то  выполнение команды продолжится.
      Пример: перед запуском игры вы  хо-
тите  вывести  какую-нибудь   информацию,
причем она  находится в описании  нулевой
локации.
     В  дальнейшем  (в.п.) и (н.п.) пока-
зывает  в  какую опцию необходимо вводить
логику.

   (в.п.) I _ _
 AT 0 ANYKEY GOTO 1 DESC 

     Так  как  стартовой  локацией всегда
является нулевая, то перед запуском выве-
дется  содержащаяся  на ней информация, а
после  нажатия  клавиши  игрок перейдет к
первой локации.

   NOTAT n Условие  выполняется, если ва-
шего персонажа нет в комнате n.
      Пример:  ваш  персонаж - волшебник,
завладевший бутылкой с джинном, а в лока-
ции  13  находится  защитная пентаграмма,
охраняющая  от  злых  сил, в  которой его
можно вызвать.
   (н.п.) I вызв джин
 NOTAT 13 SCORE END
          I вызв джин
 АТ 13 ...

   ATGT n / ATLT n Если персонаж находит-
ся в локации с номером большим / меньшим,
чем n,  то выполняются следующие за усло-
вием действия.

     Пример:  в локациях с номерами от 15
до 27 темно, и живут там ужасные монстры,
боящиеся света свечи.
   (в.п.) I _ _
 ATGT 14 ATLT 28 NOTCARR 1 END

   GOTO n - идти в локацию n.
     Пример:  игрок  в  локации 25 открыл
дверь  (предмет 18),  ведущую  на запад в
локацию 29.
   (н.п.) I з _
 AT 25 PRESENT 18 GOTO 29 DESC

          ┌─────────────────────┐
          │ Работа с предметами │
          └─────────────────────┘

   PRESENT n / ABSENT n  Условие выполня-
ется, если предмет  n  присутствует / от-
сутствует в одной локации с игроком.
     Пример: в локации 5 находится закры-
тый  шкаф  (он имеет номер 4), который вы
желаете открыть.  Пятое сообщение означа-
ет, что шкаф открылся,  и  в нем оказался

костюм  (номер 6).  Шестое сообщение гла-
сит: "Шкаф уже открыт."
   (н.п.) I откр шкаф
 AT 5 PRESENT 4 SWAP 4 5 MESSAGE 5
 PAUSE 50 DESC DONE
          I откр шкаф
 AT 5 ABSENT 4 MESSAGE 6

   CARRIED n / NOTCARR n   Если  персонаж
имет / не  имет  предмет  с номером n, то
выполняются какие-то действия.
     Пример:  в  локации 8 лежит запертый
сундук (номер 10), открыть  который можно
ключом (номер 12).  В двадцатом сообщении
написано: "Ключ  со скрипом повернулся, и
из  сундука  выпал  мешок золота (предмет
14)." В двадцать первом сообщении записа-
но: "Сундук  заперт,  а  у вас нет ключа,
которым его можно было бы открыть."
   (н.п.) I отпе сунд
 AT 8 PRESENT 10 CARRIED 12 SWAP 10 11
 CREATE 14 MESSAGE 20 PAUSE 100 DESC
          I отпе сунд
 AT 8 PRESENT 10 NOTCARR 12 MESSAGE 21 

   WORN n / NOTWORN n  Если персонаж одет
в  предмет n,  то  выполняются  некоторые
действия.
     Пример:  через  стражу  в комнате 26
можно пройти только одетым в  шапку-неви-
димку (предмет 12).
   (в.п.) I _ _
 AT 26 NOTWORN 12 END

   GET n / DROP n  - взять / положить
                     предмет n.
     Пример:   сделаем  так,  чтобы   нож
(предмет 7) можно было бы брать и ложить.
   (н.п.) I взят нож
 GET 7 OK
          I брос нож
 DROP 7 OK

   DESTROY n / CREATE n  -  создать/унич-
тожить предмет n.
     Пример: когда персонаж съедает ябло-
ко (номер 9), оно исчезает.  Но его можно
снова  вернуть в игру, сорвав на яблоне в
локации 39.

   (н.п.) I съес ябло
 DESTROY 9 OK
          I сорв ябло
 AT 39 ABSENT 9 CREATE 9 GET 9 OK

   SWAP m n - обмен местонахождений пред-
метов m и n.  Эта  команда обычно исполь-
зуется  для зажигания свечей или факелов,
для открывания и отпирания дверей и т.д.
     Пример:  зажигание факела (номер 22)
и превращение в горящий факел (номер 23).
   (н.п.) I заже факе
 CARRIED 22 SWAP 22 23 CLEAR 0 OK

   WEAR n/REMO n - одеть/снять предмет n.
     Пример: одевание  и  снятие  костюма
(номер 1).
   (н.п.) I одет кост
 CARRIED 4 WEAR 4 OK
          I снят кост
 CARRIED 4 REMO 4 OK 

        ┌──────────────────────┐
        │ Работа с переменными │
        └──────────────────────┘

   ZERO n / NOTZERO n  Если переменная n
равна / не  равна  нулю,  то  дальнейшие
действия выполняются.

   EQ n m / GT n m / LT n m Если перемен-
ная n равна / больше / меньше m,  то сле-
дующие за условием действия выполняются.

   CLEAR n / SET n  - присвоить  перемен-
ной n значение 0 / 255.

   LET n m  - присвоить переменной n зна-
чение m.

   PLUS n m / MINUS n m  -  прибавить/вы-
честь число m из переменной n.

     Пример: игрок попал в темноту.  Если
через  пять  ходов  он не зажжет свет, то
сломает ноги. Предупредительное сообщение

17 появляется за два хода до смерти.
   (в.п.) I _ _
 NOTZERO 0 ZERO 29 SET 29 LET 5 6
          I _ _
 LT 5 3 MESSAGE 17
          I _ _
 ZERO 5 MESSAGE 18 SCORE END

        ╔════════════════════════╗
        ║                        ║
        ║ Тестирование адвентюры ║
        ║  Описание  переменных  ║
        ║                        ║
        ╚════════════════════════╝

     После  выбора  этой опции, вам будет
задан вопрос: "Нужна ли вам диагностика?"
Если ответ будет утвердительным (Y), то в
нижних  четырех  строках  экрана появятся
8 колонок цифр.  При отрицательном же от-
вете,  тестирование  окажется  аналогично
игре.  Переменные имеют нумерацию от 0 до
31.  В  каждую  переменную можно засылать
числа от 0 до 255.  Все счетчики уменьша-

ются до нуля. А теперь поподробнее о каж-
дой.

0 - Если  она не равна нулю, то в комнате
темно  и  при  попытке  осмотреть локацию
выводится соответствующее сообщение. Уйти
из  комнаты  будет невозможно до тех пор,
пока переменную не обнулят.

1 - В  ней  содержится количество предме-
тов, которые несет игрок. Одетые предметы
не  учитываются,  так что можно нацеплять
десяток предметов на себя, в то время как
нести можно всего четыре-пять.

2 - Счетчик, уменьшающийся после выполне-
ния следующих команд: DESC, SAVE, LOAD  и
после входа в другую локацию.

5-9 - Четыре счетчика, уменьшающихся пос-
ле каждого хода.

3, 4, 10-29 - Переменные, с которыми мож-
но  свободно  манипулировать,  так как на

действие  программы они не влияют, и сама
она их не изменяет.

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

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

          ╔════════════════════╗
          ║                    ║
          ║  Немного полезной  ║
          ║     информации     ║
          ║                    ║
          ╚════════════════════╝

     Основная  проблема  в программах для
создания адвентюр, в Quill'е в частности,
ограниченность  ввода  до нескольких слов
(обычно до двух). Quill понимает словосо-

четания вида глагол + существительное,  и
основная  цель  авторов адвентюр - обойти
это ограничение.
   Рассмотрим такой диалог:
  > сделать отмычку
 из чего ее сделать ?  ;MESSAGE 50
  > из проволоки
 вы сделали отмычку из проволоки.;MESS 51
   "А  как  создать подобное?" - спросите
вы.
  Делается это элементарно.
   (н.п.) I сдел отмы
 CARRIED 13 (проволока) LET 26 2
 MESSAGE 50
          I из пров
 EQ 26 1 SWAP 13 14 MESSAGE 51
   (в.п.) I _ _
 NOTZERO 26 MINUS 26 1

     Если  использовать более сложную ло-
гику,  то можно увеличить длину предложе-
ний во много раз.
     Приложением к Quill'у является прог-
рамма TestQuill,  с помощью которой можно

запускать  игры 4 Minute, Africa Garden и
Hampstead под управлением редактора.  Это
даст  платформу, с которой можно взлететь
на вершины создания адвентюр.

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

От редакции: Вы, наверное, заметили,  что
в начале  этого  описания отсутствует ко-
пирайт автора ?   Увы, автор нам неизвес-
тен. Данная программа  и ее описание поя-
вилась у нас благодаря помощи FLASH inc.,
но они также не смогли нам помочь в уста-
новлении личности автора.  Поэтому мы за-
ранее приносим ему свои извинения и наде-
емся, что свяжется с нами и вы еще не раз
увидите на страницах ADVENTURER'a его ра-
боты.

                 * * * 




Другие статьи номера:

Oбмен опытом - Использование каналов в программах. Использование подпрограмм ПЗУ.

Oбмен опытом - Некоторые особенности XAS'а. Передача параметров в программу в командной строке.

Oбмен опытом - Несколько полезных советов и рекомендаций по подключению FDD 3.5 (трехдюймового дисковода).

Интервью - Интервью с Nicodim'ом (Р.Романовым) автором игры Prince of Persia.

Интерфейс - Письма Читателей: Игорь Галуза, Гаркушин Алексей, Иноземцев Андрей Леонидович, Потоловский Виктор Николаевич.

Интерфейс - Причины развала Ярославско электронного журнала "ЭЛЬДОРАДО". Новая защита - Anti McDonald. Плохо ли пиратство? Несколько причин по которым не стоит покупать IBM PC в качестве домашнего компьютера. Как пройти "NEW DIZZY"?

Обзор - O новых программах: Narc, The Hundred, Heavy Metal Mover, Quick Draw McGraw, Iice Climber (Альпинист), Super Cars, Lode Runner 3, Down Town, Страна Мифов, Gremlin 2, Sword of Bane, Turbo Skate Fighter, Assault Course, Mercs, Darkman. Десятка лучших игр.

Оттяг - Тест "Ты ,случаем, не тормоз ?"

Презентация - Авторская презентация: Ray Disk Monitor v1.5.

Презентация - Авторская презентация: Войны Роботов.

Презентация - Программа для создания адвентюр QUILL.

Раскрутка - Новелла к игре "Trap Door".

Раскрутка - Описание игры "Jungle Warrior".

Раскрутка - прохождение игры "Navy Moves-2".

Реклама - Реклама и объявления.

Система - Описание программ : ZX-ASM3.0, Universal XAS Converter v2.1, Format Utility v2.01, Commander DOS v1.9, Super Catalog v1.12, Text Designer v1.0, The Dizzy Editor v1.0, Digital Studio for Covox, Alfasoft Music Crasher v2.13. Драйвер печати шрифтов , созданных в Mach v2.4.

Оттяг - Несколько советов тем, кто хочет отправить программы по почте своим зарубежным друзьям.

Оттяг - 40 вещей, которые можно сделать с "битым" диском.

Оттяг - тест: Насколько вы нравитесь окружающим.

Оттяг - 20 вещей,которые вы можете сделать, пока игра загружается с диска.

Оттяг - 20 вещей,которые вы можете сделать, пока игра загружается с ленты.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Лаборатория - Конкурс на лучшую процедуру плазмы...
Оттяг - Винни-Пух и все-все-все - 2.
Железо - Немного о GMX и что с ним делать.
Энциклопедия - Испанософтография (софтография всех испанских спектрумовских фирм).
Проекты - обзор готовящихся проектов: игра "Угадай Мелодию", новый клон Спектрума, журнал Deja Vu #A, новая ОС для Спектрума - Doors 2002 Aqua.

В этот день...   25 апреля