ОБ УПРАВЛЕНИИ ТЕКСТОВЫМИ СООБЩЕНИЯМИ
Следует признать, что в настоящий момент Текстовый блок каждого параграфа игры, создаваемой в Митриле, абсолютно статичен, неизменен.
Данное обстоятельство сильно ограничивает возможности фидбэка (отклика системы на управление и события в игре), что снижает интерактивность игрового процесса.
Например, в каком-то месте игры персонаж теряет случайное количество единиц ВЫНОСЛИВОСТИ – как об этом можно написать?
"Вы теряете несколько единиц Выносливости." (сам отследи, сколько)
ИЛИ:
"Вы теряете 3 единицы Выносливости."
Вторая запись более конкретна и более предпочтительна, чем первая, но чего она будет стоить автору сторигейма?
Автору нужно создавать кучу однотипных действий и связанных с ними вспомогательных параграфов, чтобы выдать одну-единственную запись:
ДЕЙСТВИЕ1. ДОСТУПНО ЕСЛИ (ПОТЕРИ = 1). ПЕРЕЙТИ на ПАРАГРАФ1
ДЕЙСТВИЕ2. ДОСТУПНО ЕСЛИ (ПОТЕРИ = 2). ПЕРЕЙТИ на ПАРАГРАФ2
ДЕЙСТВИЕ3. ДОСТУПНО ЕСЛИ (ПОТЕРИ = 3). ПЕРЕЙТИ на ПАРАГРАФ3
ДЕЙСТВИЕ4. ДОСТУПНО ЕСЛИ (ПОТЕРИ = 4). ПЕРЕЙТИ на ПАРАГРАФ4
ДЕЙСТВИЕ5. ДОСТУПНО ЕСЛИ (ПОТЕРИ = 5). ПЕРЕЙТИ на ПАРАГРАФ5
ДЕЙСТВИЕ6. ДОСТУПНО ЕСЛИ (ПОТЕРИ = 6). ПЕРЕЙТИ на ПАРАГРАФ6
ПАРАГРАФ1. ТЕКСТ "Вы теряете 1 единицу Выносливости.". ПЕРЕЙТИ НА ПАРАГРАФ7
ПАРАГРАФ2. ТЕКСТ "Вы теряете 2 единицы Выносливости.". ПЕРЕЙТИ НА ПАРАГРАФ7
ПАРАГРАФ3. ТЕКСТ "Вы теряете 3 единицы Выносливости.". ПЕРЕЙТИ НА ПАРАГРАФ7
ПАРАГРАФ4. ТЕКСТ "Вы теряете 4 единицы Выносливости.". ПЕРЕЙТИ НА ПАРАГРАФ7
ПАРАГРАФ5. ТЕКСТ "Вы теряете 5 единиц Выносливости.". ПЕРЕЙТИ НА ПАРАГРАФ7
ПАРАГРАФ6. ТЕКСТ "Вы теряете 6 единиц Выносливости.". ПЕРЕЙТИ НА ПАРАГРАФ7
Можете оценить соответствующий объём работ, если потери определяются двумя, а то и тремя бросками кубиков (в "Спектральных сталкерах" может быть до 6 бросков кубиков). Ясно же, что автор попросту откажется от фидбэка, и будет вынужден либо просто смолчать о потерях, либо сказать что-то неконкретное.
Другой пример: Использование имени главного героя в тексте, если изначально был выбор из нескольких доступных персонажей или возможность дать герою имя на выбор игрока. Такой возможности попросту нет и никакое разумное решение этого вопроса невозможно.
Что нужно авторам сторигеймов для управления текстами:
1. Для повышения гибкости и интерактивности необходимы текстовые сообщения, формируемые динамически, содержание которых заключается в ТЕКСТОВЫХ ПЕРЕМЕННЫХ.
2. Очень удобной была бы возможность дописывать динамический текст к статическому тексту параграфа – для этого нужно добавить в редактор Митрил действие "ПОКАЗАТЬ ТЕКСТ". Кроме того, нужно ещё, чтобы блок текста и блок действий параграфа были разделены по разным фреймам (один под другим).
3. Для текстовых переменных нужны всего 2 операции:
СОЕДИНИТЬ ТЕКСТ(A,B,C,D,...), где A,B,C,D,... – текстовые переменные, текстовые константы, значения ресурсов и спецзнаки EOP (End of Paragraph, конец абзаца). Эта операция осуществляет сборку единого текста из разнородных частей.
УМНОЖИТЬ ТЕКСТ(T, n), где T – текстовая переменная, n – число (ресурс). Эта операция кратно воспроизводит содержание текстовой переменной T.
4. Поддержка HTML-тегов в текстовых переменных может быть, но она необязательна.
Для чего нужна операция "УМНОЖИТЬ ТЕКСТ"?
Главное её применение – использование динамических текстов в сочетании с ИНДИКАТОРАМИ УСЛОВИЙ. Это позволит формировать динамические тексты в зависимости от выполнения различных условий (с учётом того, что оператор ЕСЛИ отсутствует в блоке автоматических изменений).
Если I – индикатор некоторого условия, а T – текст некоторого сообщения, то результат операции УМНОЖИТЬ ТЕКСТ(T, I) будет T, если соответствующее условие выполнено, и пустое сообщение, если оно не выполнено.
(Есть и другие возможные применения, например – для удобства рисования средствами текстовой графики, но лично я не считаю их достаточно вескими.)
{"1":[[10157,"\u0412\u0430\u0434\u0438\u043c \u041c\u0435\u0434\u044f\u043d\u043e\u0432\u0441\u043a\u0438\u0439"],[9245,"Velard"]],"29":[[9245,"Velard"]]}