Статья под номером 12 Статья под номером 22 Статья под номером 41
ПОИСК ПО САЙТУ
|Заглавная страница |Разделы |ЧаВо/FAQ |Файлы |Ссылки |Интерактивные истории |Послать новости |Форум
Последние статьи
· На восточном фронте без перемен?
· История одного обмана / A. Plotkin - Spider and Web
· Обзор игр на КРИЛ06 от Стаса Старкова
· Обзоры игр-участниц КРИЛ-06
· Гэд
Последние комментарии
· Ссылка на игру вроде б не работает.
// TheMrTka4

· ну с праздником как-бы,..день открытия denza

· Статья хорошая, хотя со многим можно и поспорить.
// Ник В.

Персональное меню
Логин

Пароль

Регистрация

Голосование
Когда стоит провести конкурс русских IF-игр?
август-сентябрь
сентябрь-октябрь
октябрь-ноябрь
зимой
весной
в далеком будущем
[Результаты]
Друзья сайта
Лавка Миров
RTADS
Все об Universal RipSoft Quest
QSP
Клуб Адвантюристов
SMSQuest
Wizard's Nash homepage
Структура игровой базы
Автор: Chip | 2004-05-29 01:08:30 | просмотров: 5880
ИГРОВАЯ БАЗА

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

Пример. Действие Осмотреться:
  • Создаём общее свойство Описание для Локаций
  • В условии Иначе действия Осмотреться пишем модуль:
    Сообщить(Персонаж.ТекущаяЛокация.Описание);
Пример. Действие Осмотреть ОснПредмет:
  • Создаём общее свойство ОписаниеОсмотра для Предметов
  • В условии Иначе действия Осмотреть пишем модуль:
    Если (ОснПредмет.ТекущаяЛокация=Персонаж.ТекущаяЛокация) Тогда
      Сообщить(ОснПредмет.ОписаниеОсмотра);
    Иначе
      Сообщить("Здесь нет "+Род(ОснПредмет)+".");
    КонецЕсли;
По аналогии можно прописать множество других действий, которые в ответ будут сообщать одно из свойств Предмета (нюхать, трогать, облизать и т.д.).

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

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

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

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


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


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

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

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


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


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

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

Допустим, анализатор команд нашёл нужное действие и количество предметов для его совершения. Далее происходит следующая последовательность действий:
  • Запускается модуль под названием «В начале»;
  • Проверяется правдивость введенных условий и запускается модуль, если условие выполняется;
  • Если ни одно из условий не выполнилось, запускается модуль «Иначе»;
  • Запускается модуль «В конце».

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

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

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

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

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

5.Цикл

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

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

Комментарии: 0 | Версия для печати

Если Вам есть, что показать миру (или сказать нам), пишите: admin@ifiction.ru
ВНИМАНИЕ! Все материалы, размещенные на сайте, являются интеллектуальной собственностью их авторов.
Свободное использование материалов возможно только при согласии авторов и соблюдении их прав
(см. «Закон РФ об авторском праве и смежных правах»).

GameTop - рейтинг игровых ресурсов