Создание карт

Материал из Wesnoth Life Wiki
(перенаправлено с «BuildingMaps»)
Перейти к: навигация, поиск

Карта, по факту - просто совокупность вытянутых в линию участков местности, имеющая форму прямоугольника (этот прямоугольник известен как "данные карты"/"map data"). Существует два способа использовать этот прямоугольник в файле: как обычную карту, или же вместе со сценарием. Самый простой путь к созданию карт - использовать встроенный в игру редактор карт, но если вы действительно хотите понять, как эти самые карты работают, вам стоит ознакомиться с форматом данных карты. Эта статья рассказывает о нём, а также содержит указатели на такие темы, как редактор карты, сохранение файлов, а также информацию о том, как поиграть на только что сделанной вами карте. Чтобы узнать, как распространять карты, посетите страницу BuildingMapsDistribution.

Создание карты

"Веснот" обладает полнофункциональным редактором карт, который доступен из главного меню игры. Редактор карт, по задумке, довольно прост, однако некоторые горячие клавиши могут быть найдены в статье - WesnothMapEditor. Создание хороших, интересных и сбалансированных карт - отдельная, совершенно другая задача. Вы можете узнать некоторую информацию об этом от ESR'а по данной ссылке (англ.). Если у вас возникают сложности при использовании редактора карт, посетите Форум мультиплеерной разработки (англ.).

Если вы - программист, то обратите внимание, что хотя и исходный код и большинство бинарных дистрибутивов поставляются с официальным графическим редактором карт, вам, вероятно, придётся отдать соответствующее указание системе сборки для того, чтобы скомпилировать их так же, как и основную игру.

Формат данных карты

Это не матрица. Обычно, вам не придётся рассматривать закодированные карты (как текстовый файл). Однако, если вы хотите использовать некоторые продвинутые функции участков местности (террейнов), или же создавать сценарии и кампании, вам придётся углубиться в код карты. В "Весноте" карты закодированы в определённый формат:

  • Карта начинается со следующих заголовков:
    • строка usage должна содержать слово 'map', если это файл карты, либо 'mask', если это - файл карты верхнего слоя (оверлея) (например, для размещения предметов)
    • border_size, размер границы карты, для карт он должен быть равен 1, а для оверлея - 0. Когда этот параметр равен 1, граница карты является частью её данных. Это значит, что пользователь может определить границу вместо самой игры.
  • Между заголовком и данными картами должна быть одна пустая строка.
  • Файл данных карты может состоять из любого количества строковых линий, каждая из которых, соответственно, содержит одинаковое количество строк.
  • Каждая строка должна быть указана в строковом типе (string), определяющим террейн (см. TerrainLettersWML).
  • Каждая строка может быть дополнена пробелами или отступами (знаками табуляции), а также должна быть отделена запятой, за исключением последней строки в данной линии, которая может не иметь запятой.
  • Когда файл будет читаться, каждая строка будет заменена террейном, на который она ссылается
  • Пустые линии разрешены до, после и между строками символов, но не рекомендуется размещать их между самими линиями.
  • Террейны могут быть снабжены префиксом, предварённым пробелом. Данный префикс указывает начальную позицию для стороны n. n = 1, 2, 3, ... 9 . Большее число сторон, возможно, работает в игре, но это количество не тестировалось и не поддерживается. Это нововведение - в предыдущих версиях стартовая позиция автоматически назначалась на террейне замка.

Рекомендуется использовать пробелы одинаковой ширины для заполнения каждого столбца. Игра делает это автоматически во время написания файла карты.

Из-за того, что в игре используется не квадратная, а шестиугольная (гексагональная) координатная сетка, некоторые значения террейнов могут смещаться. Террейны в чётных столбцах сдвигаются вниз наполовину. Например, чтобы создать дорогу в виде непрерывной грязи ('Re'), файл карты должен выглядеть так:

usage=map
border_size=1

Re, Re, Gg, Gg, Gg, Gg, Gg, Gg
Gg, Gg, Re, Re, Gg, Gg, Gg, Gg
Gg, Gg, Gg, Gg, Re, Re, Gg, Gg
Gg, Gg, Gg, Gg, Gg, Gg, Re, Re

Так что теперь?

Вы создали замечательную карту при помощи редактора, и теперь готовы её протестировать. Но как это сделать? Очень просто.

Игра на вашей карте

Если вы хотите просто поиграть на карте, например, против компьютера, или с вашим другом, то всё, что вам нужно сделать - просто сохранить карту по пути редактора (стандартное расположение). Затем, когда вы запустите игру и войдёте в многопользовательский режим, ваша карта должна появиться в самом верху списка выбора карт.

При создании игры в многопользовательском режиме, ваша карта будет названа другим игрокам как "Пользовательская карта", и все реплеи на ней будут называться "User Map".

Для любознательных: сохранение файла карты создаёт автономный файл с её данными. Этот файл по умолчанию сохраняется по пути userdata/editor/maps/, и карты в данной папке добавляются в верх списка выбора карт.

Поделитесь своей картой

Когда вы будете готовы представить свою карту миру, разместите её на этом форуме, или упакуйте для распространения на внутриигровом сервера аддонов. Инструкции по распространению карт см. на BuildingMapsDistribution.

Обратите внимание

Разработчики собирались обновить формат карт. Прочтите это.

См.также: