ELMORION WorldForge Games Lab
Разработка

ASTRA открывает Разломы: память мира становится физической частью Elmorion

ASTRA получила первый полноценный runtime для Разломов Сопряжения. Теперь исторический узел может иметь собственное состояние, давление, целостность печати и память события, а повторные операции защищены от двойного применения. Первый live-полигон уже работает в древней крепости Elven Territory.

ASTRA открывает Разломы: память мира становится физической частью Elmorion
От исторических свидетельств ELVEN WAVE мы перешли к следующему слою ASTRA: Разломам Сопряжения, состояниям памяти мира и событиям, которые существуют независимо от обычной квестовой логики. Первым полигоном стала древняя крепость в Elven Territory.

Ещё несколько дней назад мы рассказывали о том, как Elmorion начал хранить не только состояние регионов, но и знания самого персонажа.

Через StoryEvidence игрок может находить архивные записи, слышать свидетельства NPC, изучать древние надписи и постепенно обнаруживать, что разные источники рассказывают несовместимые версии прошлого.

Это стало фундаментом ELVEN WAVE.

Но для следующего этапа нам было недостаточно просто хранить знания о прошлом.

Мы хотели получить место, где прошлое способно проявиться в настоящем.

Так в ASTRA появился следующий слой.

Разлом больше не декорация

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

Для Elmorion этого недостаточно.

Если Разлом Сопряжения действительно является нарушением структуры мира, он должен иметь собственное состояние независимо от того, открыт сейчас нужный HTML-квест или нет.

Поэтому мы начали формировать Astra Incident / Rift Runtime.
Теперь конкретный разлом может существовать в ASTRA как самостоятельная сущность.

Например:
rift.vs01.elven.underground_fortress.memory_001
Это уже не просто название сценария.
За ним находится реальное состояние системы.

ASTRA знает:
в каком регионе расположен разлом;
с каким узлом мира он связан;
в какой фазе находится;
насколько велико давление аномалии;
насколько цела печать;
насколько связной остаётся память события;
какая версия состояния сейчас является актуальной.

Один из live-тестов выглядел примерно так:

state = AWAKENING
pressure = 15
sealIntegrity = 90
memoryCoherence = 95
version = 2

Для игрока эти числа никогда не должны превращаться в приборную панель MMORPG.

Но для мира они имеют значение.

Потому что два визуально похожих Разлома теперь могут находиться в совершенно разных состояниях.

Почему первой стала Underground Fortress

Для первого настоящего узла мы выбрали область древней эльфийской крепости.

И это не случайность.

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

Архив говорит одно.

NPC помнит другое.

Старая надпись подтверждает третье.

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

Не призрак.
Не традиционный портал.
И не обычную «магическую аномалию».
Разлом памяти.

Место, где Сопряжение нарушило границу между событием, его воспоминанием и современным миром.

Именно поэтому один из первых голосовых элементов такого узла получил тип Memory Echo.

Его задача не напугать игрока.
Это не хоррор-голос и не дух умершего.
Это короткий остаток сохранённой команды:

Держать рубеж.
Не оборачиваться.
Свет позади.
Удар идёт наружу.

Игрок слышит не рассказ о событии.

Он слышит его обломок.

Память становится пространственной

Раньше ASTRA уже умела помнить поступки.

Затем мы добавили память региона.

После этого появилась память персонажа через StoryEvidence.

Теперь появляется ещё одна категория:

память места.

Это существенно меняет архитектуру мира.

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

Получается несколько независимых слоёв:

Region State
что происходит с регионом сейчас;

Story Evidence
что знает конкретный персонаж;

Topology
где находятся реальные места и как они связаны;

Incident / Rift State
что происходит с конкретной аномалией;

Memory Echo
что сохранилось внутри неё;

Quest Layer
каким способом игрок впервые столкнулся с этим событием.

Для нас это принципиально важное разделение.

Квест больше не является самим миром.

Он становится одним из способов взаимодействия с ним.

Повторная команда больше не повторяет событие

Во время разработки появился ещё один вопрос, который на первый взгляд выглядит чисто техническим.
Что произойдёт, если одна и та же операция будет отправлена ASTRA дважды?
Например, сервер уже изменил состояние Разлома, но клиент повторил запрос.
Или GM случайно запустил одну команду повторно.
Или связь оборвалась после применения операции, но до подтверждения результата.
В обычной системе это легко приводит к двойному эффекту.
Давление увеличится ещё раз.
Печать потеряет ещё десять единиц прочности.
История мира «произойдёт дважды».
Для ASTRA такое поведение недопустимо.
Поэтому операции изменения инцидентов получили защиту от повторного применения.
Во время live-теста повторная мутация вернула:
DUPLICATE
OPERATION_ALREADY_APPLIED
При этом состояние Разлома осталось неизменным.
Это один из тех технических результатов, которые игрок никогда не увидит непосредственно.
Но именно из таких деталей строится мир, которому можно доверять.
Если действие уже произошло, ASTRA должна это помнить.
Даже если серверу второй раз говорят сделать то же самое.

