Autobattler. Обновление 0.6.10 - исправления ошибок и новый пайплайн сборки билдов
Исправления в Web билде:
Исправил ошибку с разрешением, отключил изменение в настройках
Исправил ошибки, связанные с локализацией: иногда тексты русском не отображались
Исправил падение при выходе из боя
Добавил тултип, при нажантии на заблокированную кнопку Хост в мультиплеере
Немного улучшил производительность
Общие исправления:
Исправил ошибку, из-за которой на локации "Спорный остров" у синей команды создавались лишние постройки
Добавил звуковые уведомления на экране лобби. Теперь можно услышать, когда кто-то подключился или отключился
Небольшие исправления в интерфейсе в сражении
Немного уменьшил размер билда
Игра доступна по ссылкам:
Новый пайплайн сборки
При выпуске этого обновления сборка билдов отнимала очень много времени. Процесс выглядел так:
Написать код и/или обновить ассеты;
Сделать билд на Windows (ожидание 5-10 минут) и протестировать
Переключить платформу на Web (ожидание 10-20 минут)
Собрать под Web (ожидание 20-30 минут) и протестировать.
Если что-то идет не так, то алгоритм нужно повторять. Учитывая, что некоторые ошибки повторялись только в релизной сборке под Web, в ожидании я проводил слишком много времени. Ведь при переключении платформы в Unity происходит не только реимпорт ассетов, но и сброс кэша сборки.
Я понял, что так работать нельзя и решил оптимизировать сборку билдов. У меня есть домашний сервер, но использовать его под агента сборки я не могу, так как на нем очень маленький SSD. Поэтому пришлось организовать на своей рабочей машине.
Мой план был такой:
Создать второй клон репозитория только под Web сборку. Тогда как основной клон - под Windows. Так исключается переключение между платформами.
Написать набор скриптов, которые запускают сборки без запуска визуальной части редактора Unity.
Скрипты также должны:
Актуализировать клон для Web сборки
Запускать тесты перед сборкой
Вырезать из проекта пакеты и плагины, которые используются только в редакторе, но по какой-то причине лезут в билд
Инкрементировать версию патча в проекте и начинать с нуля при инкременте мажорной или минорной версии
Выполнять сборку и архивировать ее в zip
Возвращать вырезанное
Коммитить изменение версии проекта
Работаю я под Windows, поэтому я решил создавать скрипты под PowerShell, к тому же у меня уже был небольшой опыт написания таких скриптов. В качестве формата для конфигурации я выбрал XML, так как он поддерживается PowerShell из коробки. Для YAML пришлось бы устанавливать дополнительный модуль.
Разумеется, писать самостоятельно такие скрипты - расточительство, поэтому я попросил написать их Claude. После нескольких итераций получилось реализовать мою задумку.
Я остался доволен результатом: расход времени на простой из-за смены платформы и билда без кэша сильно снизился (правда, замерить слишком трудозатратно). Но все еще не идеально: так как во время сборки я не могу открывать редактор. В будущем, если проект разрастется, можно будет думать о полноценном CI/CD с отдельными билд агентами.
Следующим шагом хочу автоматизировать заливку билдов на платформы. И попробовать заменить клон репозитория для Web проекта на симлинки: сделать ссылки на папки Assets, Packages, ProjectSettings и некоторые другие, которые нужны для нормальной работы проекта Unity. Так я ожидаю исключить шаг с актуализацией клона.
Спасибо за то, что прочитали! Как бы вы улучшили процесс сборки? Как он организован у вас на проекте?
Присоединяйтесь к Discord серверу проекта. Там я публикую скриншоты, заметки по ходу разработки. Также там можно задавать вопросы и предлагать идеи.















































