Структура игровой базы (http://taplap.ru/articles.php?op=show&aid=63)
Отправлено: Chipollino
Автор: Chip
2004-05-29 01:08:30

ИГРОВАЯ БАЗА

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

Пример. Действие Осмотреться: Пример. Действие Осмотреть ОснПредмет: По аналогии можно прописать множество других действий, которые в ответ будут сообщать одно из свойств Предмета (нюхать, трогать, облизать и т.д.).

Пример реализации действия Взять Вы можете наблюдать на рисунке ниже (в разделе действий).

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

Но, естественно, игра не была бы игрой, если бы в ней не было загадок и всякого рода сцен. Дальнейшая работа автора и заключается в описании условий и так называемых cкриптов.

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


ПРЕДМЕТЫ
Под предметами, в данный момент, понимается совокупность всех объектов игрового мира, с которыми игрок может совершать какие-либо действия.


Предмет определяется своим уникальным ИДЕНТИФИКАТОРОМ. К предмету привязывается набор имен существительных и прилагательных, по которым АНАЛИЗАТОР КОМАНД будет его находить. И, самое главное, у предмета будет набор свойств, которые используются в модулях ДЕЙСТВИЙ (см. ниже). При создании игры автор разрабатывает свойства предметов и задает их начальные значения. Для упрощения работы можно предусмотреть возможность задания некоторого набора ОБЩИХ свойств для всех предметов (например: Вес, Локация, Описание и др.).

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

Персонажи тоже требуют вынесения в отдельную ветвь, но их пока опустим.


ДЕЙСТВИЯ
Вводя команду, игрок желает что-то изменить в базе данных игры или что-то узнать о ней. ДЕЙСТВИЕ и является связующим звеном между игроком и игровым миром.


ДЕЙСТВИЕ, как и предмет, характеризуется своим уникальным ИДЕНТИФИКАТОРОМ. К действию привязывается набор КОНСТРУКЦИЙ ГЛАГОЛОВ, по коим АНАЛИЗАТОР КОМАНД будет его находить. В действии может участвовать до трех предметов: основной, вспомогательный и дополнительный. Галочками указываются предметы, необходимые для совершения действия.

ПРИМЕР. Игрок хочет «положить что-либо» - тогда в этом ДЕЙСТВИИ участвует только основной предмет. Если же игрок хочет «положить что-то на что-то другое» - тогда, в понимании данной системы, это уже совсем ДРУГОЕ ДЕЙСТВИЕ, в котором участвует уже два предмета – основной и дополнительный. У описанных действий будут разные конструкции глагола.

Допустим, анализатор команд нашёл нужное действие и количество предметов для его совершения. Далее происходит следующая последовательность действий:

ПРИЛОЖЕНИЕ – ЧТО ДОЛЖНО БЫТЬ В ЯЗЫКЕ МОДУЛЕЙ
1.В модуле действия есть несколько предопределенных переменных:

2.Оператор присваивания:
ОснПредмет.Свойство = число, строка, другой объект
Предмет.Бомба.Описание = «Ла-ла»; - изменяем свойство конкретного объекта
Локация.Идентификатор.Свойство = …; - если выделить локации в отдельную ветвь
Персонаж.АлиБаба.Свойство =…; - если персонажей выделить в отдельную ветвь

2.Условный оператор.
Если (условия: равно, больше, меньше, и, или) Тогда
Модуль;
Иначе
Модуль;
КонецЕсли;

3.Вывести текст в игровое окно:
Сообщить(«что-то там произошло или описание чего-то там»);

4.Получить существительное в нужном падеже:
Имен(Имя существительное или Предмет);
Род(); Дат(); Вин(); Твор(); Пред();

5.Цикл

6.Выборка предметов – пробежаться по всем предметам(например, чтобы вывести инвентарь).

7.ВыполнитьДействие(Действие, ОснПредмет,ДопПредмет, ВспПредмет) - вызвать/перенаправить действие из текущего действия.