demo-personas.json
Обзор файла
Файл demo-personas.json представляет собой структурированный JSON-документ, который описывает набор демонстрационных игровых персонажей (персон), а также окружение и настройки демонстрации для игровой системы, основанной на использовании внутренней валюты "MANA". Основная цель файла — предоставить готовые профили пользователей с различными уровнями опыта, действиями и сценариями использования, чтобы продемонстрировать возможности игры и ее экономической модели в тестовом режиме.
Файл используется для настройки демо-сессий, позволяя системе автоматически эмулировать поведение разных типов игроков, а также отображать статистику и метрики игры и сети в реальном времени.
Структура файла и подробное описание
Основные разделы
personas — коллекция демонстрационных игровых персонажей (персон) с индивидуальными профилями и действиями.
demoEnvironment — текущее состояние сети и экономические/игровые метрики.
demoSettings — настройки поведения демо-режима.
1. Раздел "personas"
Содержит три ключевых объекта, каждый из которых описывает персональный профиль игрока с уникальными атрибутами, действиями и демонстрационным сценарием.
Структура отдельной персоны
{
"name": "string",
"description": "string",
"profile": { ... },
"demoActions": [ ... ],
"demoFlow": { ... }
}
Пояснения к полям:
name — имя персонажа.
description — краткое описание типа игрока.
profile — объект с характеристиками персонажа (уровень, опыт, баланс MANA, достижения, инвентарь и статистика).
demoActions — массив действий, которые демонстрируются за сессию, с описанием, затратами MANA и ожидаемыми результатами.
demoFlow — описание длительности и ключевых особенностей демонстрационного процесса.
Описание профиля персонажа (profile)
level(число) — уровень персонажа.experience(число) — накопленный опыт.manaBalance(число) — текущий баланс внутренней валюты MANA.achievements(массив строк) — список достижений.inventory(массив строк) — список предметов в инвентаре.stats— объект с игровой статистикой:wins,losses— количество побед и поражений.rating— рейтинг игрока.itemsCrafted— число созданных предметов.totalManaEarned,totalManaSpent— суммарные показатели заработка и расхода MANA.
Для персонажа validator добавляются дополнительные поля:
stakedMana— количество MANA, поставленной на кон для участия в консенсусе.validatorStats— технические метрики валидатора:uptime— процент времени работы.blocksValidated— количество проверенных блоков.rewardsEarned— полученные награды.slashingEvents— количество штрафных событий.
Описание demoActions
Каждое действие содержит:
action(строка) — идентификатор действия.description(строка) — описание действия.manaCost(число) — стоимость действия в MANA.expectedResult(строка) — результат, который должно дать действие.
Пример использования для casual_gamer:
{
"action": "craft_sword",
"description": "Craft first weapon",
"manaCost": 100,
"expectedResult": "Iron Sword added to inventory"
}
Описание demoFlow
Объект с параметрами демонстрационного процесса:
duration(строка) — примерная длительность сессии.keyPoints(массив строк) — список особенностей и преимуществ демонстрации.
2. Раздел "demoEnvironment"
Содержит текущие метрики сети и экономики:
networkStatus — статус сети:
activeValidators— число активных валидаторов.totalStaked— общий поставленный объем MANA.averageBlockTime— среднее время блока в секундах.tps— транзакций в секунду.uptime— время безотказной работы (%).
economicMetrics — экономические показатели:
totalManaSupply— общее предложение MANA.dailyActiveUsers— число активных пользователей в день.dailyTransactionVolume— объем транзакций за день.averageGasSaved— средняя экономия на газе.
gameMetrics — игровые метрики:
totalPlayers— всего игроков.itemsCrafted— создано предметов.pvpBattles— проведено PvP боев.marketplaceTrades— совершено торговых операций.
3. Раздел "demoSettings"
Настройки поведения демонстрации:
autoAdvance(boolean) — автоматическое продвижение по сценарию.showMetrics(boolean) — отображать метрики.enableInteraction(boolean) — включить интерактивность.fallbackMode(boolean) — режим резервной работы.recordSession(boolean) — запись сессии.
Важные детали реализации и алгоритмы
Файл служит конфигурационным шаблоном для демо-среды, позволяя системе автоматически эмулировать поведение различных типов игроков.
Использование параметров
manaCostиexpectedResultпозволяет тестировать игровые механики: создание предметов, бои, торговлю и стейкинг.Раздел
demoEnvironmentобеспечивает синхронизацию с актуальными данными сети и экономики, отображая текущую нагрузку и активность.Демонстрационные потоки (
demoFlow) оптимизированы по времени (1.5–2.5 минуты) для быстрого знакомства с функционалом.Персонажи покрывают разные аудитории: новичков, опытных игроков и технических участников сети (валидаторов).
Взаимодействие с другими частями системы
Файл используется модулем демо-режима в игровом приложении, который отвечает за симуляцию поведения пользователей.
Данные из
personasприменяются для генерации игровых сессий, тестирования UI и игровых механик.Метрики из
demoEnvironmentподаются в компоненты мониторинга и статистики.Настройки из
demoSettingsуправляют логикой демонстрационного режима (например, включение записи или интерактивности).Файл является частью документации для разработчиков и тестировщиков, позволяя стандартизировать демо-сценарии.
Пример использования
import demoPersonas from './demo-personas.json';
// Получить профиль casual_gamer
const casualGamer = demoPersonas.personas.casual_gamer.profile;
// Запустить первое демонстрационное действие
const firstAction = demoPersonas.personas.casual_gamer.demoActions[0];
console.log(`Выполняем действие: ${firstAction.description} (стоимость: ${firstAction.manaCost} MANA)`);
// Отобразить ключевые моменты демонстрационного потока
demoPersonas.personas.casual_gamer.demoFlow.keyPoints.forEach(point => {
console.log(`- ${point}`);
});
Диаграмма структуры файла
flowchart TD
personas["personas"]
demoEnv["demoEnvironment"]
demoSet["demoSettings"]
personas --> casualGamer["casual_gamer"]
personas --> powerUser["power_user"]
personas --> validator["validator"]
casualGamer --> cgProfile["profile"]
casualGamer --> cgActions["demoActions"]
casualGamer --> cgFlow["demoFlow"]
powerUser --> puProfile["profile"]
powerUser --> puActions["demoActions"]
powerUser --> puFlow["demoFlow"]
validator --> valProfile["profile"]
validator --> valActions["demoActions"]
validator --> valFlow["demoFlow"]
demoEnv --> networkStatus["networkStatus"]
demoEnv --> economicMetrics["economicMetrics"]
demoEnv --> gameMetrics["gameMetrics"]
demoSet --> autoAdvance["autoAdvance"]
demoSet --> showMetrics["showMetrics"]
demoSet --> enableInteraction["enableInteraction"]
demoSet --> fallbackMode["fallbackMode"]
demoSet --> recordSession["recordSession"]
Итог
Файл demo-personas.json — это ключевой компонент системы демонстрации игрового приложения, обеспечивающий многообразие персонажей, реалистичные игровые сценарии и актуальную статистику для тестирования и презентации функционала игры. Он структурирован таким образом, чтобы покрыть разные категории пользователей и поддерживать гибкую настройку поведения демо-режима.