Техническое задание для платформы по созданию IF (http://taplap.ru/articles.php?op=show&aid=64)
Отправлено: Chipollino
Автор: Chip
2004-05-29 01:08:28

ВВЕДЕНИЕ
Каждый из нас когда-нибудь задумывался над тем, как же должна выглядеть "идеальная" платформа для создания текстовых игр. Ясно, что идеал недостижим, но попробовать продумать хорошую платформу (назовём её "IFER") мы в состоянии. Здесь никто никого не заставляет что-то программировать, здесь просто обсуждается "как это должно быть". Давайте оставим технические проблемы, стоимость реализации и подсчёт необходимого количества человеко-часов до времён более-менее внятного технического задания, а сейчас просто подумаем, ведь это не занимает так много времени, как программирование, но в то же время это довольно увлекательно и интересно.

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

Если Вас вдруг заинтересует сия тема, прошу все предложения писать на форум (сюда) или мне на мэйл b=o=d=o=m@m=a=i=l.r=u (естественно, без знаков равно). Также буду несказанно рад любым откликам, найденным ошибкам и предложениям о сотрудничестве.

Александр Мирошников


СЛОВАРНЫЙ ЗАПАС
Словарь реализуется в виде отдельной базы данных. Перед началом создания игры автор должен скачать себе последнюю версию словаря, в котором уже присутствует некоторый набор слов. По необходимости автор дополняет его новыми словами и отправляет обратно в хранилище, где его обновляют. Получаем, что со временем словарный запас станет довольно обширным, и туда всё реже и реже нужно будет вносить что-то новое. А это, как Вы прекрасно понимаете, значительно упрощает работу при создании игры.

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


Имена существительные

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


Имена прилагательные



Глаголы

Глаголы бывают несовершенного и совершенного вида. Первые отвечают на вопрос "Что делать?", вторые - "Что сделать?". Каждому глаголу несовершенного вида соответствует некоторый глагол совершенного вида. Для чего это нужно указывать в словарном запасе? Например, игрок вводит команду "брать монету". И для того, чтобы программа смогла ответить не "герой брал монету", а "герой взял монету", и нужно указывать данную связь.

Переходными называются глаголы, которые могут сочетаться с существительными в винительном падеже без предлога. Например, "взять (что?) бублик" или "украсть (что?) картину". При этом, следует заметить, что переходный глагол может употребляться и без существительного в винительном падеже. Например, "смотреть фильм", но "смотреть на экран". Можно ввести термин "основной предмет". Это как раз и будет предмет, описывающийся существительным в винительном падеже без предлога после переходного глагола. При употреблении непереходного глагола его не будет.

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


Конструкции глаголов

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