Комбикорм-2. Редактор карт
Речь идёт о парсерной игре «Комбикорм-2», которая использовалась в конкурсе игроков интерактивной литературы.
Начнём с небольшой статистики:
Уровней: 10
Количество локаций: 167
Количество монстров: 270
Участников разработки: 2
Длительность разработки: 5 месяцев в свободное время (активно занимались картами месяца 3)
Чтобы достичь таких результатов, пришлось сделать редактор карт, в котором может работать я и напарник, создавая карту и выставляя монстров. Итак, “платформой” стал самый обычный Excel. Точнее не Excel, а google spreadsheets для работы в облаке и синхронизации изменений.
Частично выбор инструмента повлиял на способ навигации по карте (2D-поле с соединёнными соседними клетками). Вот верхняя часть первого уровня, где находиться описание карты:

Структура универсальная для различных карт. Клетка A1 — номер уровня (сейчас закрыта изображением компаса). Клетки, начиная с B2 описывают комнаты. Пустая ячейка А5 обозначает конец карты, для визуального разделения добавил еще текстовый маркер на А8. В каждой ячейке карты содержится три элемента — заголовок, который игрок видит всегда при посещении, тип клетки и текст декораций. Для наглядности, я еще подкрасил разные типы клеток подходящими цветами. К примеру, после генерации локации A1(клетка B2), получается такой код:
Теперь нижняя часть файла уровня:

После карты идёт секция объектов, в которой описываются монстры и ящики. Как видно по ячейкам используются флаги для лексического генератора, чтобы в игре обращения к объектам парсер обрабатывал корректно. Следующие ячейки после описания служат для инициализации свойств объекта. Таким образом, не влезая в код мы уже можем создавать карту местности со стандартными объектами и быками. Последняя секция — диалоги. Она не очень удачно сидит в Excel-файле, так как плохо подсвечиваются ошибки и иногда не комфортно редактировать текст. Из блока диалогов получаются функции, которые при вызове по ссылке отобразят текст на экране.
Хотя, это всё очень специализированно, не получиться применить “из коробки”, почти всё надо переписывать. Всем спасибо.
Скрипт для генерации: pastebin.com/KC4NJJ3p
Начнём с небольшой статистики:
Уровней: 10
Количество локаций: 167
Количество монстров: 270
Участников разработки: 2
Длительность разработки: 5 месяцев в свободное время (активно занимались картами месяца 3)
Чтобы достичь таких результатов, пришлось сделать редактор карт, в котором может работать я и напарник, создавая карту и выставляя монстров. Итак, “платформой” стал самый обычный Excel. Точнее не Excel, а google spreadsheets для работы в облаке и синхронизации изменений.
Частично выбор инструмента повлиял на способ навигации по карте (2D-поле с соединёнными соседними клетками). Вот верхняя часть первого уровня, где находиться описание карты:

Структура универсальная для различных карт. Клетка A1 — номер уровня (сейчас закрыта изображением компаса). Клетки, начиная с B2 описывают комнаты. Пустая ячейка А5 обозначает конец карты, для визуального разделения добавил еще текстовый маркер на А8. В каждой ячейке карты содержится три элемента — заголовок, который игрок видит всегда при посещении, тип клетки и текст декораций. Для наглядности, я еще подкрасил разные типы клеток подходящими цветами. К примеру, после генерации локации A1(клетка B2), получается такой код:
room11Level1 :Cell
levelId=1
coord='А1'
groundType=GROUND_TYPE_NORMAL
lit_name='Старая площадка'
lit_desc='Небольшая асфальтированная площадка с зелёными стебельками, выглядывающими из многочисленных трещин. По краям стоят небольшие сосны, среди которых тропинка уходит на юг. Восточнее - крутая гора.'
startZond = true
;
Теперь нижняя часть файла уровня:

После карты идёт секция объектов, в которой описываются монстры и ящики. Как видно по ячейкам используются флаги для лексического генератора, чтобы в игре обращения к объектам парсер обрабатывал корректно. Следующие ячейки после описания служат для инициализации свойств объекта. Таким образом, не влезая в код мы уже можем создавать карту местности со стандартными объектами и быками. Последняя секция — диалоги. Она не очень удачно сидит в Excel-файле, так как плохо подсвечиваются ошибки и иногда не комфортно редактировать текст. Из блока диалогов получаются функции, которые при вызове по ссылке отобразят текст на экране.
Плюсы применения
- Разделение контента от программирования логики. Основная часть делается в редакторе, затем создаётся файлик с конечным автоматом, который управляет ходом игры на уровне.
- Удобная вычитка. Комбикорм-2 помогла вычитать Enola, а в принципе такую игру, можно дать любому редактору.
- Разделение труда. Больше половины уровней делал другой разработчик в редакторе, пока не готова еще логика и поведение.
- Визуальная наглядность карты. В виде 2D-поля карта намного удобнее читается чем просто код. Специализированные редакторы карт для текстовых игр позволяют рисовать карту, но не генерируют готовый код с требуемыми атрибутами. Не стал в игру встраивать изображения карт по одной простой причине — играют незрячие вместе со зрячими, будет нечестно, а так все в равных условиях, тем более разведка у меня элемент геймплея.
Хотя, это всё очень специализированно, не получиться применить “из коробки”, почти всё надо переписывать. Всем спасибо.
Ссылки
Первые карты, входящие в обучение: docs.google.com/spreadsheets/d/1XwwGbs92DJfCCakMDkhwPkwbYx9-l_-DFbgZllIVzJ4/edit?usp=sharingСкрипт для генерации: pastebin.com/KC4NJJ3p
Похожие публикации
Комментирование битвы
Конструктор виртуальных миров
Начало разработки игры «Комбикорм-2»
4 комментария