Создание Своих Квестов для Игры

Reading Mode

База

Часть 1. Введение

Квесты в игре (официальные и кастомные) хранятся в .xml файлах

В Block Story один NPC может иметь сколько угодно квестов (разных файлов для одного NPC). Игрок при разговоре увидит их списком и сможет выбрать любой. Из отдельных квестов можно строить сетку зависимых друг от друга квестов (рассмотрим позже)

Куда закидывать квесты?

Кастомные квесты (именно XML-файлы, а не папку с квестами) нужно поместить в папку quest внутри директории (папки) сохранений игры. Важно: Игра не читает файлы из вложенных папок и архивов (т.е. если в папку quest вы добавите папки MyQuest и SuperQuest, то игра из них ничего не прочитает)

Путь зависит от платформы:

Windows (Steam): C:\Users\ВашеИмяПользователя\AppData\LocalLow\Mindblocks\Block Story\quest\

Быстро попасть в AppData можно так:

  1. Win + R
  2. %APPDATA%
  3. Вас перебросит в папку Roaming, выйдете из нее и перейдите в LocalLow

Android: /sdcard/Android/data/com.mindblocks.blocks/files/quest/ Начиная с Android 13, доступ к содержимому папки Android заблокирован. Придется подключать по проводу смартфон к компу\ноуту и скидывать через них, либо получать рут-права

Если папки quest нет — создайте её вручную.

ВАЖНО!!! На данный момент, в текущей версии игры (13.4.1) кастомные квесты на Android НЕ РАБОТАЮТ. В новой версии это будет исправлено. Произошло это из-за сломавшихся путей после переноса игры на Unity 6.

[ЭКСПЕРИМЕНТАЛЬНО] В старых версиях игры, сделанных до переноса на новую версию Unity, кастомные квесты на Android в теории могут заработать, но гарантий нет.

Последняя ПК версия, на которой квесты точно работают — 13.4.1. На будущей 13.4.3 квесты также будут работать и на Android, все изменения по ней можете посмотреть на официальном YouTube канале: https://www.youtube.com/@BlockStory1/videos или Сообществе ВК: https://vk.com/block_story


Часть 2. Начало Работы

На десктопах, для разработки кастомных квестов я рекомендую использовать Visual Studio Code (не путать с VS Studio). Для Android можете использовать любой редактор кода или специализированный XML редактор

Весь дальнейший «код» будет писаться в VS Code. Имейте это ввиду

Готовый XML-файл сохраняйте в кодировке UTF-8 без BOM.

Пояснение:
Тот же VS Code по умолчанию создает XML-файл в кодировке UTF-8 без BOM.
В остальных редакторах проверьте, что у вас выбрано просто «UTF-8»
Если написано «UTF-8 with BOM», то значит нужно преобразовать файл в обычный UTF-8. Делается легко: Либо при сохранении выберите «UTF-8» (без приписки BOM или с without BOM), либо с помощью внутренних средств редактора кода. Там будет что-то вроде:
Кодировка —> Преобразовать в UTF-8 без BOM


Часть 3. Базовая Структура

Название XML-файла

Рекомендуется называть файлы без пробелов и только латинскими буквами. Каждое слово с Заглавной буквы. Например: Wave1.xml, а не «Волна 1.xml»

Начало файлов

Каждый XML-файл обязательно должен начинаться с декларации:

<?xml version="1.0" encoding="utf-8"?>

Подробно разбирать это не будем, просто пишите это в начале файла и будет вам счастье

Термины

Квест — один отдельный .xml-файл
Набор квестов — сборник из нескольких разных .xml файлов. Например, Intro.xml, Search.xml, End.xml

Дальше разберемся на примере пустого квеста:

<?xml version="1.0" encoding="utf-8"?>
<quest npc="Wizard" title="HelloWorld">
    <step id="#start">
      <desc>Привет, путник!</desc>
      <option text="Ok" to="#end">
      </option>
    </step>
    <step id="#end">
      <finish>Квест завершён.</finish>
      <option text="Закрыть" to="#close" />
    </step>
</quest>

XML файлы состоят из тегов — команд в угловых скобках (<>). У каждого тега есть имя и у большинства есть ещё свои атрибуты со значениями. Некоторые теги могут содержать другие теги внутри себя

Все теги и атрибуты пишутся с маленькой буквы. Примеры: npc, title, quest, step

Рассмотрим на примере:

<quest npc="Wizard" title="HelloWorld">
…
</quest>

Где <quest> — тег, имя которого quest
npc и title — атрибуты (параметры)
"Wizard" и "HelloWorld" — значения атрибутов. Пишутся в кавычках (" ") после =
</quest> — закрывающая часть тега. Состоит из «/» и имени тега

Всё, что находится между <quest> и </quest> является его содержимым (вложенной частью). Всё, что находится внутри (в данном случае <step>) — дочерние элементы

3
0

Leave a Reply