Разрабатываем свою карточную игру с помощью nanDECK
Давно мечтали о своей ККИ, убийце MTG и Hearthstone? Как известно, долгий путь начинается с первого шага, и в случае карточных игр таковым может стать бумажный прототип.
В этой статье я расскажу как сверстать и напечатать карточную игру с помощью программы под названием nanDECK.
Наша цель: подготовить PDF с карточками нашего прототипа в удобной для распечатке форме. Поскольку макет игры надо быстро и часто менять, мы обеспечим стремительную пересборку этой PDFки.
Почему nanDECK?
Full Disclosure: существует множество альтернативных программ для разработки своих карточных игр, тысячи их. Большинство из них, вероятно, более удобны. Но так уж получилось, что я разобрался именно с титульным софтом, и оказалось, что он-таки неплохо справляется со своей задачей. Поэтому я решился поделиться с вами своим опытом, и сегодня мы научимся пользоваться nanDECK.
У программы я могу отметить следующие плюсы: интеграция с Google Docs, простота внесения изменений, наличие своего-вроде-как языка, куча классных фичей; а также следующие минусы: присутствие багов, сложности при работе с кириллицей и программист-стайл интерфейс.
Что понадобится для работы
Как известно, нет лучше инструмента для геймдизайнера, чем эксель, поэтому сам прототип мы разработаем в Google Spreadsheets. Я придумал несколько простых карточек заранее, вот они. Вы можете создать и свой документ, но не забудьте открыть доступ по ссылке.
Что в документе для нас важно, так это названия столбцов. Ну, для примера, пусть будут такие:
- NAME — название карты (например, «Лютный укус»)
- EFFECT — текст действия карты («Нанести 300 урона»)
- MANA — мана-стоимость («3»)
- TYPE — тип карты («Заклинание»)
- IMAGE — изображение для карты («Bite.jpg»)
- FLAVOUR — нарративный текст («Лютоволк жрет мою лютню!», - Ю.А. Лютик)
- QUANTITY — сколько карт нам понадобится для распечатки
Тут стоит обратить внимание, что прототип в облаке, что чрезвычайно удобно.
Я подготовил изображения для этого руководства, которые можно скачать и использовать бесплатно. В этом же архиве фон для карточек. Для прямо вот бумажного прототипа нам понадобится принтер и ножницы.
Синтаксис
Центральное окно занимает редактор скриптов. В нем мы и будем работать, отвлекаясь лишь на визуальное оформление карт.
Итак, приступим к написанию скрипта! Начинаем со следующего заклинания:
LINKMULTI указывает на столбец, который используется для умножения количества карточек в результирующем наборе карт. То есть, если мы хотим в итоге распечатать 2 такие-то карточки, то в этом столбце в Spreadsheets поставим число 2. В нашем случае столбец называется QUANTITY, на него и ссылаемся.
Поставив курсор на директиву (например, на LINKMULTI) и нажав F1 можно прочитать справку внутри софта.
Чтобы наш результат не исчез, сохраняемся ("Save") и запоминаем, куда сложили текстовый файл со скриптом: потом сюда же будем складировать изображения.
Далее вносим ссылку на наш Google Spreadsheet. Данный буквенный код можно найти в адресной строке вашего документа ("https://docs.google.com/spreadsheets/d/ВОТ_ТУТ"). Альтернативно можно указать и локальную xlsx таблицу, тогда значение было бы чем-то вроде C:\MyFolder\MyProt.xlsx.
Проверим, что программа синхронизируется с облаком. Для этого жмем "Validate deck". Внизу все должно быть OK. Продолжаем писать код следующей директивой:
Настройки директивы PAGE звучат довольно интересно: размеры в сантиметрах, ориентация и дополнительные качества (в данном случае, центрирование по горизонтали и вертикали).
BORDER — настройки границы карты: тип (ROUNDED, RECTANGLE, MARK, NONE) , цвет и толщина. У меня NONE, но решил привести здесь на тот случай, если у вас-таки будет не NONE.
GAP — расстояние между карточками.
Следующий блок мы сделаем автоматом, нажав на кнопку Visual Editor.
После этого нам понадобятся кнопки Image, HTMLFont и HTMLText, что в левой части нового неистового экрана. Первым делом вставим фон, нажав на Image. В правой части окна появилась строка Image. Щелкаем по ней правой кнопкой и указываем в поле "Image file" локацию нашей подложки (среди прилагаемых изображений она называется "BG.png").
Остается добавить изображения и всяческие текстовые поля для конкретных карточек. Для начала разберемся с тектовыми данными. Вообще синтаксис, по-видимому, как-то связан с HTML, поскольку есть говорящие об этом кнопочки. Для текстовых полей нам понадобится сначала HTMLFont.
Это настройки шрифта, для дальнейших текстовых полей. Выбираем в левой панели HTMLFont, затем в правой панели правым кликом открываем настройки. Пусть это будет настройка лишь для названия, поэтому назовем его NameFont.
Затем выбираем HTMLText. Давайте-ка заведём название карточки из прототипа. Чтобы появилась связь с таблицей, в настройках HTMLText в поле "text" нужно указать название столбца в квадратных скобках (т.е. [NAME]). Также указываем ссылку на наш шрифт в поле "htmlfont".
Обязательно нужно отметить флаг Explorer render, иначе не видать вам кириллицы. Флажок Transparent убирает фон. Также обратите внимание на формат в поле "range".
Далее добавляем еще один Image и указываем в поле "image file" [IMAGE]. Чтобы программа подтянула изображения по ссылкам из таблицы, необходимо, чтобы файлы изображений лежали рядом с текстовым файлом прототипа. Ну, то есть там, где мы его сохранили в самом начале.
Чтобы читалась прозрачность у .png, нужно указать флаг "Transp.". Флаг "Proport." устанавливаю для того, чтобы картинка не искажалась при масштабировании.
Остается дело за малым: нужно завести оставшиеся текстовые поля. Мы уже умеем заводить текст, поэтому достаточно это сделать по аналогии с заголовком карты и настроить шрифты по своему вкусу.
Весь код из этой статьи целиком (с ним получится результат, как тот, что выше):
Теперь осталось собрать карты в печатном виде. Для этого нужно последовательно нажать кнопки в левой части экрана: "Validate deck", "Build deck", "PDF". Вуаля!
Программа содержит кучу возможностей, с полным списком которых можно ознакомиться в руководстве пользователя (на английском).
Результат
В итоге у нас получилась симпатичная PDFка. Теперь вы можете легко менять свой spreadsheet и пересобирать новые PDF по нажатию трех кнопок! Прототип можно распечатать и получить приятный результат:
Бонусный факт: получившуюся PDF легко использовать в Tabletop Simulator (там буквально можно «нарезать» PDF) для игры с другом в ваш новый прототип по интернету! Тогда и принтер можно не терзать.
Возможно, для пяти карт такая подготовка и скриптование кажутся излишними, но если ваш прототип вырастет до объема в, скажем, 7 карт, то сами понимаете.
Все ссылки в одном месте:
- nanDECK (официальный сайт)
- Руководство на английском
- Все материалы из этой статьи одним архивом, далее содержимое этого архива по отдельности:
- Итоговый PDF
- Изображения и задник для карт
- Таблица с прототипом
- Текстовый файл с кодом
Минутка рекламы
Изначально nanDECK я изучал для прототипирования игры, которую разрабатываю. Кстати, мы сейчас ищем 3д-аниматора, если вы такой, то пишите! Ну и конечно, вступайте в группу в ВК, подписывайтесь на твиттер, спасибо за внимание.
Выглядит, как статья про игры на DTF, даже напугался.
Сохранил, завтра на обеде почитаю и точно всё проверю.
Возможно задам тупой вопрос, но я в принципе тупой так что не всё ок. Посмотрел я на эти танцы с бубном чтобы сделать простую PDF c 9 картами, и всё никак не пойму, а почему нельзя воспользоваться фотошопом, например? Редактируется текст там точно так же быстро как и в табличке.
Как автор карточной игры могу сказать - таблички необходимы.
Основной пункт - вы будете постоянно менять
1. Лейаут карты - чтобы было понятнее. Здоровье наверх / влево, текст вниз и т.д., добавлять свойства. Переверстывать в PDF замучаетесь.
2. Иногда требуется несколько экземпляров карт. Копировать в таблице проще. Править текст для синхронности - тоже.
3. Баланс тоже проще в табличке считать. Взял поменял у N монстров здоровье с 1 на 2 - и перепечатал.
Обычно любая колода для адекватной рандомизации должна содержать 20-30 карт. Если вам нужно пару колод - уже 40-60 карт. Эвенты? Еще одна колода.
Изменять текст в таблице и подхватывать оттуда информацию для компиляции проще, чем делать кучу слоев в Фотошопе, перебирая различные комбинации с сохранением этих комбинаций и последующей сборкой их этих комбинаций в indesign. Хотя вот в indesign можно выставить необходимые метки для резки, до которых докапываются в типографиях.
С таблицей вы заморочитесь 1 раз, зато потом будете делать всё очень быстро, когда механизм отладится. А в фш будете каждый раз тратить кучу времени на одну карту, даже если делать тяп-ляп, всё равно дольше.
Дружище, это реально лучшая статья на этом сайте за очень долгое время (я даж ещё до конца не прочитал - потому что параллельно делаю, чтобы вникнуть, но уже могу это сказать). Вы большой молодец. Никакого пердежа в лужу, только по делу, причём полезная штука. Тут же можно не ток ККИ прототипировать, и настолку какую-нить и т.д. Можно и боёвку пошаговую в стиле jrpg с таким инструментарием запрототипировать.
Просто космос.
Удивлён, что за сутки всего 45 ЛюКенгов.
Я это даже себе на стену в вк сохраню.
Очень круто!
Зарегался на сайте где-то 1,5 года назад, чтобы пошутить в комментах про Джилленхола, и с тех пор думал, что площадка плюс-минус бесполезная. За всё время наткнулся на 5-6 реально крутых материалов (включая ваш).
Ради таких постов, даже если их будет появляться по одному на 3-4 месяца, реально стоит скроллить ленту каждое утро!
Ещё раз спасибо!
Спасибо, приятно слышать! Рад, что статья понравилась)