об играх, разработке на Unity и личном опыте

Buffer icon Проекты
Позднее Ctrl + ↑

Рассылка #3

Мартовский выпуск рассылки доступен! Если вы подписаны, он ещё вчера должен был быть у вас в почте, проверяйте. Если нет — читайте веб-версию и подписывайтесь.

Выпуск получился достаточно разнообразный. Открыл для себя несколько новых сайтов, где можно найти интересные статьи и ресурсы, в рассылке все ссылки есть.

Game level building

Game level building

Читать выпуск №3 📩
Читать выпуск №2 📩
Читать выпуск №1 📩

→→ Подписаться ←←

Установка сразу на несколько Android устройств

При тестировании приложений часто приходится переустанавливать приложение, это очевидно. Когда я делал для себя мини CI\CD, то там уведомление с ссылкой на APK или IPA, приходило в телеграм. Это удобно, когда на девайсах уже всё настроено и есть доступ к телеге. Скачал и установил.

Но есть у меня и много девайсов на Android, которые периодически сбрасываются до заводских настроек. Каждый раз устанавливать и настраивать телеграм на каждом — как-то утомительно. Поэтому, я написал небольшой баш-скрипт который устанавливает/удаляет приложение сразу со всех подключенных андроид устройств. Было б нужное количество портов и проводов :)

Console APK install tool

Console APK install tool

Если необходимо, то эти функции можно добавить и в прошлый скрипт для CI\CD, если не нужно закачивать APK на сервер и отправлять уведомление.

Исходник на Github

Рассылка #2

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

Atomic Heart

Atomic Heart

Немного статистики.
Процент открытий чуть больше 50%, что странно :( Ребзи, вы же сами подписались на рассылку? Она выходит один раз в месяц! А вы не читаете... Грустно. Но зато те, кто читают, активно кликают по ссылкам.

В любом случае, процесс запущен, читатели добавляются, значит пока буду продолжать. Как говорится, мы работаем до последнего читателя :)

Читать выпуск №2 📩
Читать выпуск №1 📩

Подписаться

TabsView для Unity

Сегодня у нас раздел «Велосипедостроение» :)

Если DOTween в проекте не используется, можно его выпилить и сделать вручную, чтобы не тащить библиотеку.

Когда-то давно понадобилось сделать в UI горизонтальную прокрутку табами. В iOS есть такой стандартный элемент. В Android по-моему тоже. Для Unity как известно стандартные UI компоненты довольно скудны. Поэтому каждый придумывает себе, по мере надобности. Вот и получилось когда-то такое, довольно простое решение.

  • Управляется свайпами
  • Есть индикаторы состояния табов
  • Анимации можно делать любые, с помощью DOTween
  • На переключение таба можно повесить хук

Исходники на Github

 1 комментарий    171   7 мес   git   unity   разработка   с#

Релиз Unity 2019.3

Как известно, после релиза Unity, надо подождать пару месяцев, чтобы всё «устряслось» и вышло несколько багфисков :) Поэтому, рабочие проекты пока бы не советовал переводить на новую версию, но поиграться и посмотреть что добавили, стоит.

Пресеты

Пресеты позволяют кастомизировать любую сущность в Unity и потом использовать её с уже настроенными свойствами. Например, вам нужно создать несколько разных объектов/префабов с компонентом Rigidbody, для которых вы каждый раз будете настраивать массу и ещё какие-то свойства. Теперь можно сохранить Rigidbody в пресет и использовать. Работает drag-and-drop и есть API.

Unity presets feature

Unity presets feature

Сторонние материалы

Теперь можно использовать материалы сделанные в других программах. Пока поддерживаются: Autodesk Arnold Standard Surface shader, Autodesk 3ds Max physical material и Autodesk Interactive shader. Но в будущем список скорее всего будет расширен.

Работа с 2D

Куча обновлений для работы с 2D проектами:

Про Data-Oriented Technology Stack (DOTS) ничего не пишу, потому что он мне пока не интересен, но там тоже много нового и в итоге, Unity всё переведёт на него и откажется от старой идеологии.

  • 2D PSD Importer — позволяет импортировать файлы Photoshop сразу в Unity, сохраняя информацию о спрайтах и слоях, что особенно актуально если вы будет использовать пакет 2D Animation.
  • 2D Animation — предоставляет все инструменты для создания скелетной анимации прямо в Sprite Editor (создание костей, риг, и т. д.)
  • 2D Tilemap Editor — позволяет быстро создавать квардратные, шестиугольные (hex) и изометрические тайлмапы.
  • 2D Sprite Shape — поможет создавать красивые 2D-ландшафты и объекты с помощью кривых.
  • 2D Pixel Perfect — гарантирует, что ваша пиксельная графика останется чёткой и стабильной в движении при различных разрешениях, а Cinemachine теперь включает расширение виртуальной камеры Pixel Perfect для улучшения совместимости с пакетом.
  • 2D Lights и 2D Shadows — включены в Universal Render Pipeline, как чaсть 2D Renderer.

Как результат, юнитеки сделали специальный демо проект, который показывает все эти возможности.

2D spline

2D spline

