MasterK прислал мне следующую структуру платформы (это картинка около 5КБ):
http://www.taplap.ru/olegus/stuff/tex.gif
Лично мне она малопонятна и не отвечает на некоторые вопросы.
Мое видение платформы таково. Это визуальная среда, в котором в виде дерева представлены следующие составные части (объекты):
Локации
Предметы
Персонажи
Словари
и т.д.
Каждый объект имеет ряд свойств, а также собственный модуль, в котором имеется ряд процедур, использующихся при обращении к этому объекту. Процедуры делятся на "системные" и "пользовательские". Системные процедуры вызываются автоматически при возникновении того или иного случая.
Например, в модуле локации "Кузница" имеется системная процедура "ВходВЛокацию". Она вызывается в тот момент, когда игрок пытается зайти в кузницу. Содержимое этой процедуры автор игры может прописать самостоятельно, например, указав, что если на игроке не надет фартук, то кузнец его не пускает.
В модуле предмета может быть системная процедура "ДействияСПредметом", где автор прописывает все то, что игрок может совершить с этим предметом.
Некоторые свойства представлены в виде списка. Например, у локации есть список декораций, которые игрок может осмотреть, список выходов для перемещения в другие локации и т.п.
Локация
|
+—Кузница
| +—Описания
| +—Выходы
| | +—ВнутреннийДвор
| | +—Погреб
| |
| +—Декорации
| +—Стол
| +—Горн
| +—Наковальня
|
+—ВнутреннийДвор
+—Погреб
+—КрышаКузницы
Неактивен
В целом, я согласен со структурой языка.
Только
1) По ООП концепции пусть будет так: в люой объект можно засунуть в неограниченных количествах любые другие объекты.
А "Декорации" с учётом этой концепции надо убрать. Ведь эти объекты можно взять и вынести из локации! А это как-то сохранять надо. Думая о будущих проблемах, предлагаю реализовтаь эту систему стандартным "родитель-дитя".
2) Вся структура игры будет ПОЛНОСТЬЮ дублироваться соотвествующим программным кодом. Другое дело, что кодер сможет как сам напистаь участок, так и "автозаполнить" его с помощью всех твоих визуальных менюшек. Т.е. даже структура уровней и всё остальное (что ты предлагаешь реализовать только интерфейсом) надо реализовать и командами. Как в Делфи - ты можешь создавать события с помощью Объектного Инспектора или писать их "ручками", но в любом случа речь идёт об одних и тех же событиях, и создав их одним способом, можно редактировать другим и наоборот. Это значительно повысит гибкость программы.
Неактивен
Полностью с тобой согласен кроме шовинизма по отношению к писателям. Они ведь тоже люди ;-)
Насчёт "карманов" - это как раз то, о чём я говорил.
Неактивен