Формат битмап файла для ритм шутера

Если вы хотите создавать уровни вручную или написать свой конвертер, вам пригодится детальное описание формата битмап файла для ритм шутера 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.

Формат битмап файла для ритм шутера | Beam & Beat