Topology начинает иметь сюжетное значение

Параллельно продолжалась работа над пространственной моделью ASTRA.
Раньше Topology требовалась в основном для того, чтобы система понимала:
где находится регион;
какие точки относятся к нему;
какие маршруты соединяют места;
через какие узлы проходит движение.
Теперь эта система становится частью сюжета.
Разлом связан не просто с vs01.elven.
Он может быть привязан к конкретному узлу:
vs01.elven.underground_fortress
А значит, история получает географию.
Свидетельство может указывать на место.
Место может содержать Разлом.
Разлом может находиться в определённом состоянии.
А состояние может измениться после конкретного действия игрока.
Так постепенно начинает собираться цепочка:
знание → место → событие → решение → последствие.
И именно к такой структуре ASTRA изначально и проектировалась.

StoryEvidence и Разломы остаются разными системами

Ещё один важный результат последних тестов состоит в том, что мы намеренно не смешиваем знание и изменение мира.
Игрок может узнать, что в крепости произошло нечто странное.
Это становится Evidence.
Но само по себе знание не обязано менять Разлом.
Игрок может найти древнюю формулу.
Прочитать архив.
Услышать Memory Echo.
Сопоставить свидетельства.
Но ASTRA ждёт поступка.
Информация и действие остаются двумя разными сущностями.
Это позволяет строить намного более интересные ситуации.
Можно знать правду и ничего не сделать.
Можно уничтожить свидетельство.
Можно раскрыть его другим.
Можно попытаться стабилизировать Разлом.
Можно, наоборот, вмешаться в печать.
И в будущем именно поступок, а не кнопка «выбрать Свет или Тьму», должен определять реакцию мира.

Собственные языки теперь тоже готовы к этому слою

Параллельно развивается языковая система Elmorion.
В текущем Language Codex уже описаны Эвелис, Эвелис-Нар, Кхардел, Ругхар и Кса'рет.
При этом они создаются не только для красивых надписей.
Для ASTRA и ChronicleForge язык уже рассматривается как структурированное состояние контента.
У реплики или надписи могут существовать:
language_tag
native_text
translation
comprehension
canon_version
а для Evelis-Nar ещё и:
access_class
То есть персонаж потенциально может:
понимать язык, но не иметь права получить полный смысл;
видеть часть надписи;
знать перевод, но не понимать её культурного статуса;
обнаружить запрещённую запись;
нарушить доверие, публично раскрыв её содержание.
И здесь StoryEvidence, языки и ASTRA начинают сходиться в одной точке.
История может быть скрыта не потому, что разработчик ещё не открыл следующую HTML-страницу.
Она может быть скрыта внутри правил самого мира.

Что изменилось после ELVEN WAVE

Если коротко, несколько дней назад у нас была система исторических свидетельств.
Теперь появляется фундамент для физического проявления этих свидетельств.
ASTRA начинает понимать:
где произошло событие;
что осталось после него;
в каком состоянии находится его след;
что знает игрок;
что он уже сделал;
можно ли применить это действие повторно;
и как всё это связано с географией мира.
Для игрока всё это должно выглядеть гораздо проще.
Старая крепость.
Странная тишина.
Надпись, которую невозможно полностью объяснить.
Четыре фразы, звучащие там, где никого нет.
И ощущение, что пространство помнит событие, которого нет в современной истории.

Что дальше

Первый Memory Rift является только фундаментом.
Следующий этап значительно интереснее.
Разлом должен перестать быть статической записью ASTRA и получить жизненный цикл.
Спящий.
Пробуждающийся.
Нестабильный.
Раскрытый.
Стабилизированный.
И, возможно, состояния, при которых его уже невозможно вернуть обратно без последствий.
После этого мы сможем связать Разломы с:
состояниями регионов;
StoryEvidence;
решениями игроков;
NPC;
событиями ASTRA;
новыми и существующими квестами High Five;
и более крупной историей Сопряжения.
Мы начинали ASTRA как память мира.
Потом научили её понимать поступки.
Затем дали ей регионы, знания персонажей и географию.
Теперь память начинает получать место.
А у места появляется состояние.
Elmorion постепенно подходит к моменту, когда прошлое сможет не только противоречить настоящему.
Оно сможет в него войти.
← Назад