🔥 Всем привет! Сегодня расскажу, почему я использую JSON-конфиги.
🤔 Некоторые подписчики спрашивали, почему для конфигурации я выбрал JSON, ведь в Unity есть ScriptableObject (SO)? Так как в SO можно описывать структуру и удобно заполнять данные прямо в редакторе и в зачастую именно SO и берут в роли конфигов.
🧐 Главная причина выбора JSON в том, что я хочу максимально отвязать проект от движка. JSON это универсальный формат, который используется практически везде. А вот SO это уже часть Unity, и работать с ним вне движка полноценно нельзя.
Какие задачи решает JSON в проекте
1) Удобная работа с ИИ-агентом для генерации контента
Моя не самая любимая часть разработки это создание новых конфигов для контента 😏. Чтобы добавить новый блок, приходится заводить конфиг блока, предмета, добавлять ключи переводов и так далее.
⚡️ Чтобы ускорить процесс, я подключаю ИИ-агентов. Достаточно одного промпта, и ИИ может создать пачку новых конфигов за пару минут, экономия времени получается очень заметной. Специально для этого у меня есть небольшая документация: как устроены конфиги и как их правильно оформлять. И тут JSON подходит идеально: ИИ агент легко читает, правит и генерирует JSON без проблем 👍.
2) Дополнительный контент (пакеты)
Скоро я планирую добавлять паки, которые можно будет скачивать с бэкенда, распаковывать и использовать в игре. Бэкенду проще работать с JSON: можно легко прикрутить валидацию содержимого пака, проверку версий, совместимость, зависимости и прочие полезные штуки. Плюс эта же система хорошо ложится на хранение модов (о них ниже).
3) Моды
В будущем хочу развивать проект в сторону модов, чтобы любой человек мог добавить в игру что-то своё. JSON для этого отличный вариант: он читаемый и понятный человеку. Мод можно сделать даже без редактора, просто создавая и редактируя файлы с конфигурацией.
Что уже покрыто через JSON
На данный момент через JSON я настраиваю такие вещи:
✔️ Модели и риг: модели собираю в Blockbench и экспортирую в JSON
✔️ Блоки: поведение, рендеринг и прочие настройки
✔️ Предметы: функционал, рендеринг и параметры
✔️ Биомы: рельеф, окружение (цвет неба, звуки и т.д.)
✔️ Структуры: правила спавна, варианты, настройки генерации
✔️ Мобы: правила спавна, уникальные параметры и поведение
Это уже мощный фундамент: на нём можно быстро расширять игру контентом, постепенно подключать паки, а дальше без боли перейти к полноценной поддержке модов.
Post #826
1.27K

- 👍 12
- 🔥 11
- 🥰 3