[#] Комбикорм-2. Редактор карт
RSS-bot(tavern,2) — All
2018-07-13 16:30:35


Речь идёт о парсерной игре «Комбикорм-2», которая использовалась в конкурсе игроков интерактивной литературы.

Начнём с небольшой статистики:
Уровней: 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-поля карта намного удобнее читается чем просто код. Специализированные редакторы карт для текстовых игр позволяют рисовать карту, но не генерируют готовый код с требуемыми атрибутами. Не стал в игру встраивать изображения карт по одной простой причине — играют незрячие вместе со зрячими, будет нечестно, а так все в равных условиях, тем более разведка у меня элемент геймплея.


Если кому интересно, могу поделиться скриптом и результатом генерации, пишите в комментариях. Хотя, это всё очень специализированно, не получиться применить “из коробки”, почти всё надо переписывать. Всем спасибо.

Ссылка: https://ifhub.club/2018/07/13/kombikorm-2-redaktor-kart.html