To Use or Not To Use: ассеты при разработке на Unity
Готовые решения, которые мы взяли на вооружение или обошли стороной при разработке Swag and Sorcery — 2D-игры в стиле пиксель-арт.
Небольшая и очень молодая команда разработчиков неизбежно сталкивается с кучей проблем на начальном этапе: какие выбрать инструменты для конкретных задач, насколько они будут эффективны, стоят ли они своих денег? Этот этап не миновал и Uroboros Games. Набив не одну шишку за два года работы над игрой, мы решили поделиться с вами опытом. В данной статье мы расскажем, какие ассеты мы использовали в разработке, чем они нам понравились, а в чём разочаровали.
Animation Importer
Скачать ассет (бесплатно)
Как ни удивительно, Animation Importer — это ассет для импорта анимаций из Aseprite (приложения для создания 2D-анимации, спрайтов и любого другого типа графики для игр). Сам собирает спрайты в один атлас, нарезает их, собирает анимации, создаёт контроллер — или же может создать и заполнить оверрайд-контроллер на основе заданного контроллера.
Плюсы:
- Есть разные паттерны для генерации имён, настройка спрайтов (pixel per unit, Pivot);
- Открытый исходный код позволяет настроить перечисленные опции под себя или же дописать новые.
Минусы:
- Импорт только из Aseprite или PyxelEdit;
- Доступен только в виде репозитория на Github.
Master Audio
Скачать ассет (40$)
Использование и настройка звуков. Плейлисты, ducking, триггер звуковых эффектов и куча дополнительных полезных настроек, работает из коробки. По прошествии времени трудно даже вспомнить, есть ли у этого ассета открытый исходный код, потому что потребности что-то менять вне эдитора не возникало.
Плюсы:
- Работает из коробки;
- Встроенная рандомизация звуков: громкость, питч, задержка или даже альтернативные варианты звука;
- Возможность прослушать результат прямо в эдиторе;
- Разные способы загрузки звуков: как через прямое указание ссылки, так и динамически в рантайме по указанному пути.
Минусы:
- При большом количестве используемых аудиофайлов эдитор начинает тормозить.
Дополнительные настройки звуков выглядят так:
Bugsplat
Скачать ассет (бесплатно; есть платные тарифы)
Позволяет отправлять отчёты об ошибках, к которым прикладывается скриншот и лог с момента краша. Очень полезен на закрытых тестах, когда есть возможность оперативно отловить ошибку и разослать исправленную версию.
Плюсы:
- Встроенная кастомизируемая форма для отправки данных о краше;
- Фильтры по ошибке, версии игры, IP-адресу;
- Возможность писать комментарии к полученным отчётам об ошибках.
Минусы:
- В логе содержится только стек вызовов, полноценный лог Unity недоступен.
Google Sheets For Unity 2.0
Скачать ассет (19.99$)
Позволяет загружать данные из Google-таблиц и обратно. Мы хранили в таблицах балансные значения вроде параметров монстров, персонажей, выпадения ресурсов с локаций. У такого подхода есть свои достоинства и недостатки.
Плюсы:
- Для работы с балансом нужен только браузер;
- Возможность менять балансные значения и заново загружать их, не пересобирая билды;
- Возможность хранить альтернативные варианты баланса в отдельных таблицах и переключаться между ними.
Минусы:
- Проблематично поддерживать целостность ссылок внутри таблицы;
- Любая автоматизация внутри таблицы требует написания кода на Google Apps Script.
Editor Console Pro
Скачать ассет (30$)
Отображение стектрейса (последовательности вызванных методов вплоть до ошибки/исключения/сообщения для отладки) реализовано гораздо удобнее, чем в стандартной консоли, что и является основным преимуществом этого решения. Поиск по логам с регулярными выражениями — тоже довольно удобная фича.
Плюсы:
- Возможность поиска по логу, фильтрация логов;
- Поддержка регулярных выражений в поиске/фильтре;
- В стектрейсе отображаются ближайшие фрагменты кода.
Минусы:
- Не нашли.
Steamworks.NET
Скачать ассет (бесплатно)
Нативные C++ заголовки/исходники несовместимы с Unity, так что нужно использовать библиотеку-обёртку, позволяющую интегрировать функции SDK. Этой обёрткой и является Steamworks.NET.
С момента установки и до получения первого достижения в игре прошло не более десяти минут. Можно тестировать прямо из эдитора Unity, что тоже может оказаться полезным.
Плюсы:
- Работает из коробки;
- Не требует сложной настройки;
- Простое взаимодействие.
Минусы:
- При подключении к эдитору оверлей Steam иногда начинал всплывать поверх Visual Studio, из-за чего пришлось его отключить в эдиторе.
FlowCanvas
Скачать ассет (70$)
Визуальное программирование. Ассет использовался при сборке катсцен. Открытый исходный код, нативная возможность добавлять собственные ноды — в общем, мы остались довольны (насколько можно быть довольным длительным и рутинным процессом сборки сцены на несколько минут).
Плюсы:
- Довольно просто создаются ноды с нужным поведением;
- В ноды можно передавать как префабы, так и объекты со сцены или же внутренние переменные;
- Программирование нужно только при написании собственных нод, дальше достаточно только наличия логики и здравого смысла.
Минусы:
- Будьте готовы отдать за это 70 долларов.
NGUI: Next-Gen UI
Скачать ассет (95$)
UI и всё, что к нему относится. Основывается не на uGUI (нативный UI Unity), а на своей собственной реализации кнопок, спрайтов, лейблов и т.д. С точки зрения кода работать с ним довольно приятно, есть ряд фичей специально для пиксель-арта — в том числе настройка камеры для pixel-perfect интерфейса. Довольно живое комьюнити, так что на большую часть возникших вопросов быстро находились готовые ответы.
Сейчас мы обратили внимание на DoozyUI: интересно, насколько применимым окажется их визуальное программирование интерфейсов — действительно это упростит разработку или же не принесёт никакой практической пользы.
Плюсы:
- Помимо стандартных кнопок и слайдеров есть встроенная реализация сетки элементов;
- Поддержка пиксель-арта;
- Готовая база для реализации Drag-and-drop.
Минусы:
- Основывается не на uGUI;
- Стоимость.
Ассеты, с которыми нам оказалось не по пути
Без обид, это просто картинка!
AVPro Video
Скачать ассет (150-450$)
Около года назад у нас появилась необходимость добавить в игру видео. На тот момент встроенный плеер Unity ещё дорабатывали, и его использование на мобильных платформах не рекомендовалось. Тогда мы и наткнулись на AVPro Video, который обещал работать на всех возможных платформах. Так что мы вооружились триальной версией этого ассета, в которой из заявленных ограничений был только вотермарк поверх видео.
После первого запуска видео в билде на телефоне в воздухе повис вопрос: то ли сани не едут, то ли мы их не вывозим. Картинка по какой-то загадочной причине сильно уходила в красный, что нас, естественно, не устраивало. Проведя немало времени за копанием в настройках, мы так и не обнаружили источник проблемы (быть может, плохо искали), так что было принято решение на свой страх и риск использовать дефолтный плеер Unity. Который, ко всеобщей радости, работал как положено и трудностей не вызывал.
Со встроенным плеером Unity была связана одна-единственная проблема за всё время работы: однажды нам пришёл репорт о том, что у игрока стабильно крашится игра после одного из первых квестов. Как оказалось, причиной было отсутствие на его устройстве Media Feature Pack for Windows — который как раз включает в себя медиаплеер.
Rainbow Folders
Скачать ассет (недоступен)
Вы когда-нибудь задумывались о выделении часто используемых папок проекта? Мы вот задумались, но толковых юзкейсов придумать не смогли. Быть может, это получится у вас?
Оказалось, что на момент написания статьи Rainbow Folders больше не поддерживается и считается устаревшим. Так что для актуального перекрашивания папок вам нужно будет купить его обновлённую версию — Rainbow Folders 2.
Ruler 2D: Align, Guides & Grid Extension
Скачать ассет (25 $)
Ассет для измерения расстояния между двумя точками. Планировалось использовать его для упрощения сборки окон интерфейсов, но в нём отсутствовала возможность просто выбрать два объекта и посмотреть расстояние между ними. Вместо этого нужно было вручную указать две точки на сцене (есть опция округления до целочисленных координат, что лишь немного облегчает задачу). Итог: нужно вручную зумить сцену на краю одного окна, искать, где оно заканчивается, кликнуть так, чтобы курсор "прилип" к нужному пикселю, отдалить камеру обратно и найти второе окно, после чего повторить операцию для второй точки.
Мы ценим своё душевное равновесие, поэтому обходимся математикой — и ручным подсчётом нужных координат.
A* Pathfinding Project Pro
Скачать ассет (100$)
Как следует из названия — поиск путей. Довольно сложный технически, подходит как для 2D, так и для 3D, с приятным редактором и инструментами для составления карт проходимости. Как раз из-за своей сложности был излишним для нашей задачи. К тому же, при движении только по тайлам в четырёх направлениях эвристический алгоритм почему-то вместо прямого пути вёл юнитов "лесенкой":
Но здесь сделаем оговорку: мы могли что-то упустить, или же с тех пор (а прошло около двух лет) это могли исправить.
В итоге использовался самописный поиск путей, а карту проходимости рисовали в тайл-эдиторе, что сейчас, с кастомными кистями и настройкой тайлов, сделать будет ещё проще. Но если нам понадобится комплексное решение, например, для обхода динамических препятствий, то мы воспользуемся A* Pathfinding Project Pro.
Напоследок мы бы хотели посоветовать не бояться выходить за рамки привычных, но, быть может, несколько устаревших решений: где-то в этом стремительно меняющемся мире вас может ждать тот самый инструмент, которого не хватало для полного девелоперского счастья.
А какими ассетами пользуетесь вы? Поделитесь в комментариях!