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

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

Medium

Medium logo

Medium logo

Medium logo

Решил по-переводить некоторые свои посты в Медиум. Проверить канал, так сказать :) Ну и заодно попрактиковаться в английском. Первый блин.

Мне частенько пишут иностранцы, но в основном это с гитхаба, как я понял. А блог то на великом и могучем, поэтому появились мысли, чтобы постить туда, на их площадку. Посмотрим, что из этого выйдет.

Если у кого-то есть опыт, отпишите в комменты.

Unity 2020 Roadmap. Обзор.

Unity выпустила новую презентацию для 2020 версии. Вроде как собираются делать работу над ошибками, поглядим. Перезагрузил презу к себе, потому что SlideShare заблокирован в России, могут возникнуть проблемы и выбрал самые интересные моменты для вас.

Кстати, весь roadmap доступен по адресу https://unity3d.com/ru/unity/roadmap

И так что же нас ожидает в Unity:

  • Версия 2019.4 будет LTS.
  • Начиная с 2020 версии будет по 3 релиза в год (2020.3 будет LTS, 2021.3 — тоже).
  • Всё будет переводится на DOTS рельсы (сеть, анимация, физика), процесс уже давно запущен.
  • Унифицированный менеджер ассетов, с поиском, фильтрами и прочее, с возможностью подгружать библиотеки и ассеты из собственных npm репов.

Unity assets manager

Unity assets manager

Unity assets manager
  • Обновление и улучшения профайлеров: Profile, Frame Debugger, Physics Debugger, UIElements Debugger, IMGUI.. Профайлер можно запустить, как отдельный процесс. Если вы используете Job System, то с 2020.1 сможете увидеть что происходит внутри с помощью нового инструмента. Документацию вроде тоже обновили.

Updated Unity profiler

Updated Unity profiler

Updated Unity profiler
  • Про инструменты для 2D уже писал, это уже доступно. В версии 2020 всё это обещают причесать и пофиксить баги.
  • К Burst Compiler добавятся новые инструменты дебага. Используя встроенный отладчик, подключенный к Unity, можно будет проверять стеки вызовов, переменные, потоки, ставить точки останова и прочее.
  • Возможно к LTS версии допилят наконец визуальное программирование, но это не точно, пока всё ещё разработке.

Unity visual programming

Unity visual programming

Unity visual programming
  • Новый редактор и тему которые появились в 2019.3 будут дорабатывать и улучшать, фиксить ошибки. В будущих версиях обещают новый «воркфоу» :) Возможно появятся какой-нибудь мультиоконный, мультидокументный режимы. Также будут шаблоны сцен (как пакет), увеличение скорости работы с префабами.

Сейчас вместо «папок» используют обычно пустые объекты, но как известно, чем меньше объектов, тем лучше.

  • Улучшение инспектора, разные режимы вставки и копирования объектов. Превью мешей, текстур, управление списками и массивами, папки в иерархии! — в разработке.
  • Перед полным переходом на DOTS, будет выпущено много обновлений в том числе и для анимации. Новая же система DOTS анимации, гибкая, производительная и легкая в использовании (так говорят), кроме того, её можно полностью заскриптовать.

  • Про ProBuilder и Polybrush тоже не забыли, обновятся и они. В террейне теперь можно делать дырки, ага :)

Unity building tools

Unity building tools

Unity building tools
  • Начиная с 2019.3, и версии 7.2.0 Visual Effect Graph больше не превью, это гарантирует стабильность и поддержку основных платформ. Одним из важных моментов является то, что по сравнению с Unity 2020.1 сократилось время загрузки шейдеров примерно на 50%.

Visual Effect Graph

Visual Effect Graph

Visual Effect Graph
  • Новая UI система развивается. UI Builder предоставляет знакомый опыт создания пользовательского интерфейса. Пишут, что будет достаточно легко адаптироваться к созданию UI на новый лад. Похожий на CSS синтаксис даёт много возможностей для создания динамичных и красивых интерфейсов. Также, обещают поддержку векторной графики, чтобы всё это выглядило перфекто на разных разрешениях экрана.

New Unity UI system UIElements