Штуки для программеров

  • SerializeReference — новый атрибут позволяет сериализовать классы C# как ссылки, а не как типы значений.
  • Обновили физический движок с v3.4 до v4.1 — улучшенный MeshCollider и Cloth.
  • Настраиваемый Play Mode — сейчас перед запуском, скрипты и сцена перезагружаются, что может отнимать время, если скриптов много, а сцена «тяжелая». Теперь, можно настроить Play Mode так, чтобы сцена или скрипты не перезагружались, если они например не менялись. Это позволит сэкономить 50-90% времени, как пишут.
  • Улучшили профайлер — теперь можно настраивать отображаемое количество фреймов. А ещё, теперь можно смотреть стек вызовов которые выделяют память. Это классно, можно найти критичные места.

Profile allocation manager

Profile allocation manager

Редактор

  • Новый Editor UI — всё плоское, иконки, шрифты, производительность, поддержка высоких разрешений.
  • Быстрый поиск — Alt + ’ для поиска по файлам, префабам, настройкам и объектам на сцене.
  • UIElements и UI Builder — новая концепция построения интерфейсов, я бы не торопился её использовать, пока нет отзывов о багах и производительности новой системы. Но я думаю, что там всё грустно.

Остальное

Trello для gamedev

Trello — удивительный сервис, при всей свой простоте, в нём можно вести практически любые процессы, например, процесс разработки игры.

Trello board kanban gamedev

Trello board kanban gamedev

У меня есть как рабочие доски, так и личные, где я веду проект в одного, как например доска на превью. Это достаточная простая доска: есть бэклог, куда скидываю все подряд, задачи, мысли, какие-то замечания, ссылки, баги и т. д. Ну а дальше, карточка начинает свой путь по столбцам: to do, doing (progress), need test, done (complete), future, canceled. Для меня стал удобен такой набор столбцов, но это всё индивидуально.

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

Trello plugins

Trello plugins

Также, к каждой доске можно подключить дополнительные сервисы для автоматизации, аналитики и прочее. Я пользовался такими расширениями:

  • Сountdown
  • Voting
  • Board Export

И всё это бесплатно. Платные расширения конечно есть, как и «Gold» тариф, который снимает некоторые ограничения и добавляет расширенные функции автоматизации.

Что ещё можно попробовать для управления процессом разработки?

https://hacknplan.com
Заточенный именно под gamedev сервис: канбан доски, ведение ГД и прочее.

https://basecamp.com
Стал бесплатным для персонального использования.

https://asana.com
Старый, но годный сервис от чувака из Фейсбука.

https://notion.so
Уже писал про него. Не смог туда перелезть в итоге :( Хотя внешне нравится.

https://www.openproject.org
Упомянул про этот сервис в рассылке. Попробую поставить на свой сервер и посмотреть, как оно работает.

Первый выпуск рассылки

Mopsicus Unity Newsletter

Mopsicus Unity Newsletter

Я сделяль :) 🎉🎉🎉

После объявления, что будет рассылка по Unity, набралось несколько десятков подписчиков, кто-то даже в телеграмм спросил, когда будет. Так что, решение было одно — делать и выпускать!

Вообще, интересный опыт, буду продолжать. В первом выпуске было около 20 мини-заметок с комментами. Если кому-то не дошла, проверьте папку «Спам», может туда случайно попала. После выпуска буду через несколько дней выкладывать в блог ссылку, ну а подписчики естественно могут прочитать первыми.

Жду обратную связь на mail@mopsicus.ru или сюда в комментарии. Второй выпуск уже готовится...

Читать первый выпуск 📩

Pocket

Pocket logo

Pocket logo

Пользуюсь Pocket уже несколько лет. Это просто, это удобно, это стало необходимо. Потому что в текущем потоке информации, успеть прочитать всё нужное и интересное — невозможно. Pocket, как приложение для закладок и чтения — самое то.

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

Лента турбо-страниц

Yandex Turbo pages

Yandex Turbo pages

Мой предыдущий опыт с турбо-страницами провалился :)
Я совсем забыл, что стандартная RSS лента Эгеи выдаёт только последние несколько постов. Поэтому, в поиске всегда появлялись свежие записи, а старые пропадали.

Есть ограничение в 1000 записей от одного источника. Мне это не грозит, но у кого большой блог, надо сделать несколько.

В общем, сделал скрипт по аналогии, как когда-то для карты сайта, который генерирует все записи в соответсвии с разметкой от Яндекса.

Единственный момент интересный, валидатор Яндекса всё время ругался, что тексты не размечены по параграфам. Поэтому добавил такую манипуляцию, которая заменяет конец строки и оборачивает в тег параграфа.

$body = nl2br($body, false);
$body = '<p>' . preg_replace('#(<br>[\r\n\s]+){2}#', "</p>\n\n<p>", $body) . '</p>';

Теперь все записи в поиске без ошибок и оттуда даже пошёл трафик.

Свой CI/CD для Unity

Mopsicus CI/CD bash script

Mopsicus CI/CD bash script

Написал небольшую статью на Хабр про скрипт который получился в результате автоматизации сборки Unity проектов под Android и iOS. Раньше большинство операций делалось вручную, теперь всё сведено к минимуму.

Один запуск скрипта и:

  • скачиваются последние изменения с GIT
  • запускаются тесты
  • собирается APK для Android, в develop или release
  • собирается для iOS Xcode проект, в develop или release
  • компилируется
  • архивируется и экспортируется в IPA
  • генерируется манифест для него
  • генерируются HTML страницы для установки
  • всё это загружается на сервер с помощью sshpass
  • все логи записываются в отдельную папку
  • отсылается уведомление в Телеграмм, что всё готово

Вот такая интеграция и доставка :)

Исходники на Github

Ранее Ctrl + ↓