🔥
Система сущностей (Entities) в Cloud — гибкая конфигурация (часть 1)В любой игре есть слой конфигураций — предметы, валюты, настройки игры, параметры баланса. Всё это нужно где-то описать, структурировать и удобно менять на лету — без необходимости обновлять клиент.
Для этого у нас есть Entities — базовая платформа конфигураций для всего проекта.
Что умеет Entities?Это базовая система конфигураций. Описываешь типы данных, шаблоны и структуры один раз — после чего использовать их в Экономике, Лидербордов, Турниров и любого другого сервиса. Не нужно дублировать одни и те же конфиги в разных местах.
Шаблоны и конфиги (Templates & Configs)✔️ Шаблон описывает структуру состоящую из узлов — какие поля, какие типы.
✔️ Конфиг — это конкретный экземпляр шаблона с заполненными значениями.
Пример: шаблон «Оружие» содержит поля: название, урон, скорость атаки, иконка. На его основе создаёшь конфиги: «Деревянный меч» (урон 10, скорость 1.5), «Огненный посох» (урон 40, скорость 0.7).
Шаблоны поддерживают наследование.
Создаёшь базовый шаблон «Оружие», от него наследуешь «Автомат» с дополнительным полем — патроны. Все поля базового шаблона подтягиваются автоматически. Изменил что-то в базовом — изменилось у всех наследников.
Готовые типы полейКаждый узел в шаблоне имеет тип. Из коробки доступны:
— Базовые: String, Int, Float, Double, Decimal, Boolean
— Коллекции: Object, Array
— Игровые: Vector3, Color, Image
— Контент: Localization, ConfigRef (ссылка на другой конфиг)
— Время: Time, DateTime, DateOnly
Этого хватает для большинства задач. А если нужно больше — есть кастомные типы.
Кастомные типы — Enums и StructuresПомимо готовых типов, можно создавать свои.
✔️ Enum — перечисление именованных значений (например, типы урона: Physical, Magic, Fire). Поддерживают режим флагов — можно выбрать сразу несколько значений.
✔️ Structure — типизированная схема данных. Как структура в C# — описываешь поля и их типы, а потом используешь как готовый блок в шаблонах.
Типы создаются в Entities и доступны из любого сервиса.
В SDKНа клиенте всё просто — SDK получает готовый JSON, с которым уже можно работать. Обращаешься по ключу и получаешь нужный конфиг.
👍 В следующей части расскажу про систему атрибутов и валидацию в entities — как задавать правила прямо в схеме данных.
💬 Если есть вопросы по функционалу — пишите в комментарии, буду рад ответить.
А также
подписывайся на нашего тг бота — там будут приходить новости по продуктам хаба 😎
P.S Дизайн на скриншотах пока тестовый — будет ещё дорабатываться.
PP.S Название сервиса тестовое, если у вас идеи как понятнее его назвать, пишите в комментарии
#cloud #game_backend