Paper Summoners: Пост-мортем
Очень сложно подобрать слова чтобы описать историю этого проекта. У него была мега-сложная судьба, но я искренне рад тому, что из него в итоге получилось. Расскажу по порядку как все разрабатывалось, с картинками (и будет даже немного гифок).
Всё началось примерно через дней пять после анонса темы. Я пытался брейнштормить разные варианты, которые бы подходили под описание темы и условия, было безумно сложно придумать что-то под столь специфичный запрос: по сути вариантов было два — сделать переключение между двумя режимами или проигрывание двух режимов друг за другом последовательно. Первый вариант уже был мной сделан на Гаминатор 10 — это «Навеки Один?» которую мы делали с Кситилоном в далеком 2012 году (вот время течет, дичь!). Поэтому в основном я был сфокусирован на втором варианте — сделать последовательное прохождение двух разных кусков геймплея.
Идея сделать карточную игру была у меня давно — я огромный фанат и энтузиаст жанра, но руки никогда не доходили до того, чтобы сделать что-то свое, хотя я много целенаправленно изучал тему дизайна именно карточных игр.
Первая попытка сделать цифровую card-based игру у меня была в 2019 году — это был спин-офф к игре Xitilon.HD408 W4RR-i/o-RS — W4RR-i/o-RS: Descent. Карточной её можно назвать довольно условно, но в итоге игра концептуально во многих моментах схожа с Paper Summoners, особенно в роуглайк составляющей. С другой стороны, механика и сложность программирования двух проектов находятся на принципиально разном уровне. В моей W4RR-i/o-RS палки в колеса вставлял выбранный движок (вернее отсутствие такового, игра написана на голом Паскале) — многие вещи вроде оконного интерфейса или примитивных эффектов нужно было писать с нуля руками, и на это ушла уйма времени.
С другой стороны, в Paper Summoners большая часть времени разработки ушла на разработку механики и ИИ. Пожалуй, это самый сложный ИИ который я когда-либо писал в игре (про ИИ будет дальше).
В общем, идея сделать полноценную карточную игру назрела, и назрела серьезно. Основная идея, которая появилась к тому моменту — игра про офисных работников, которые условной «ночью» превращаются в средневековых фентези-героев вроде герцогов, купцов, рыцарей и волшебников (в зависимости от класса). Например, всё связанное с айти относилось к классу волшебников, связанное с финансами относилось к королевскому двору, HR были буквально охотниками за головами. Это всё было прикольно и вдохновляюще, и я сел кодить игру под кодовым названием Magic Bookkeepers.
Я сделал отрисовку карточки, размеры на экране, заглушку под иллюстрацию. Потом подумал, что слишком долго выходит кодить игру с такими комплексными механиками, у которой даже не было ни одного плейтеста!
Вот такие карточки я сделал в фотошопе, открыл Tabletop Simulator, и стал тестить…
(смешной кот на рубашке, потому что меня заставили выбрать картинку и я взял первую попавшуюся)
Мда. Сказать что получилась какая-то лажа — ничего не сказать. Механики явно были интереснее в моей голове, чем в реальности. Но основная проблема, из-за которой посыпалось вообще всё — было абсолютно невозможно держать в голове обе стороны карты пока играешь. А ведь они обе имеют принципиальное влияние на геймплей! В общем всё было чрезмерно сложно, и пазлы не сходились воедино. А как всё хорошо начиналось!
Было решено пока положить эту идею обратно, дальше «мариноваться» в моей голове; дальнейшее развитие появилось только где-то через неделю. Интересным образом в моей голове офисные работники и рыцари объединились воедино и стали фентези-персонажами, основанными на канцелярских товарах. А для чего нужны канцтовары? Правильно, для манипуляций с бумагой! Соответственно появилось бумажное поле, на котором эти карты проводят свои манипуляции. Изначально планировалось, что его можно будет красить, разрезать, склеивать обратно, стирать, закреплять кнопками, протыкать, в общем, делать всё то, что обычно делают с бумагой. Что из этого осталось? Правильно, почти ничего! XD Ну, осталось самое главное — раскрашивание поля. Почему так получилось? Наверное, потому что во время брейншторма разных предметов и их способностей больше всего среди них было тех, которые красят бумагу. Было решено, что это и станет основной механикой.
(художник из меня конечно м-да, но рыцарь и бард в финальной версии остались, как вы могли заметить)
19 апреля я впервые сел за проект, начал со спрайтов. Поделился с LLLoyd, он сказал что это всё фигня и предложил нарисовать концепты. В процессе выяснения деталей он предложил вообще нарисовать полноценные арты для игры. В этот же день я получил скетчи всех персонажей и утвердил их. Под конец проекта с графикой присоединилась помогать моя подруга MadSpacePants — бумажка и спрайты блобов на поле это её рук дело (в конкурсную заявку я её не стал добавлять, так как на гамине её пока нет).
Кстати, арты в игре ещё не готовы полностью — хоть серая подложка выглядит и стильно, планируется что в финальной игре все картинки будут в цвете. Ждите релиз полной версии!
Один из первых скриншотов игры тестовой графикой. Обратите внимание на немного отличающиеся цвета.
Разработка началась где-то 22 числа с простых механик вроде рисования поля и быстро обросла разными деталями и фичами. Началось всё с разработки схемы управления — было решено сделать всё изначально основываясь на кнопках и двухмерной матрице выделения элементов (сетке). В итоге это решение немного выстрелило в ногу в части удобства, так как под конец стало понятно, что выбирать мышью поля удобней и поспешно написаны костыли которые поженили бы две системы ввода. Получилось в целом сносно, но разные приколы со скачущим выделением от этого можно наблюдать (координаты выделения вычисляются отдельно от логики перемещения самой рамки-курсора и не всегда совпадают из-за дублирующего отрисовку кода). Из-за невозможности совместить ввод на кнопках и указание мышью по полю (оно должно работать даже когда курсор вне поля, а значит захватывает весь экран) в итоге отдельно кнопки работают только если отключить ввод с мыши.
На первых порах разработка шла довольно бодро и было добавлено много фичей и карт, но потом всё воткнулось в основной источник всей головной боли на проекте — ИИ. Искусственный интеллект разрабатывался в три итерации.
Сначала разрабатывалась самая простая версия интеллекта, условно я назвал её «Дурак», потому что она играет банально от своего угла и вообще не смотрит на то, как оптимально она ходит. Вторую вариацию этого ИИ я обозвал «Жадиной» потому что он научился ходить в зависимости от суммы закрашенных полей. Третья версия, названная уже просто «Продвинутой» уже очень шарила за то как надо ходить и старалась сначала занимать свободные поля, отказывая игроку в пространстве для маневра. Этой версии при прочих равных я уже начал регулярно проигрывать, что вызвало мой неподдельный интерес! Наконец-то, достойный противник! Наша схватка будет легендарной! В итоге в игре на разных этапах можно встретить разные версии интеллекта, в зависимости от того, как далеко зайти.
Сложный алгоритм действия, кстати, не только у оппонентов, но и у чувачков из краски во время битвы. Они там ходят и выбирают путь по-разному, в итоге я, кстати, воспользовался встроенной функцией поиска пути в сетке от GMS2, храни господь тех, кто это придумал, потому что это сэкономило тонну времени.
(так выглядели чернильные слаймы оппонента в первой версии, спрайт тут еще чужой)
Вообще вся неделя с 23 по 30 напоминала один сплошной сон при температуре 39 с тем исключением, что я был в добром здравии и здравом уме, разве что программировал по 12 часов в день и спал по 6. Я жестко вкалывал каждый день, зная сколько фичей в игре ещё запланировано для минимальной играбельности и не готово. В общем, планы были наполеоновские. Удивительно, что из всего этого пришлось урезать буквально пару фич. В основном была вырезана фича под названием «экипировка» — это карты которые можно было надевать на обычные карты воинов и которые модифицировали бы их навык. Фича была урезана из-за проблем с отсутствием пространства для дизайна разных модификаторов способностей, и в итоге полностью заменена на карты поддержки (которые было проще задизайнить, а главное — закодить; хотя проблемы с дизайном и у них всё равно наблюдаются).
Не смотря на все сложности и отсутствие времени получилось добавить много деталей, анимаций и прикольных штук. Во-первых, потому что меня убивала статичность поля карточной игры (мне кажется это один из самых сложных жанров с точки зрения сочетания красивостей и их программируемости), хотя с самим полем в итоге мало чего получилось сделать. Во-вторых, потому что что-то получалось быстро и успешно сделать малыми усилиями.
Например, я придумал как встраивать нелинейную интерполяцию на самые топорные движения и жизнь заиграла новыми красками. Еще я научился работать с такими новыми для меня штуками в GMS2 как слои эффектов и особенно секвенции. Секвенции — это прекрасный инструмент для редактирования встроенных анимаций с ЧУДОВИЩНЫМ и неюзабельным API. Даже какой-нибудь API вершин, матриц или партиклов кажется райским уголком в GMS2 на этом фоне.
Вообще, очень сильно помогали все те фичи GMS2 которые я освоил ещё во времена разработки Happy Birthday! — структы, функции и методы, упрощенное объявление массивов. Хотя 90% кода в игре сфокусированы на работе с DS_Grid, который вроде и стар как мир, но всё ещё удобен из-за простой возможности искать в них что-либо, умножать и складывать их как матрицы, в общем всё это было чрезмерно полезно и ускоряло/упрощало разработку.
Кстати, ещё немного вспомнил как работать с 3D и замоделил пенал в Blender, а затем вставил его в игру. Самое сложное было анимировать этот чертов бегунок молнии, часа три я на это точно убил. А раскрытие самого пенала никак не получилось бы нормально сделать — со скелетной анимацией не дружит ни GMS2, ни я XD
(пенал делает свои первые шажочки!)
В итоге последние фичи допиливались за часы и минуты до дедлайна, но в целом всё вроде бы успелось. Правда в результате некоторые из них толком не успел протестить и вылезла куча багов и проблем с балансом из-за столь поздних правок.
Ах да, и музыка. Тут всё было довольно просто — нашел один стиль и написал в нем пару треков + вариацию одного из них. Треки написаны в Caustic 3 (сайт у них умер, так что вот ссылка на плей маркет), но это не особо важно, так как кроме пары саундфонтов и эффектов в композиции ничего не используется, подошёл бы абсолютно любой DAW.
- 01 мая 2023, 18:52
- 013
В качестве бонусного материала вот вам yassified версия рыцаря, потому что LLLoyd сначала подумал что это женщина из-за большого нагрудника:
И еще один бонусный материал от Кситилона, которому не понравился мой интерфейс:
Жду версию\скин-пак как под спойлером!
Круто, но по 12ч фигачить не здорово.
Обязательно поиграю
Бумажная франшиза confirmed
А что можешь прикольного постоветовать кроме slay of the spire, dream quest, card quest, monster train, marvel midnight suns, roguebook, dicey dungeons, fights in tight spaces, luck be a landlord, backpack hero, modcap mosaic, the monster within и griftlands?
Хммм. Я вообще больше по бумажным ККИ, конечно, но парочку цифровых могу посоветовать. Из моих любимых, наверное, это Спектромансер из детства, который вообще познакомил с ККИ (в разработке, кстати, участвовал сам Ричард Гарфилд, отец жанра). Card City Nights от Ludocity одна из любимых тоже (особенно если знать отсылки на проекты Даниэля Ремара), есть еще вторая часть. Говорят что Cultist Simulator хорошая, хотя я сам не играл. Marvel Snap еще из последнего выходила, и мне её прям нахваливали, но я тоже не стал играть, т.к. не фанат вселенной (ну и f2p модель, она иногда кусается по цене и гринду).
Ставишь mtg arena (мне не нравится, но она хотя бы юзерфрендли и с современной экономикой) и забываешь о любых других кки ;)
кстати, странно, что про inscryption не вспомнили/не слышали
Нуууу экономику MTGA тоже активно критикуют, на самом деле. По сравнению с тем же MTG Online где карты можно менять с другими игроками или за эквивалент реальных денег - это пшик. Да даже вместо системы крафта как во многих других ККИ там случайно выпадающие "джокеры", которые можно менять на карты соответствующей редкости. Получить кроме как из паков их нельзя. Я лично страдаю в MTG от системы ресурсов (мана/земли), это самая слабая сторона игры. В остальном MTG, конечно, крутая.
Я вообще больше фанат ККИ японского образца типа Yu-Gi-Oh! - у них около года назад вышел новый отличный клиент под названием Master Duel (и там есть крафт, вау :D)
Все так, но советовать новичку мтго - это было бы прям сильно. Поэтому я и предложил мтга. Джокеры там копятся в сундуке от вскрытия, помимо рандомного выпадения. И можно купить прям набор джокеров сейчас, но по цене, вроде бы, не очень выгодно получается.
Сам я, когда возвращаюсь, то играю в мтго, ну или чаще в бумаге. Потратил на мтг уже лет 15, другие кки как-то меньше заходят. :)
В бумаге еще играл в покемонов, и в берсерк герои (это типа хс в бумаге), но у нас в городе и то, и другое довольно быстро загнулось, а онлайн как-то мало интереса играть.
Сколько-сколько?! Ну не, я не настолько давно знаком с игрой, лет 8 всего. В "Берсерк: Герои" пробовал тоже, но не особо зашло. Покемоны в целом исправили проблему MTG с ресурсами с помощью бешеной прокрутки, поиска в колоде и не только, там другого плана ограничения. Получилось интереснее, на мой взгляд, хотя дизайнили игру практически те же люди что и MTG.
Я в этом плане зумер, меня не особо тянет именно на навороченные кки, скорее на роглайт декбилдеры, которые стали популярными после slay of the spire / dream quest
Хорошая игра, но в моей голове она больше сюжетная, хоть и притворяется сначала декбилдером.
Ещё не заценил, но по описанию закрашивание поля напомнило https://store.steampowered.com/app/1240050/Pendragon/
Это интересно, разве что у меня герои сами по полю не гуляют :D