Racelink
Шаги руководства · 08 / 08

// Руководство по оверлеям · 08

Выпускайте обновления

Оверлей опубликован — дальше его улучшают. Обновление приходит подписчикам само, их макеты и настройки сохраняются, если соблюдать несколько правил. Около 10 минут.

Выпустите обновление

  1. Поменяйте код, как в прошлых шагах, и проверьте его с npm run dev.
  2. Поднимите version в racelink.overlay.json:
    racelink.overlay.json
    "version": "1.1.0",
  3. Соберите проект:
    $ npm run build
  4. В Studio на вкладке Проект кнопка теперь называется Обновить в Workshop. Форма уже заполнена тем, что опубликовано. В поле Что изменилось коротко напишите, что нового; если оставить пустым, будет «Version 1.1.0».
  5. Нажмите Обновить в Workshop.

Обновляется тот же элемент Мастерской: подписчики получат новую версию сами, их макеты сохранят оверлей, а настройки перейдут на новую схему.

1.0.0 → 1.0.1
Исправление: поведение не меняется, только ошибки.
1.0.0 → 1.1.0
Новое: настройка, поле, режим. Старое работает как раньше.
1.0.0 → 2.0.0
Крупная переделка, после которой оверлей выглядит или настраивается иначе.

Не ломайте настройки игроков

Racelink хранит выбор каждого игрока по ключам настроек и при каждой загрузке сверяет его с манифестом:

  • Новая настройка получает значение по умолчанию — добавлять можно смело.
  • Удалённая настройка пропадает вместе с выбранным значением.
  • Переименованный ключ для Racelink — удалённая настройка плюс новая: игроки потеряют свой выбор. Название в панели (label) менять можно, ключ (key) — нет.
  • Число вне новых пределов прижимается к ближайшему пределу, а значение, которое больше не подходит (удалённый вариант списка), становится значением по умолчанию.

Если новая версия просит новое разрешение или новый адрес в интернете, Racelink спросит игрока ещё раз. Пока он не разрешит, новое остаётся закрытым — оверлей должен работать и без него.

Обновляйте SDK

SDK Racelink тоже выходит новыми версиями: новые поля телеметрии, исправления. Обновите его в проекте:

$ npm install @racelink/overlay@latest

Что поменялось, написано в node_modules/@racelink/overlay/CHANGELOG.md. После обновления запустите npm run build: сборка проверит, что код по-прежнему сходится с типами SDK.

Чужой проект как основа

Обновлять элемент Мастерской может только его автор. Если вы взяли за основу чужой проект, в его манифесте чужой workshop.publishedFileId, и публикация закончится ошибкой NOT_OWNER. Удалите publishedFileId из workshop и поменяйте id на свой — оверлей опубликуется новым элементом.

Что дальше

  • Справочник полей — node_modules/@racelink/overlay/docs/reference/fields.md или Studio → «Данные API»: там найдутся данные для следующего оверлея.
  • Все типы настроек, условия и порядок пунктов — node_modules/@racelink/overlay/docs/settings.md.
  • Карты трасс, логотипы марок и флаги стран Racelink отдаёт сам — node_modules/@racelink/overlay/docs/assets.md.

Что должно получиться

  • version в манифесте поднят, проект собран.
  • Элемент в Мастерской обновлён кнопкой «Обновить в Workshop».
  • Ключи настроек и id оверлея не менялись.