Что такое уровень
Уровень - это папка с файлами. Что в ней лежит, в каком формате её хранить и как передать уровень другому человеку
Что лежит в папке
Уровень Bullet Hero - это обычная папка на диске. Не запись в базе и не зашифрованный архив
Главных файлов два:
level.json- сам уровень: объекты, ключи, темы, ресурсыmetadata.json- обложка: название, описание, авторы, теги, длительность
Рядом лежит всё, что уровень использует: трек, картинки, шрифты. Разработчики не поставляют ни одной текстуры. Всё, что видно в уровне, - это встроенная фигура или файл из этой папки
Обложка лежит отдельно, чтобы показать список из тысячи уровней, не открывая тысячу уровней
Полный список файлов - Папка уровня и бэкапы
Json или Blob
Формат файла выбирается при создании уровня:
| Формат | Что это |
|---|---|
Json | обычный текст, открывается любым редактором и чинится руками |
Blob | бинарный файл, грузится в десятки раз быстрее и весит втрое меньше, глазами не читается |
Делайте уровень в Json, а в Blob переводите готовый. Если уровень перестал открываться, Json можно прочитать и починить руками. Blob почти не чинится: один испорченный байт не проходит проверку целостности
Как передать уровень
Уровень передаётся копированием. Заархивировали папку, отправили, распаковали, открыли. Ничего не устанавливается, не регистрируется и не импортируется
На ПК это работает всегда. На телефоне - там, куда пускает система
Что из этого следует:
- бэкап уровня - это копия папки
- файлы внутри папки не переименовывайте: ресурсы ищутся по именам
- уровень, который редактор не открывает, можно прочитать глазами или во вкладке
Сырые данные
Не правьте level.json в текстовом редакторе, пока уровень открыт в игре. Сохранение из редактора молча перезапишет ваши правки
Открытый формат
Модель данных уровня лежит в отдельном репозитории под лицензией MIT - bullet-hero/sdk. Поэтому уровень можно прочитать и без игры, а под формат можно написать свой инструмент. Дефект формата тоже виден снаружи
Подробнее о формате - SDK