Dwarfinator - Блог

Dwarfinator

Лесной Вильфред

Мысль постепенно переодевать главного героя по мере продвижения по сюжету была у меня уже давно, но оставалась скорее в разделе "было бы прикольно". Извлечь её на свет и реализовать меня заставила недавно написанная катсцена победы над Костоломом, в которой Вильфреду понадобился топор. Ну а если дать гному топор, он попросит и какой-нибудь брони. Так что во второй половине лесной локации Вильфред станет немного защищённее и опаснее даже без танка. Ну и заодно я немного обновил его основной облик - никаких кардинальных изменений, просто добавил чуть-чуть объёма. В целом это не помешало бы и ряду других персонажей и мобов, но дойдёт ли до них очередь - пока неизвестно. А вот Вильфреду, как главному герою, да к тому же, нарисованному аж 5 лет назад только-только взявшим перо от дешёвого маленького планшета мной, это явно было необходимо.

Сопляк

А у меня тут ещё один второстепенный персонаж - встречайте, Сопляк. Костоломов сын, так некстати оставленный нашим бравым гномом без батьки. Не найдя для себя лучшего применения после этой трагедии, Сопляк отправляется таскать на рынок Казимира валуны да брёвна, зарабатывая себе на покушать. Геймплейно его смысл на рынке - продавать камень и дерево по низким ценам, но крупными неделимыми партиями - 1 деревяшку у него купить не выйдет, только всё бревно целиком.

Соотношения сторон катсцен

И последний момент, касающийся разных соотношений сторон - катсцены. Ввиду двухмерности игрового пространства (а точнее, фиксированного направления камеры относительно него), просто расширять/сужать кадр было недостаточно. Оставался ещё простой вариант с чёрными полосами и фиксированного размера кадром, но это было бы слишком скучно. Поэтому я добавил в команды перемещения и телепортации актёров возможность привязки целевого положения к камере, да не фиксировано, а по якорю, позаимствовав идею последнего у RectTransform Unity. Таким образом, я получил возможность отправить актёра, к примеру, "в левый верхний угол экрана", "за правую границу" или "чуть правее и ниже центра", и адаптировал с её помощью существующие катсцены под любую ширину экрана - в качестве примера привожу скрины катсцены победы над циклопом с целой пачкой гоблинш разной степени мёртвости.

Соотношения сторон

Ну и следом за интерфейсом окна прогресса, к разным соотношениям сторон были адаптированы остальные элементы интерфейса и сам геймплей. Тут стоит остановиться поподробнее - изначальная концепция игры подразумевала фиксированное положение камеры, то есть поле боя занимало ровно столько, сколько вмещал в себя экран. И если все мобы спаунятся за правой его границей, то при соотношении сторон 4:3 до базы игрока им идти гораздо меньше, чем при 16:9. Во времена первого прототипа я компенсировал этот момент подстройкой скорости их перемещения, чтобы время достижения базы оставалось одинаковым в любом варианте.

Однако с реальной графикой оказалось, что при более "квадратных" соотношениях сторон база начинает занимать почти половину экрана, и разница в расстоянии от её края до границы экрана между самым узким и самым широким соотношением сторон достигает 4 раз! Простой подстройкой скорости такое не компенсировать. Так что теперь поле боя имеет фиксированный размер - под 21:9, а в более узких соотношениях сторон отображается только его часть, с возможностью перемещения камеры к его границам. Способов управления этим перемещением я изобрёл аж три с половиной, какой из них лучше - покажет только время и игроки, а пока что они переключаются из настроек.

Обновлённые вкладки

Ввиду последних изменений в интерфейсе окна прогресса, мне пришлось немного повозиться со всеми уже существующими вкладками. Заодно и добавил им, наконец, адаптивность, так что теперь они подстраиваются под любое соотношение сторон от 5:4 до 21:9. Ну и по мелочи, поправил косяк там, добавил мелкую фичу здесь - к примеру, превью танка в окне экипировки теперь можно приближать и перемещать, а деревья чертежей и навыков при открытии отображают не левый верхний угол, а центр.

Экран карты

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

Навыки атаки

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

Карта

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

Надписи

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

Навыки знаний

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

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