feat(runtime): run resource schedules during world steps
Docs Deploy / Build and Deploy MkDocs (push) Successful in 34s
Docs Deploy / Build and Deploy MkDocs (push) Successful in 34s
This commit is contained in:
5 files changed
+245
-49
No files matched your search
@@ -202,17 +202,17 @@ SuperAI для записей кланов, затем обновляет Behavi
|
||||
|
||||
Это полезное начало сценария, но ещё не целая игровая жизнь AI. Текущий runtime
|
||||
не воспроизводит аргумент обратного вызова в `AI+0x3fc`, защиту от повторного
|
||||
входа `AI+0x78`, одноразовую метку `AI+0x8a8` или обновления Behavior на игровых
|
||||
тиках. При этом один конкретный шаг Behavior — распределение ресурсов — уже
|
||||
исполнен на исходной DLL с искусственными объектами. Rust пока не вызывает
|
||||
регулярный шаг: игровой мир ещё не предоставляет нужные ресурсные интерфейсы.
|
||||
входа `AI+0x78`, одноразовую метку `AI+0x8a8` или полное обновление Behavior на игровых
|
||||
тиках. Распределение ресурсов исполнено на исходной DLL с искусственными
|
||||
объектами и подключено к Rust `step_headless`: явное время очереди определяет,
|
||||
какой клан должен выполнить очередной ресурсный шаг.
|
||||
При полной загрузке Rust уже восстанавливает членство объектов в клановых
|
||||
списках Behavior и задаёт их начальные доли. Остальные слова записи хранятся
|
||||
сырыми: семантика только первого из пяти слов хвоста установлена для
|
||||
нормализации.
|
||||
Runtime также не подменяет очередь оригинала: вызывающая сторона сама передаёт
|
||||
время, а локальный генератор Rust пока учитывает только случайные числа
|
||||
восстановленного стартового шага.
|
||||
восстановленного стартового шага и ресурсного планировщика.
|
||||
|
||||
### Откуда берутся объекты распределителя
|
||||
|
||||
@@ -355,9 +355,16 @@ Control selector `1`; неподдержанное свойство, запро
|
||||
арифметическое значение возвращает ошибку. Обновления нескольких кланов, их
|
||||
расписания и RNG фиксируются одной транзакцией: если обязательный запрос
|
||||
позднего клана не разрешён, ранее подготовленные изменения остаются
|
||||
неприменёнными. Приложение пока не вызывает
|
||||
этот API из игрового цикла, а динамические callbacks, которые переносят
|
||||
количество между Control provider-строками, ещё не моделируются. Поэтому это
|
||||
неприменёнными. Обычные `step_headless(engine, input, queue_time_ms)` и
|
||||
`frame(engine, queue_time_ms)` запускают этот расчёт до обработки очереди мира.
|
||||
Они сначала готовят ресурсные изменения, затем выполняют шаг мира и публикуют
|
||||
ресурсное состояние после его успеха. Ошибка любой стадии сохраняет прежние
|
||||
ресурсы; ошибка подготовки также не продвигает мировой tick. До срока
|
||||
планировщика большие таблицы ресурсов не копируются.
|
||||
|
||||
Оконное приложение пока запускает static preview и не вызывает этот расчётный
|
||||
путь. Динамические callbacks, которые переносят количество между Control
|
||||
provider-строками, ещё не моделируются. Поэтому это
|
||||
исполняемый загруженный resource step, а не полный симулятор миссии.
|
||||
|
||||
Для настоящих ресурсов AutoDemo тест проходит несколько временных точек:
|
||||
|
||||
Reference in new issue
Block a user