Формат битмап файла для ритм шутера
Если вы хотите создавать уровни вручную или написать свой конвертер, вам пригодится детальное описание формата битмап файла для ритм шутера Beam & Beat.
Структура архива (.zip)
Игра принимает уровни в виде распакованных ZIP-архивов. В корне архива обязательно должны находиться три файла.
info.json— Паспорт уровня (метаданные).beatmap.json— Сценарий геймплея (ноты и тайминги).audio.wav— Аудиофайл (название указывается в info.json).
Метаданные (info.json)
Этот файл отвечает за отображение уровня в меню выбора песен. Игра считывает его первым.
{
"id": "MyLevel_v1", // Уникальный ID уровня (для сохранений и запуска в игре)
"audioInfo": {
"title": "Song Title", // Название трека в меню
"artist": "Artist Name", // Исполнитель
"fileName": "track.wav" // Точное имя файла в архиве!
},
"levelInfo": {
"authors": ["Mapper1", "Mapper2"], // Список авторов карты
"difficulty": "Normal", // Сложность (Easy, Normal, Hard, Expert)
"version": "1.0.0", // Версия карты
"beatmapFileName": "beatmap.json" // Ссылка на файл карты
}
}Важно: Полеidиспользуется для корректного запуска уровня в игре и создания файла сохранения (.sav). Крайне не рекомендуется редактировать это поле. Оно должно совпадать с названием папки уровня.
Карта битов (beatmap.json)
Здесь хранится логика геймплея. Файл состоит из двух основных секций: глобальных настроек и массива нот.
Секция Settings
Определяет, как интерпретировать время и физику объектов.
"settings": {
"bpm": 128.0, // Удары в минуту (Float)
"offset": 0.05, // Сдвиг начала сетки в секундах (Float)
"properties": {
"power": 1500 // Базовая скорость полета целей
}
}Секция Notes (Массив)
Список всех игровых объектов. Каждая нота — это объект с тремя полями:
- beat (float): Временная метка в битах. Например,
4.0— начало 4-го удара,4.5— слабая доля. - id (int): Координата на сетке 7x7. Значения от
0(левый нижний угол) до48(правый верхний). - properties (object, optional): Переопределение глобальных настроек для конкретной ноты (например, изменение скорости).
"notes": [
{
"beat": 4.0,
"id": 24, // Центр сетки (для поля 7x7)
"properties": {
"power": 2000 // Эта нота полетит выше остальных
}
},
{ "beat": 5.0, "id": 25 } // Обычная нота с высотой по умолчанию
]Система координат (ID)
Игровое поле представляет собой сетку 7x7. В редакторе каждая ячейка поля пронумерована в соответствии с расположением спавнера в игре. Игрок направлен на игровое поле в сторону ячеек с номерами 0 - 6.