New Unity UI system UIElements

New Unity UI system UIElements
  • Добавятся всякие Machine Learning штучки, чтобы поиграться
  • Обновленный аудио/видео стек, можно записывать видео и делать гифки из редактора, плюс API ко всему этому
  • Улучшение Cinemachine и камер, чтобы сделать картинку более живой и красивой
  • Увеличена скорость импорта и работы с ассетами. В будущем будет загрузка ассетов «по требованию» (on demand)
  • Оптимизация и правка багов в URP
  • То же и с HDRP: оптимизация, фиксы, слои декалей и рейтрейсинг. Ещё будет Hybrid Renderer на основе DOTS, Burst Compiler и ECS. В некоторых моментах прирост производительности в 30 раз, скрины ниже
  • Работа по Unity Physics и Havok продолжается. Unity Physics 0.3.0-Preview уже доступен. Это легковесный, настраиваемый движок с детерминированной физикой.
  • Расширение доступных платформ

Unity supported platforms

Unity supported platforms

Unity supported platforms
  • Мультиплеер. Уже доступны: сервис голосовых чатов Vivox, Multiplay (через их сервисы), и deltaDNA (сервис аналитики). Идёт работа над сервером матчмейкина (вместе у Гугл вроде как), а также уже в превью Unity Transport и NetCode. Это новые сетевые подсистемы с поддержкой DOTS и IPV6. В будущем, вероятно, это всё будет представлять из-за себя какой-то единый сервис для многопользовательских игр и приложений.
  • По мобилочкам. Уже доступна Unity Runtime как библиотека, которую можно встраивать в нативные Android и iOS приложения. Работа для Device Simulator продолжается, как и улучшение Universal Render Pipeline (URP) c заточенностью на iOS/Metal и Android/Vulkan.
  • Project Tiny. Текущая превью версия собрана с новым DOTS Runtime, используется такой же редактор с возможностью билдить под iOS, Android и Web (WASM/ASMJS). Включает в себя: 3D rendering, 3D Physics, базовые анимации/аудио/ввод, 2D для рендера и обработки коллизий. Остальные фичи в разработке, поддержка UIElements будет продолжена, а также более специфичные для платформы функции, экспорт одного HTML, который включает Playable Ads и многое другое.

Unity project Tiny

Unity project Tiny

Unity project Tiny
  • С помощью Unity и так сейчас делается очень много игр и приложений для AR/VR, это направление они также не оставили без обновлений и улучшений. Добавятся всякие интерактивные штуки, без строчки кода, лучшая совместимость с платформами, поддержка Vulkan, Magic Leap (вроде загибается), шаблоны XR проектов, и прочее.

AR and XR options

AR and XR options

AR and XR options

В общем, это будет релиз с работой над ошибками и некоторыми приятными (если допилят) дополнениями. В любом случае, не стоит переводить рабочие проекты на самые последние версии Unity, обязательно что-то сломается (проверено не раз).

Следим за обновлениями!

Апрельский выпуск рассылки собирается!

Unity Learn Premium на 3 месяца

Unity learn premium

Unity learn premium

Unity learn premium

Многие сервисы делают скидки и открывают доступ к своим инструментам на время борьбы с вирусом. Unity — не исключение.

Unity Learn Premium на 3 месяца стал бесплатным. Пользуйтесь на здоровье!

Рассылка #3

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

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

Game level building

Game level building

Game level building

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

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

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

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

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

Console APK install tool

Console APK install tool

Console APK install tool

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

Исходник на Github

Рассылка #2

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

Atomic Heart

Atomic Heart

Atomic Heart

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

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

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

Подписаться

TabsView для Unity

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

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

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

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

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

Релиз Unity 2019.3

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

Пресеты

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

Unity presets feature

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

2D spline

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

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

Profile allocation manager

Profile allocation manager

Profile allocation manager

Редактор

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

Остальное

Trello для gamedev

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

Trello board kanban gamedev

Trello board kanban gamedev

Trello board kanban gamedev

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

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

Trello plugins

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

Mopsicus Unity Newsletter

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

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

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

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

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

Ранее Ctrl + ↓