Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
01.03.2002 14:39

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Структура платформы

MasterK прислал мне следующую структуру платформы (это картинка около 5КБ):
http://www.taplap.ru/olegus/stuff/tex.gif
Лично мне она малопонятна и не отвечает на некоторые вопросы.

     Мое видение платформы таково. Это визуальная среда, в котором в виде дерева представлены следующие составные части (объекты):
     Локации
     Предметы
     Персонажи
     Словари
          и т.д.
Каждый объект имеет ряд свойств, а также собственный модуль, в котором имеется ряд процедур, использующихся при обращении к этому объекту. Процедуры делятся на "системные" и "пользовательские". Системные процедуры вызываются автоматически при возникновении того или иного случая.
     Например, в модуле локации "Кузница" имеется системная процедура "ВходВЛокацию". Она вызывается в тот момент, когда игрок пытается зайти в кузницу. Содержимое этой процедуры автор игры может прописать самостоятельно, например, указав, что если на игроке не надет фартук, то кузнец его не пускает.
     В модуле предмета может быть системная процедура "ДействияСПредметом", где автор прописывает все то, что игрок может совершить с этим предметом.

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

Локация
|
+—Кузница
|      +—Описания
|      +—Выходы
|      |     +—ВнутреннийДвор
|      |     +—Погреб
|      |
|      +—Декорации
|            +—Стол
|            +—Горн
|            +—Наковальня
|
+—ВнутреннийДвор
+—Погреб
+—КрышаКузницы

Неактивен

0    0    #2
01.03.2002 19:01

flamer
Участник
Зарегистрирован: 28.05.2001
Сообщений: 13

Re: Структура платформы

У меня вопрос к MasterK.
Что есть "программа" и с чего начитнается работа.С нее или со ввода предложений?

Неактивен

0    0    #3
02.03.2002 02:22

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: Структура платформы

Продолжая загруз про всякие там системные и пользовательские процедуры, начало и сам процесс игры можно оформить следующим образом:
При запуске игры вызывается системная процедура "ЗапускИгры", а в процессе же самой игры при вводе игроком фразы или при нажатии управляющих клавиш, вызывается другая системная процедура - "ОбработкаДействийИгрока". Содержимое этих процедуры автор прописывает самостоятельно.

Неактивен

0    0    #4
19.03.2002 17:55

MasterK
Участник
Зарегистрирован: 18.12.2001
Сообщений: 15

Re: Структура платформы

В целом, я согласен со структурой языка.
Только
1) По ООП концепции пусть будет так: в люой объект можно засунуть в неограниченных количествах любые другие объекты.
А "Декорации" с учётом этой концепции надо убрать. Ведь эти объекты можно взять и вынести из локации! А это как-то сохранять надо. Думая о будущих проблемах, предлагаю реализовтаь эту систему стандартным "родитель-дитя".
2) Вся структура игры будет ПОЛНОСТЬЮ дублироваться соотвествующим программным кодом. Другое дело, что кодер сможет как сам напистаь участок, так и "автозаполнить" его с помощью всех твоих визуальных менюшек. Т.е. даже структура уровней и всё остальное (что ты предлагаешь реализовать только интерфейсом) надо реализовать и командами. Как в Делфи - ты можешь создавать события с помощью Объектного Инспектора или писать их "ручками", но в любом случа речь идёт об одних и тех же событиях, и создав их одним способом, можно редактировать другим и наоборот. Это значительно повысит гибкость программы.

Неактивен

0    0    #5
20.03.2002 08:50

Namor
Участник
Откуда: Довольно Средняя Азия
Зарегистрирован: 03.05.2001
Сообщений: 33
Вебсайт

Re: Структура платформы

Я вот как себе это вижу. Олегус написал, что он просто делает ОДНУ процедуру во всей проге (на паскале, как я понял) и вся игрушка находится в этой процедуре, в виде громадного case. Я-то думал что я извращенец раз такое стал делать в с++, а оказывается - люди так вполне работают, и всё пашет.

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

Настоятельно рекомендую прислушаться к моей системе алиасов, её нужно встроить в наши словари. Пусть каждое слово в словаре можно будет снабдить алисаом: Вася (человек, живой) -тогда можно будет создавать обработчики событий, срабатывающие не на конкретные объекты, а на классы... Тогда легче реализовать наследование. "Кухня" имеет алиас "локация". А в "локации" прописан отклик на команду "вошёл человк". Вася входит в кухню и хотя ты не прописывал ничего конкретно для кухни, она поймёт, что в неё вошёл "человк" и сделает все необходимые манипуляции над ним.

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

Неактивен

0    0    #6
20.03.2002 15:59

MasterK
Участник
Зарегистрирован: 18.12.2001
Сообщений: 15

Re: Структура платформы

Полностью с тобой согласен кроме шовинизма по отношению к писателям. Они ведь тоже люди ;-)
Насчёт "карманов" - это как раз то, о чём я говорил.

Неактивен

0    0    #7
21.03.2002 12:57

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: Структура платформы

Вообще-то подобное уже высказывалось на форуме:
https://forum.ifiction.ru/viewtopic.php?id=265
но относится это не к словарям, а скорее к платформе и парсеру.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru