Игрушки - 3D construction kit: подробное описание редактора 3D игр типа Castle Master. В статье приведено описание внутреннего языка системмы, который, собственно, и превращает набор локаций и обьектов в полноценную игру.

ZX Format #07
 3D CONSTRUCTION KIT

music by Volga soft
(C) Гил-Гелад
_

 МЕНЮ

Итак, налюбовавшись симпатичной заста-
вочкой  с гордой надписью 3D CONSTRUCTION
KIT, вы получаете возможность богатейшего
выбора средств управления:

  KEMPSTON JOYSTICK
  SINCLAIR JOYSTICK
  CURSOR KEYS

Что соответственно переводится как:

  КЕМПСТОН ДЖОЙСТИК
  СИНКЛЕР  ДЖОЙСТИК
  КУРСОРНЫЕ КЛАВИШИ

 Ткнув  в  понравившуюся  кнопку  (НЕ RE-
SET!), вы вывалетесь в рабочее меню прог-
раммы,  если так можно назвать кучу непо-
нятных  квадратиков,  прямоугольничков  и
несколько  слов,  которые  я уже видел на
створках Моранона.
 Итак пойдем как положено: слева направо,
а сверху вниз.

    File  General Area Condition 

  FILE   Кто сказал-еда? Нет неправда.Это
╔═ меню работы с файлами.


╠═ LOAD  Загрузка файла  с  номером 0-9
В случае отсутствия файла  выдается со-
общение об ошибке с предложением повто-
ра.
╠═ SAVE  Сохранение файла  под  номером
0-9 на диске (DISK) или ленте (TAPE). К
великому сожалению тот, кто дисковерси-
ровал 3D не позаботился о функции OVER-
WRITE, что поистине великой скорби дос-
тойно. Спасибо хоть за то, что вообще
идет работа с диском.

╚═  NEW  Стирание всех данных из памяти
о созданной игре. Команда начисто уничто-
жает любые воспоминания о существовании у
вас самого компьютера.



 GENERAL   Не бойтесь, это не из армии за
╔═  вами. Это просто установка всех
 параметров программы.


╠═ RESET  Опция, возвращающая  вас  в об-
 ласть, заявленную  исходной (см.
 START AREA  данного меню), и на-
 чало программы, если  что-то уже
 написано.
╠═ SETUP  Подменю установки параметров
 ─┐  игры.
     ├─CLIMB ABILITY. Высота препятствия
   преодолеваемая героем.
     │
-    ├─FALL ABILYTLY. Высота, с  которой
   герой может упасть без особого
   вреда для себя и компьютера.
   (примерно высота дивана. :))
 
      ├─WALK SPEED. Скорость перемещения
   вперед-назад.
      │
/    ├─TURN SPEED. Скорость поворота во-
     круг своей оси.
      │
,    ├─START AREA. Начальная локация.
      │
.    ├─START ENTRANSE. Начальный выход.
       └─ACTIVATE RANGE. 




╠═ INSTRUMENT Чрезвычайно полезная опция,
   позволяющая назначать места и номера
   выводимых на экран переменных. Имеет
   следующий вид:

 NUMBER - Номер"инструмента". Зависит
от того, какую позицию вы выбрали в
предыдущем меню.

 TYPE - Тип представления информации.
   может быть:
     NUMBE - числовая
   H BAR - горизонтальная полоса
   V BAR - вертикальная полоса
   BLANK - данный"инструмент"не исполь-
  зуется.

   X KOORD─┐  Х-овая и У-овая координа-
   ├─ та вывода значения пере-
   Y KOORD─┘  менной на экран.

   LENGHT - длина выводимой  информации
 от 0 до 5.
   VARIABLE - номер переменной, которая
 выводится  данным  инстру-
G║  ментом.
   COLOUR - а это просто цвет. Могли бы
 и сами догадаться.


╠═ WINDOW Не надо кидаться в монитор утю-
 гами. Это не МИКРОСОВТ,это изме-
 нение параметров вывода окна.

   Х pos  - см X KOORD

   Y pos  - см Y KOORD

    X size - размер по Х

    Y size - размер по У


