Было бы безумием пытаться написать ВСЮ игру своими силами, это просто невозможно в современном мире и/или неоправданно экономически. Как минимум, приходится использовать тот или иной игровой движок. Как максимум, можно взять всё готовое (или заказать) и сделать эдакий салат, без “секретных” (самописных) ингредиентов.
В RATOMON’е чужого труда предостаточно: это как непосредственные составляющие игры, то есть графика, звуки, музыка и игровой код, так и инструменты для работы над игрой. Причём часть инструментов живёт отдельно (Audacity, Aseprite, Krita, ProMotion NG и т.д.), а часть интегрирована с Unity и расширяет возможности движка. Вот об этих инструментах и пойдёт речь в данной заметке.
Итак, в текущем проекте я использовал:
Aseprite Animation Workflow - автоматически импортирует графику и анимации из асепрайтовских файлов в графику и анимации для Unity. Не нравится, что просмотреть текущий вид или сравнить в VCS с прошлой версией невозможно, без открытия редактора. Автоэкспорт в png решил бы эту проблему, но пока руки не дошли.
Обновление 2021.10.29: Руки дошли, плагин для автоэкспорта лежит на гитхабе.
Asset Usage Finder - для поиска мест, где используется тот или иной ассет. Скоро попробую альтернативу, т.к. этот довольно задумчивый.
Behavior Designer - редактор поведения врагов (и не только). Использую вместо встроенного AI из TopDown Engine. Периодически бесит неочевидным поведением переходов между ветками, из-за чего теряется куча времени на дебаг и переделку.
Damage Numbers Pro - показывает цифры над персонажем (повреждения, количество собранных монет и т.д.). Экономит кучу времени, минус один велосипед.
Databox - для хранения статических конфигов, настроек игры и сохранений. Всё отлично.
Обновление 2021.10.29: Есть нюанс с добавлением новых полей в сохранение, из-за чего игроки, получившие апдейт, могут словить NPE.
Dialogue System - подружить сходу с остальными ассетами оказалось нетривиально (DoozyUI, TopDown Engine, Rewired). Убрал из текущего проекта, попробую в следующем.
DoozyUI - меню и попапы через него сделал. На форуме описываются какие-то проблемы с ним, я пока не столкнулся. Ещё немного напрягает то, что автор больше года не обновлял его, хотя запросы на правки есть.
Обновление 2021.10.29: Разработчики обновили сразу до следующей мажорной версии.
DOTween - он и как зависимость для некоторых других ассетов идёт, и в паре мест непосредственно использую.
DunGen - отличный генератор уровней из готовых комнат. Из коробки умеет очень много, допилить под себя тоже возможно (необходимость в этом два раза возникла, оба раза легко оказалось, плюс оперативно ответил автор на форуме).
Обновление 2021.10.29: Подробная статья о DunGen
Extenject Dependency Injection IOC - система внедрения зависимостей и в целом организации проекта. Не срослось с ним. Начало было хорошее, но периодически возникали нетиповые задачи, решения для которых не гуглились. Плюс TopDown Engine своими средствами решает 99% доступность зависимостей. Убрал, но может вернусь для проектов без TDE.
I2 Localization - отличный ассет: интеграция с гугл-таблицами, автоматическое подхватывание языка. Немного бесит, когда I2L меняет язык, все текстовые поля меняют текст (что логично), и откатить смену языка получается не сразу (западает настройка или типа того). Бесит то, что в VCS эти изменения не нужны, а отображаются-отвлекают.
Krita Exporter - самописный велосипед, который из kra-файлов достаёт png и кладёт рядом. Получается более наглядно, чем Aseprite Animation Workflow. Для статичных картинок буду использовать только его (если не напишу когда-нибудь аналогичный экспортёр для пиксельартовых редакторов).
Обновление 2021.10.29: Для Aseprite экспортёр написал, критовский выложил на гитхаб.
Master Audio - отличный ассет, поддерживает группы звуков (чтобы, например, рандомно играть X вариантов выстрела) с настройкой громкости для каждого, вывод групп звуков и плейлистов (для музыки и эмбиента) на отдельные дорожки в микшере.
Odin - Inspector and Serializer - “маст-хев” ассет с отличной документацией, включая видео демонстрации и туториалы.
Peek - Editor Toolkit - часть функционала у меня не работает, что очень огорчает, а местами просто бесит. Но то, что работает, не даёт удалить его из проекта.
PlayerPrefs Editor - хороший, но больше не использую, всё перевёл на Databox.
Quick Search - поиск по ассетам. Если использовать префиксы для имён своих ассетов, то будет быстро и удобно.
Rewired - прекрасный способ снять кучу головной боли от обработки пользовательского ввода (клавиатура+мышь, контроллеры). Автоматическое подхватывание контроллера чего стоит.
ReIconed - хорошее дополнение к Rewired. С настройкой были проблемы (надо читать доки перед использованием), отношение автора к пользователям на грани хамства.
Обновление 2021.10.29: замучался настраивать отдельный “redefine keys” для клавиатуры и джойстика, пришлось закопаться в код и до сих пор не до конца решил эту проблему. К тому же мой noname-контроллер не поддерживается, и ReIconed показывает неправильную информацию.
Selection History - очень помогает с навигацией между ассетами, которые находятся далеко друг от друга в иерархии сцены или папок на диске.
Smart Lighting 2D - освещение работает быстро и красиво, но он столько боли принёс и продолжает приносить, что советовать могу с большими оговорками. В том числе иногда геймобжект теряется со сцены, перезаход в сцену помогает.
SRDebugger - чуть-чуть пользуюсь. Пока нужен, как минимум, для чтения ошибок в билде.
Steamworks V2 - интерграция с Steam.
TopDown Engine - движок в движке. На его основе делаю игру, постепенно заменяя одни модули и допиливая/расширяя другие. Очень хороший способ втянуться в процесс делания игры. Встречаются иногда “странные” вещи, но хорошо, что ничего критического. Недавно вышел переработанный вариант, может там их уже нет, ещё не смотрел.