Headless CMS для игрового контента

Loreset управляет сложным, иерархическим и полиморфным контентом игры — предметами, бонусами, диалогами и балансом. Строгая версионность, встроенная мультиязычность и публикация бандлов на CDN одним запросом.

Open Source · Apache 2.0 Cloud или Self-hosted SQLite / MySQL API-first
Зачем нужен Loreset

Контент игры — это данные, а не таблицы в Excel

Обычные CMS не понимают полиморфные награды, вложенные структуры и версии баланса. Loreset спроектирован для геймдизайнеров и разработчиков с первого дня.

Schema-as-Code (LSL)

Схемы описываются на Loreset Schema Language — расширенном JSON Schema с игровыми типами: relation, union, dictionary, enum, asset. Храните схемы в Git, а админка сгенерирует формы сама.

Иммутабельные ревизии

Каждое изменение записи или схемы — новый снапшот. Старые данные никогда не перезаписываются: сравнение версий, история и безопасный rollback гарантированы архитектурой.

Встроенная i18n

Переводы живут внутри JSON-документа и автоматически индексируются в плоский реестр. Экспорт в CSV для Google Sheets и импорт обратно — с сохранением версионности переводов.

Hybrid Storage

Метаданные, связи и версии — в реляционных таблицах SQLite или MySQL. Сами объекты с бесконечной вложенностью — в JSON-документах. Никаких экзотических баз.

API-first и CI/CD

Только REST API с JWT-аутентификацией и единым контрактом ответов. Импорт и экспорт бандлов встраиваются в любой пайплайн сборки: Dev → Stage → Prod одним запросом.

Публикация на CDN

Один клик — и версионированный бандл контента вместе с индексом versions.json выгружается на S3-совместимый CDN. Игра узнаёт о новой версии без обращения к API.

Loreset Schema Language

Полиморфизм — тип первого класса

Награда бонуса может быть валютой, предметом или навыком — с разными полями. В LSL это один тип union с дискриминатором: админка отрисует нужную подформу, а валидатор проверит данные до сохранения.

  • relation — связи между коллекциями с фильтрами и проверкой существования цели
  • union — одна из нескольких структур по полю-дискриминатору
  • dictionary — карты вида «валюта → количество»
  • i18n_string — переводимые поля с автоиндексацией
Спецификация LSL →
"rewards": {
  "type": "array",
  "items": {
    "type": "union",
    "discriminator": "reward_type",
    "variants": {
      "currency": { "$ref": "#/$defs/RewardCurrency" },
      "item":     { "$ref": "#/$defs/RewardItem" },
      "skill":    { "$ref": "#/$defs/RewardSkill" }
    }
  },
  "ui": { "label": "Элементы наград" }
}
// Игровой клиент скачивает статический versions.json…
{
  "format": "loreset/versions-v1",
  "project": "heliostorm",
  "latest": 7,
  "versions": [
    {
      "version": 7,
      "file": "bundle-v7.json",
      "checksum": "sha256:ab12…",
      "items_count": 132
    }
  ]
}
// …и обновляет контент без релиза в сторы
Live-контент

Обновляйте баланс без пересборки игры

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

  • Никаких запросов к API из игры — только статика с CDN
  • Проверка целостности по sha256-чексумме
  • История публикаций — откат на любую прошлую версию
Формат versions.json →
Совместная работа

Одна платформа для всей команды

Гибкая модель доступа: роли на уровне проекта и индивидуальные переопределения на уровне отдельных справочников.

Геймдизайнер

Правит баланс в формах, сгенерированных из схем, сравнивает ревизии и откатывает неудачные изменения.

Разработчик

Хранит схемы в Git, гоняет контент через REST API, встраивает экспорт бандла в CI/CD-пайплайн.

Переводчик

Работает с реестром переводов или привычным Google Sheets — CSV-экспорт и импорт из коробки.

Продюсер

Управляет участниками и правами, следит за историей публикаций, скрывает чувствительные справочники через ACL.

Демо-проект

Heliostorm — игра, полностью управляемая Loreset

Вертикальный аркадный шутер на Godot 4.6. Весь контент — корабли, оружие, волны врагов, боссы и баланс — живёт в одном бандле loreset/bundle-v1 и обновляется с CDN при запуске игры.

Heliostorm — главное меню
Меню: версия бандла в подвале
Heliostorm — геймплей
Волны врагов — из коллекций Loreset
Heliostorm — ангар
Ангар: предметы и цены из CMS
Heliostorm — экран победы
Награды описаны LSL-схемами

Исходники демо на GitHub   Попробовать сыграть!

Интеграции

Подключается к вашему движку

Бандл — обычный JSON, который читается из любого языка. Плагины упростят интеграцию ещё сильнее.

Godot

Плагин в разработке. Уже сейчас доступен рабочий референс: загрузчик бандла, ContentDB и горячее обновление с CDN в демо-проекте Heliostorm.

Unity

Интеграция запланирована: пакет с типизированным доступом к коллекциям, кэшированием бандла и обновлением контента в рантайме.

Любой движок

Unreal, Defold, кастомные движки — бандл и versions.json это статические JSON-файлы на CDN. Достаточно HTTP-клиента и JSON-парсера.

14+
типов данных LSL, включая union и relation
100%
изменений версионируется — ревизии иммутабельны
2
СУБД из коробки: SQLite и MySQL
1
запрос статики — и игра знает о новой версии контента
Open Source

Открытый код под Apache 2.0

Loreset разрабатывается как open source: разворачивайте self-hosted на своей инфраструктуре без ограничений или используйте облачный хостинг с бесплатным тарифом — данные всегда можно забрать экспортом бандла.

  • Без vendor lock-in — SQL-база и переносимый формат бандла
  • Локальный драйвер публикации для разработки, S3-совместимый для продакшена (MinIO, DO Spaces, Selectel и другие)
  • OpenAPI-спецификация и коллекция Postman генерируются из кода
Смотреть тарифы
# Публикация контента из CI/CD
curl -X POST https://api.loreset.dev/v1/projects/1/publish \
  -H "Authorization: Bearer $LORESET_TOKEN"

# Ответ
{
  "success": true,
  "data": {
    "version": 7,
    "file_url": "https://cdn.example.com/bundle-v7.json",
    "checksum": "sha256:ab12…",
    "items_count": 132
  }
}

Готовы навести порядок в игровом контенте?

Начните с бесплатного облачного тарифа или разверните Loreset на своём сервере за несколько минут.

Начать бесплатно