Команды разработки игр с NetDrive — потоковая работа с ассетами

4 мин чтения use-case amazon-s3 workflows
Jay
JayTech Writer
Как игровые студии используют NetDrive для монтирования библиотек текстур и сборок из S3 как диска, не синхронизируя сотни гигабайт бинарных файлов локально.

Художнику по текстурам в студии среднего размера нужно проверить, как 4K normal map выглядит по сравнению с версией прошлой недели, но общая библиотека ассетов хранится в бакете S3, который вырос до 3 ТБ на два проекта. Синхронизировать всё целиком на рабочую станцию нереально, а скачивание файлов по одному через веб-консоль ломает рабочий процесс в движке. NetDrive монтирует этот бакет как диск, поэтому и браузер ассетов движка, и файловый проводник художника видят его как локальное хранилище, которое на самом деле стримится из облака.

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

Смонтируйте библиотеку ассетов как диск

NetDrive показывает Google Drive, OneDrive, S3, SFTP, WebDAV и другие хранилища как обычные диски в Windows и macOS — без синхронизации и полной загрузки файлов.

  • Текстуры и сборки из S3 отображаются как локальный диск — полная синхронизация не требуется
  • Фоновая очередь загрузки отправляет крупные экспорты, не блокируя рабочую станцию
  • Блокировка файлов не даёт двум художникам одновременно перезаписать один и тот же ассет
WindowsmacOS
Скачать NetDrive →

Бесплатный пробный период. Доступны бессрочная лицензия и подписка.

Почему полная синхронизация не подходит для игровых ассетов

Инструменты на основе синхронизации вынуждены скачивать на диск всё дерево папок целиком, прежде чем с ним можно будет работать, — а это плохо сочетается с библиотекой ассетов, где в рамках одной сессии затрагивается лишь горстка файлов из десятков тысяч. Потоковая передача NetDrive по требованию решает эту проблему: при монтировании бакета сразу появляется полная структура каталогов, но отдельные файлы передаются только тогда, когда их реально открывают. Художник по текстурам, просматривающий папку с материалами в Проводнике Windows, видит все миниатюры без ожидания многочасовой первоначальной синхронизации.

Это особенно важно для файлов, из-за которых библиотеки игровых ассетов и становятся тяжёлыми, — несжатых исходных текстур, экспортов высокополигональных скульптов и платформенных сборок, каждая из которых может весить гигабайты. Настраиваемый локальный кеш NetDrive (от 100 ГБ до 1 ТБ) держит недавно открытые ассеты быстро доступными для повторного открытия, не заставляя отдавать весь диск рабочей станции под локальную копию бакета.

Менеджер дисков NetDrive с подключённым облачным бакетом рядом с другими подключёнными дисками

Разделение сборок и исходных ассетов

Распространённый подход — монтировать два бакета рядом: один для исходной графики (PSD, файлы скульптинга, необработанное аудио), второй — для скомпилированных сборок, которые CI-конвейер отправляет после каждой автоматической сборки. Оба появляются как отдельные буквы диска, поэтому QA-тестировщик, забирающий последнюю ночную сборку, не бродит по тому же дереву каталогов, которым пользуется художник для исходников. Поскольку каждый диск подключается независимо, на диск со сборками можно установить ограничение пропускной способности в рабочие часы, не замедляя художников, активно работающих с исходной библиотекой.

Бакет облачного хранилища, подключённый как диск в Проводнике через NetDrive

Предотвращение перезаписи общих ассетов

Когда два художника одновременно редактируют один и тот же риг или файл материала — это тот вид коллизии, который легко возникает случайно и неприятно распутывать потом. Блокировка файлов NetDrive — доступная для всех типов файлов, а не только для документов Office, — позволяет одному художнику заблокировать файл во время работы над ним; любой другой, кто его откроет, увидит его доступным только для чтения, пока блокировка не снята. Для команды без выделенного конвейера контроля версий для бинарных художественных ассетов это само по себе устраняет самую частую причину потери работы.

Статус блокировки файлов на общем диске через NetDrive

Настройка общего командного диска

  1. Откройте Drive Manager NetDrive и нажмите + Add Drive.
  2. Выберите Amazon S3 (или другое объектное хранилище, которое уже использует студия) и введите ключ доступа, секрет и имя бакета.
  3. Назначьте букву диска — единая для всей команды (например, T: для “textures”) делает пути к ассетам движка переносимыми между машинами.
  4. Включите Team Drive, если доступ к управляемым лицензиям нужен нескольким участникам студии, чтобы учётные данные и настройки диска можно было опубликовать для команды, а не настраивать вручную на каждой рабочей станции.

Фоновая загрузка экспортов

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

Очередь фоновой загрузки, показывающая прогресс передачи файлов на подключённый облачный диск

Итог

Монтирование библиотеки ассетов как диска превращает многотерабайтный бакет S3 в нечто, что движок, файловый браузер и любой другой инструмент на рабочей станции могут воспринимать как обычное локальное хранилище — без специального клиента синхронизации, без ожидания полной загрузки перед началом работы. О функциях совместной работы, на которых основана эта настройка, читайте в Team Drive и общих дисках в NetDrive и Блокировке файлов Office в NetDrive.

— Jay, NetDrive