Идеи врагов разбросаны по заметкам? Соберите их в одну коллекцию, с которой действительно удобно работать

Где расположены враги ваших персонажей? Одна коллекция хранит каждого персонажа как структурированный игровой объект, который можно сортировать, дублировать и использовать повторно

Поговорим о том, где на самом деле обитают ваши враги

Вчера мы превратили Хлою в настоящий игровой объект, поэтому впервые «кто» нашей игры получил настоящее место для жилья (вот как мы это сделали). Хорошо, но торговый центр не собирался вечно оставаться тихим. Монстры уже в пути - и, скорее всего, где-то уже припрятана пачка идей врагов.

Итак, вопрос, над которым стоит задуматься на секунду: где эти идеи живут прямо сейчас?

Может, это сообщение другу, отправленное в 2 часа ночи. Заметка на телефоне, где написано «быстрый зомби, возможно, с бронёй и взрывчаткой». Или абзац, похороненный где-то в дизайн-документе и ждущий, пока его раскопают.

Важно помнить, любое творчество начинается с небольшого хаоса. Проблемы начинаются позже, когда отложенное «потом» наконец наступает. Смотришь на весь этот бестиарий, и голова начинает идти кругом от того, с каим объемом информации нужно работать. И больше это уже напоминает не гейм-дизайн, а археологию...

Рассмотрим следующие шаги по оптимизации разработки

Почему папка (и почему именно коллекция)

Давайте начнём с основ - люди группируют связанные или похожие вещи в одном месте, будь то ящик в шкафу, книжная полка или папка на компьютере. IMS Creators следует по тому же принципу: он группирует элементы в одной директории. А когда группа - это куча похожих вещей, например врагов, для этого существует особый вид папки. Он называется Коллекция.

Что особенного в коллекции при сравнении с обычной папкой?

Во-первых, структура становится монолитной. Коллекция строго типизирована. Поскольку каждый враг представляет собой Игровой объект, у них абсолютно идентичный набор характеристик, что упрощает их сравнение и балансировку.

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

Создаём коллекцию «Враги» шаг за шагом

На самом деле это занимает всего пару минут и работает независимо от того, насколько большим станет бестиарий.

Начните с самой коллекции

Найдите кнопку Создать на левой панели - или щёлкните правой кнопкой по существующей папке и выберите в меню Создать папку. Выберите Коллекцию.

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

Добавьте первого врага

Когда коллекция открыта в виде таблицы, нажмите Добавить строку. Вот и всё - IMS Creators мгновенно добавляет новый элемент с именем Untitled - 2 и типом Игровой объект (коллекция автоматически фиксирует тип, так что создать несоответствующий элемент невозможно).

Игровой объект появляется с несколькими блоками: Галерея для арта, Описание для краткой сводки, Свойства где находятся структурированные поля. Переименуйте новую строку: назовите её Посетитель-ходячий (Mall-walker). Затем добавьте поля, которые должны быть у каждого врага:

  1. Здоровье - поле типа Число.
  2. Скорость - поле типа Число.
  3. Урон - поле типа Число.

Затем заполните значения. Посетитель-ходячий, обычный шаркающий посетитель торгового центра, получает Здоровье = 60Скорость = 30Урон = 8.

Теперь более голодный из фуд-корта: снова нажмите Добавить строку (тип всё ещё Игровой объект), переименуйте её в Обжора из фуд-корта (Food-court runner) и задайте Здоровье = 40Скорость = 75Урон = 5.

Два врага, которых легко сравнить. Одинаковые поля, разные показатели.

Создавайте варианты без дублирования

Предположим, нужен тяжёлый бронированный Посетитель-ходячий. Перестраивать таблицу с нуля нет необходимости.

Щёлкните правой кнопкой по элементу Посетитель-ходячий в колонке слева и выберите Дублировать. IMS Creators копирует всё целиком и открывает новый - уже названный Посетитель-ходячий - 2, ожидающий правки.

