СИСТЕМА БАНДЛОВ НАШ...
TRANSCRIPT
![Page 1: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/1.jpg)
![Page 2: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/2.jpg)
СИСТЕМА БАНДЛОВ В UNITY:
НАШ ПОДХОДВиталийНемятый
Client Development Team Lead
![Page 4: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/4.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
4 Система бандлов в Unity: наш подход
РАБОТА С РЕСУРСАМИ
◾ Assets и Objects во всех папках
с именем «Resources» при сборке проекта
объединяются в один сериализованный файл;
◾ растет время загрузки индекса;
◾ НЕ нужны для загрузки первой сцены приложения.
![Page 5: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/5.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
КАК БЫТЬ?
![Page 6: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/6.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
ASSET BUNDLES!!!
![Page 7: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/7.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
7 Система бандлов в Unity: наш подход
Это Архив с любым типом активов:
◾ Texture;
◾ Audio clip;
◾ Scene;
◾ …
◾ Script
ЧТО ЖЕ ТАКОЕ ASSET BUNDLE?
![Page 8: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/8.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
8 Система бандлов в Unity: наш подход
ПОДХОДЫ К РАЗБИЕНИЮ РЕСУРСОВ НА БАНДЛЫ
◾ Logical entitiesделение на основе функциональной части проекта, который они представляют;
◾ Object Typesделение по типу ресурсов: звуковые дорожки, языковая локализация...
◾ Concurrent contentгруппирование происходит на основе одновременности использования ресурсов.
![Page 9: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/9.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
9 Система бандлов в Unity: наш подход
ДОСТОИНСТВА ASSET BUNDLES
◾ уменьшают размер сборки;
◾ доставка и обновление контента без кода после установки;
◾ возможность управлять загруженными ресурсами.
![Page 11: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/11.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
11 Система бандлов в Unity: наш подход
СБОРКА ASSET BUNDLES
![Page 13: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/13.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
13 Система бандлов в Unity: наш подход
x64 АРХИТЕКТУРА И IL2CPP
◾ принудительный выпуск Universal приложений;
◾ использование IL2CPP.
![Page 14: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/14.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
14 Система бандлов в Unity: наш подход
СИСТЕМА БАНДЛОВ «НА КОЛЕНКЕ»
◾ папки с раширением .bundle;
◾ манифест как карта всех бандлов;
◾ контент-сервер;
◾ кэш и версирование бандлов;
◾ зависимости бандлов;
◾ компрессия бандлов.
![Page 15: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/15.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
15 Система бандлов в Unity: наш подход
BUNDLE EDITOR
◾ сборка и управление AssetBundles;
◾ формирование и редактирование Manifest;
◾ выгрузка Manifest на Authentication Server.
![Page 16: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/16.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
16 Система бандлов в Unity: наш подход
BUNDLE EDITOR
![Page 17: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/17.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
17 Система бандлов в Unity: наш подход
ВЫБОР МАНИФЕСТА
![Page 18: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/18.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
18 Система бандлов в Unity: наш подход
HEADER ДАННЫЕ
![Page 19: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/19.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
19 Система бандлов в Unity: наш подход
REQUIRED BUNDLES
![Page 20: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/20.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
20 Система бандлов в Unity: наш подход
СПИСОК БАНДЛОВ ДЛЯ СБОРКИ
![Page 21: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/21.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
21 Система бандлов в Unity: наш подход
ВЫБОР КОМПРЕССИИ
![Page 22: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/22.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
22 Система бандлов в Unity: наш подход
ГОТОВЫЕ БАНДЛЫ
![Page 23: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/23.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
23 Система бандлов в Unity: наш подход
ВЕРСИРОВАНИЕ МАНИФЕСТА
◾ хранение полных манифестов по версии клиента;
◾ хранение «базы» манифеста и набора «отличий»
для каждой последующей версии.
![Page 24: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/24.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
24 Система бандлов в Unity: наш подход
MANIFEST
DEMO
![Page 25: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/25.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
25 Система бандлов в Unity: наш подход
ЗАГРУЗКА РЕСУРСОВ ИЗ БАНДЛА
Bundle Manager
◾ организация очереди загрузки AssetBundles с Content Server;
◾ поиск необходимых AssetBundle по имени;
◾ доставка ресурса клиенту;
◾ обработка ошибок процесса загрузки AssetBundles.
![Page 26: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/26.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
26 Система бандлов в Unity: наш подход
РАБОТА С БАНДЛОМ
Loader component
Bundle Manager
WWW.LoadFromCacheOrDownload
ManifestAssetAssetAseet…Asset
Unpucker
LoadAllAssetsAsync
Unload(false)
Cache
ABAB
ABAB
C#
![Page 27: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/27.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
27 Система бандлов в Unity: наш подход
CONTENT SERVER
◾ выделенный файловый сервер — во время разработки;
◾ CDN сервер — на продакшене (production environment).
![Page 28: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/28.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
ОСОБЕННОСТИ РЕАЛИЗАЦИИ НА WebGL
![Page 29: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/29.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
29 Система бандлов в Unity: наш подход
ОСВОБОЖДЕНИЕ БИЛДА ОТ РЕСУРСОВ
◾ работа со статическими ресурсами;
◾ вынесение статических ресурсов в Core Bundles;
◾ параллельная загрузка Core Bundles;
◾ разбиение большого бандла со сценой на волны.
![Page 30: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/30.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
30 Система бандлов в Unity: наш подход
СПЕЦИФИКА РАБОТЫ С БАНДЛАМИ ЗВУКА
Ошибка при загрузке бандлов со звуком в Editor:
Error: Cannot create FMOD::Sound instance for resource
archive:/CAB-71259a89453b52d98348c442374ef11c/CAB-71259a89453b5
2d98348c442374ef11c.resource, (Unsupported file or audio format. )"
В Editor звук не воспроизводится.
![Page 31: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/31.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
31 Система бандлов в Unity: наш подход
ПУТИ РЕШЕНИЯ
◾ в Editor не будет звука =);
◾ в редакторе работать с локальными ресурсами звуков — не выносить их в бандлы;
◾ собирать бандлы звука под Standalone для эдитора, а для билда — под WebGL.
*Бандлы звуков, собранные под WebGL, практически не сжимаются.
![Page 32: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/32.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
СИСТЕМА БАНДЛОВ 2.0
![Page 33: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/33.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
33 Система бандлов в Unity: наш подход
DESCRIPTOR~
DEMO
![Page 34: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/34.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
34 Система бандлов в Unity: наш подход
РАБОТА С РЕСУРСАМИ В EDITOR
![Page 35: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/35.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
35 Система бандлов в Unity: наш подход
ПРОБЛЕМА С ШЕЙДЕРАМИ И ЕЁ РЕШЕНИЕ
Дано:
При формировании Бандла с шейдерами не все варианты шейдера компилируются.
Туман – ? Ответ: Туман есть!
Решение:
1) анализ использования шейдеров;
2) формирование shader variant collection для шейдера.
![Page 36: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/36.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
АВТОМАТИЗАЦИЯ КАК ОСНОВНАЯ ЗАДАЧА
![Page 37: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/37.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
37 Система бандлов в Unity: наш подход
АВТОМАТИЗАЦИЯ
◾ Bamboo для CI;
◾ Cake для написания скриптов;
◾ фильтр для пушей;
◾ отдельный проект для каждого сжатия;
◾ доставка бандлов на контент-сервер.
![Page 38: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/38.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
38 Система бандлов в Unity: наш подход
REFERENCES
Читать:
◾ Unity Manual
◾ Asset Bundles Best Practices
◾ Asset Bundles and Asset Bundles Manager
Смотреть:
◾ Asset Management Details That You Won't Find in the Manual
◾ A Look Ahead: Resource Manager, Addressable Assets and Live Preview
◾ uDev #6: Разработка MMO RTS на Unity
![Page 39: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/39.jpg)
Copyright Plarium Global LTD. 2018Do not distribute
СПС ;)
![Page 40: СИСТЕМА БАНДЛОВ НАШ ПОДХОДcdn01.x-plarium.com/browser/content/developers/... · СИСТЕМА БАНДЛОВ В UNITY: НАШ ПОДХОД Виталий Немятый](https://reader036.vdocuments.site/reader036/viewer/2022071212/60264bd42b3ae0654876029f/html5/thumbnails/40.jpg)