.╚═ TEST Самая приятная и нужная  опция во
 всей программе.Она позволяет полю-
 боваться только что созданной вами
 программой,до которой (и в этом вы
 можете признаться  честно)  всяким
 DOOM-aм или задрипаным Duk-ам пых-
 теть и пыхтеть.

  AREA.   Меню,позволяющее совершать вся-
╔═  кие пакости с локациями. Напри-
 мер - РЕДАКТИРОВАТЬ их.


╠═ ADD AREA Создать еще одну локацию.


╠═ EDIT AREA Редактировать локацию.
 ─┐ 
 
     └─АРЕА  (номер)
 OBJECTS. число обьектов в
-   локации.
 SCALE. Масштаб



╠═ GOTO AREA Изменение номера текущей ло-
 кации.


╠═ COLOUR AREA Изменение цвета локации.
 ─┐ 
   ├──INC. цвет чернил(для тех,
  кто еще не знает)
   ├──PAPER. цвет бумаги.
    ├──BRIGHT. яркость.
    └──BORDER. цвет бордюра.



╠═ ADD ENTRNC Добавить выход.

 В Н И М А Н И Е ! 
┌$─┐
│ Номер выхода должен соответствовать│
│ номеру локации, куда он ведет. │
└$─┘



╚═ EDIT ENTRNC Редактировать выход.

 CONDITION    Самое нужное  меню  во всей
╔═   программе. Оно и  только оно
 позволит  писать Вам всю ло-
 гику и ругать игрока!


╠═ GENERAL Здесь пишется та  часть  прог-
 раммы,которая должна выполнять-
 ся независимо от номера локации

╠═LOCAL А это, как  Вы  уже  поняли,  та
 часть, которая выполняется ТОЛЬКО
 в этой локации.

╠═PROC Подпрограммы,  вызываемые  откуда
 угодно (даже из ванной :) ).



╚═ MESSAGE Сообщения,  приветы  друзьям и
 прочий текст, выводимый  в ходе
 игры. Например "You're dead,
 boy."

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

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

 Слева располагаются 2 (два) окна:

  VIEW (Направление взгляда на картинку)

NORTH  [с севера], SOUTH [с юга], WEST запада],  EAST  [с востока] и PLAN [свер-
ху])

  МОDE (тип перемещения: FLY1, 

FLY2 [полеты] и WALK [хождение пешком])

 По  центру располагаются иконки управле-
ния  Вашим  положением  в локации. Думаю,
здесь и так все понятно.

 Теперь рассмотрим надписи в нижней части
экрана.

  GLOBAL.  Ругательство,  позволяющее без
лишних трудов создать стены и потолок.

  COPY.  Самое страшное заклятье. создает
еще один предмет из тех, что уже созданы.

  CREATE. Нажав на эту иконку, Вы выпаде-
те в меню создания предметов, где сможете
сотворить:


 ЕXIT! - просто вернетесь к CREAT'у
 SENSR  - При выборе этой опции на экране
появляется  точка, плюющая в игрока лазе-
ром.
 RECT  -  Прямоугольник.
 PYRMD -  Усеченная пирамида.
 CUBE  -  Куб.
 LINE  -  Отрезок прямой.
 TRI.  -  Треугольник.
 QUAD. -  Квадрат.
 PENT. -  Пятиугольник:)
 HEX.  -  Шестиугольник.


 EDIT.  Выбрав  эту  опцию можно будет (с
помощью  стрелок) двигать выбранный пред-
мет  (MOVE), растягивать его в трех изме-
рениях  (STRETCH) стягивать его же в пяти
изметениях  (SHRINK),  крутить вообще как
угодно  (TURN)  и вроде бы даже уродовать
по-всякому (перемещать вершины) (POINT).
.  LOAD,  RESRT и SAVE дублируют аналогич-
ные команды верхней строки.
  SHADE.  Тень.  Позволяет менять заливку
стенок предмета.
  DELETE.  Позволяет  уничтожить  слишком
изуродованную фигуру.
  ATTR.  Опция,  позволяющая  определить,
,каким предмет был изначально (INITIAL): 
- Видимым  (VISBLE),  или невидимым (INvI-
SIBLE),  а  так же его текущее положение:
видимый,  невидимый,  уничтоженный (DEST-
ROYED). 

 Ну,  вроде  бы с менюшками все. Теперь
хорошо бы с языком разобраться. Кто захо-
чет  сделать  это сам, или кому не понра-
вится  предлагаемая  версия,  может смело
жать  "волшебную  кнопку"  и, набрав DUMp
#E850,  лично ознакомиться со словарем. И
если  он найдет что-либо, упущенное мной,
то пусть сообщит об этом мне через журнал
(очень прошу).

 Интерпретатор  3DCK предоставляет в рас-
поряжение  программера 255 флагов (сиречь
переменных)  с  которыми  и  производятся
почти все операции. В дальнейшем рассмот-
рении:
 = число 
 = флаг 
 = номер предмета 
 = номера локаций 
 = номер сообщения 

 SETV a b - Присвоить флагу b значение a.
 например: SETV 001 002 запишет
 во вторую переменную число 1.
- ADDV a b - Прибавить к значению флага b
 число а. Работает с тремя раз-
 рядами (0-255)
- ADCV a b - Прибавить к значению флага b
 число а. Работает с пятью раз-
 рядами (0-9).
 SUBV а b - Вычесть из флага b число а
   Работает с байтом (0-255)
 SBCV a b - Вычесть из флага b число а
 Работает с 5 разрядами.

 ВНИМАНИЕ ! Эти арифметические операции
почему-то  портят  значения, хранящиеся в
ближайшем  меньшем  флаге.  Может  у меня
версия глючная?

  ORV a b Просто логические операции ИЛИ
 ANDV a b И
   XORV a b ИСКЛЮЧАЮЩЕЕ ИЛИ

 CMPV a b - Сравнить значение Флага b с
 числом а
 IFEQ - Если они равны. (условие)
 IFGT - Если больше.
 IFLT - Eсли меньше.
 THEN - Тогда (слово после любого ус-
 ловия.)
 ELSE - В противном случае (ветвление
 в условии.)
 AND ] - И, ИЛИ для проверки нескольких
 OR ] условий.

 IFSHOT c - Если было попадание в предмет
 с номером с.
 IFHIT - Eсли в героя было попадание.
 IFCRUSH  -  Если  герой  упал  с высоты,
 большей, чем было задано в GE-
 NERALSETUPFALL ABILITY.
 IFVIS c - Если предмет с виден.
 IFTIMER  - Если установлен таймер.
 IFACTIVE с - Если предмет активизирован
  (условие встречается в игре-
 приложении [файл 0] в локации
 с компьютером. )
 ENDIF - Обязательное слово в конце ус-
 ловия.
 VIS c - Сделать предмет с видимым
 INVIS c - Сделать предмет с невидимым.
 DESTROY c - Уничтожить предмет с.
 GOTO d e - Переход из локации d в лока-
цию е.
 MODE a - Tип видения. Програмный аналог
   окна MODE основного меню.
 SETWPOS a f - Позиция игрового окна.
 SETWSIZE a f - Размер игрового экрана.
 COLOUR  a f - Изменение цвета локации.
 - что окрашивать (001 - стены
 003 - бордюр), a-цвет.
 SOUND a   - Однократный звук типа "Тю".
/ SYNCSND а - Звук с возрастающей частотой
 и амплитудой.
 DELAY a - Задержка. Аналoг PAUSE в
 бейсике.
 TEXTCOL a - Цвет текста.
 PRINT a f z - Распечатка сообщения z
 REDRAW - Перерисовка экрана.
 CALL a - Вызов процедуры а.
 END - Обязательное слово в конце каждого
 модуля.  Ставится автоматически при
 его создании (CREAT).

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

За сим прощаюсь с вами.
 Ваш G-G.