Переименуйте его: щёлкните правой кнопкой, выберите Переименовать и назовите Посетитель-ходячий (бронированный). Затем просто поднимите Health до 120, а Damage до 12. Одна правка на копии - и готов новый враг. Вот это то, что нужно.

Ваши изменения не сломают структуру игры

Важно подметить, что изменение описания или другой характеристики ничего не ломает. Потому что ссылки указывают на элемент, а не на напечатанную строку, - переименование Обжора из фуд-корта в Гурмэ-спринт не сломает логику. Элементы связаны друг с другом через ссылки, а не через конкретные значения вроде заголовка или определённого параметра, поэтому всё продолжит работать независимо от того, как меняются заголовки или свойства.

Для переименования: щёлкните правой кнопкой по элементу и выберите Переименовать (или просто дважды щёлкните по его заголовку, когда он открыт). Введите новое имя, подтвердите - готово.

А если находиться внутри самой коллекции, есть приятный бонус: страница коллекции показывает всё в виде таблицы (или сетки карточек), которую можно Сортировать и Фильтровать - отсортируйте по Здоровью или отфильтруйте только бронированных.

Вы можете сами ознакомиться с тем, что лежит на диске

Откройте папку проекта и загляните внутрь Враги/. Каждый враг - это просто файл: Посетитель-ходячий.ima.jsonОбжора из фуд-корта.ima.json - открытый JSON-документ, содержащий ровно те поля, которые были введены.

Что мы получаем в итоге

  • Всё сразу. Откройте Враги и увидите весь сгруппированные заметки в одном месте.
  • Дублируйте, а не перепечатывайте. Любой герой, которого вы создадите позже, отнимет меньше времени, т.к. у вас будет заготовленная основа
  • Простая балансировка. Общие числовые поля позволяют выстроить параметры в ряд и сравнить их в представлении, удобном и для разработки, и для гейм-дизайнеров.
  • Готово к движку. Структурированные поля - это данные, которые легко прочитает движок.

Дальше: заставляем дизайн и код согласоваться

Теперь есть коллекция Враги - один чистый источник истины для всей команды разработчиков.

В следующем посте заставим дизайн-документ и код наконец согласоваться: откройте файл врага .ima.json, посмотрите на структурированный JSON за ним и посмотрите, как игровой движок может просто его загрузить.


FAQ

В чём разница между папкой и коллекцией?

Папка - это простой контейнер: в неё можно набросать любую смесь элементов. Коллекция - это папка, чьё назначение - группировать набор похожих элементов одного выбранного типа, чтобы они вели себя как сопоставимый, организованный список.

Как создать коллекцию?

Нажмите Создать (на левой панели или через меню папки), выберите тип Коллекция, когда спросят, затем введите имя, выберите тип элемента, который будет содержать коллекция, и нажмите Создать. Она готова к элементам сразу же, как только появилась.

Может ли коллекция содержать любой тип элемента?

Коллекция типизирована, поэтому она содержит элементы одного выбранного базового типа - например, Игровой объект. Именно это удерживает группу от беспорядка: каждый враг в Враги разделяет одинаковые поля. Тип не обязан быть одним из предустановленных - пользователь может создавать и редактировать собственные базовые объекты и использовать их как типы коллекций. При необходимости тип можно изменить позже.

Как сделать копию элемента?

Щёлкните по нему правой кнопкой и выберите Дублировать. IMS Creators копирует весь элемент и открывает новый, уже названный вроде Посетитель-ходячий - 2, готовый к переименованию и правке.

Как переименовать элемент, не ломая ссылки на него?

Щёлкните по нему правой кнопкой и выберите Переименовать (или дважды щёлкните по его заголовку на открытой странице), введите новое имя и подтвердите. Поскольку IMS Creators ссылается на сам элемент, а не на напечатанное имя, ссылки продолжают работать после переименования.

Где на самом деле лежат на диске игровые объекты врагов?

Как обычные файлы внутри папки коллекции - например, Враги/Посетитель-ходячий.ima.json. Каждый из них - открытый JSON-документ, содержащий структурированные поля элемента, так что его может прочитать любой редактор, git и игровой движок.

Назад к блогу