Скрытые затраты нарушают сроки выпуска

Jan 21, 2022
Скалистое обнажение на острове

Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.

Сколько раз за последний месяц вам приходилось бросать все свои дела и бросаться в бой, чтобы решить срочную проблему, которая требует решения прямо сейчас? Одна из самых распространенных ошибок при разработке игр - это то, что мелкие, на первый взгляд, несущественные недостатки перерастают в более серьезные проблемы.

Когда ваше состояние потока прерывается несколько раз в день - будь то ожидание загрузки файла проекта или решение очередного конфликта при слиянии - вот тогда дела начинают идти наперекосяк. В ваш код начинают проникать ошибки. Циклы развертывания удлиняются. Ночные посиделки становятся нормой. Трения нарастают с каждым промахом, и вскоре это ощущает вся команда. Разочарование растет, моральный дух начинает падать, и становится ясно, что привычный для вашей студии способ ведения дел просто не работает.

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

За годы работы Unity сотрудничала со многими разработчиками игр и студиями, а многие специалисты в нашей команде сами являются геймерами. По нашему опыту, системы контроля версий (VCS) являются основой для эффективного DevOps, но они также могут быть одной из самых болезненных точек для студий. Это не совпадение.

В этой электронной книге мы собрали информацию о трех наиболее распространенных проблемах контроля версий, которые мешают студиям делать то, что они умеют лучше всего: создавать. Читайте далее о скрытых проблемах производительности, нарушающих сроки выпуска релизов, и о том, как решения VCS, такие как компонент Version Control в Unity DevOps, могут помочь вам вернуться в нужное русло.

Проблема №1: Параллельное развитие

Ситуация: Один проект, несколько рабочих процессов

Если вы не команда одного человека, то над одним и тем же проектом будут работать несколько членов команды. Наличие дополнительных рук, безусловно, поможет вам увеличить скорость, но может и замедлить процесс.

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

Стоимость: Время, которого не вернуть

Влияние на производительность здесь очевидно и огромно: Куча потерянного времени.

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

Проблема: Потеря работы и внутренние разногласия

Если даже одиночный геймдев имеет преимущество в использовании VCS, то при работе с несколькими членами команды это просто необходимо.

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

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

Из-за того, что Git не может блокировать файлы, многие команды разработчиков игр используют Perforce для всей команды, чтобы придерживаться единой системы и источника правды. Однако разработчики могут быть недовольны скоростью и производительностью подхода Perforce к ветвлению и слиянию с помощью "потоков задач". Это может добавить еще один уровень сложности к и без того сложному процессу, особенно при настройке непрерывной интеграции. Большинство создателей, с которыми мы общаемся, говорят, что даже не стали бы пробовать разработку на основе задач с помощью Perforce. Это просто не идеальный рабочий процесс.

Анимационное трио играет музыку на сцене

Goodbye Volcano High от KO_OP

Решение: Последовательная организация проекта

Четкие правила организации файлов и их широкое распространение помогут вашей команде работать слаженно.

Я также рекомендую выбрать VCS, которая подходит всем членам вашей команды. Например, художники должны иметь возможность вносить свой вклад в проект самостоятельно, не полагаясь на программистов. Внедрив систему контроля версий, которой могут пользоваться все, внесение изменений в файлы проекта станет менее пугающим процессом.

Монреальская студия KO_OP столкнулась с проблемой асимметрии и недопонимания между художниками и программистами во время создания своей игры Goodbye Volcano High. Узнайте, как они решили проблемы, препятствующие прогрессу, внедрив правильную систему VCS.

Проблема № 2: Избыточные инструменты и изолированные системы

Ситуация: Разные роли, разные инструменты

Команды UTeams обычно начинают с одного решения для контроля версий, а затем, столкнувшись с проблемами, переходят на несколько систем. По сути, разработчикам и художникам нужны разные рабочие процессы, потому что они работают с кодом, а не с двоичными файлами. В результате в командах художники будут работать с таким инструментом, как Perforce, а разработчики - с GitLab или GitHub.

Стоимость: Вдвое больше работы без отдачи

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

Проблема: Больше рабочих процессов, больше проблем, больше обслуживания

Если говорить более подробно, то команда обычно начинает свою работу либо с Perforce, либо с Git (например, GitLab/GitHub) и сталкивается с трудностями, которые создает каждый уникальный рабочий процесс. В Perforce они теряют возможность работать распределенно и с эфемерными ветками. При использовании Git они сталкиваются с проблемами хранения файлов из-за распределенной работы. Команды могут использовать Git Large File Storage (LFS) для обеспечения хранения только одной версии бинарных файлов на машине, но это происходит за счет снижения скорости и запутанного рабочего процесса, который претендует на централизованность, но не является таковым.

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

Игровой арт из Crying Suns

Crying Suns, Alt Shift

Решение: Оценка и оптимизация цепочки инструментов

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

Важно изучить свои процессы и инструменты, а затем решить, действительно ли они работают в вашей студии.

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

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

Начните с изучения того , что следует учитывать при оценке систем контроля версий.

Проблема №3: Слишком большой, чтобы взять на себя обязательства

Ситуация: Файлы проекта нуждаются в частом обновлении

Работа с большими файлами и двоичными файлами - один из уникальных элементов создания игры, но это может вызвать проблемы с контролем версий. Допустим, вы разработчик, работающий с Git, и пытаетесь проверить свой код. Для этого вам сначала нужно обновить свою рабочую область последними изменениями от других членов команды (это эквивалентно вытягиванию и проталкиванию).

Стоимость: Еще больше потерянного времени

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

Проблема: Нарушение рабочего процесса

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

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

Многие студии используют такие решения, как Perforce или Git LFS, для решения проблем с большими бинарными ресурсами, но каждое из них связано с теми же компромиссами, о которых мы говорили выше.

Заброшенная хижина в зимнее время из фильма "Возвращение в Нангрим

Return to Nangrim, Sycoforge

Решение: Использование управления версиями на основе файлов

Выбор файловой VCS может значительно ускорить работу.

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

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

Узнайте о подходе компании Sycoforge к итеративной разработке игры Return to Nangrim и о том, как система Version Control в Unity помогла им адаптироваться к растущим масштабам проекта.

Unity Version Control для gamedev

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

Игрок с короткими рыжими волосами стоит в джунглях.

Параллельное развитие

Эффективное содействие параллельной разработке является обязательным условием, и у каждого члена команды могут быть свои предпочтения. Инструменты на базе Git, такие как GitHub, GitLab или BitBucket, являются одними из самых популярных систем контроля версий, особенно среди разработчиков. Благодаря популярности Git, пользователи получат доступ к большому количеству улучшений, интеграций и возможностей взаимодействия. Однако с увеличением размера команды и проекта многие крупные и AAA-студии используют централизованные рабочие процессы, такие как Perforce, для удобства художников и нетехнических пользователей при работе с большими бинарными активами.

Благодаря мощным возможностям ветвления и слияния для разработчиков и возможности централизованной работы и блокировки файлов для художников, такая система, как Unity Version Control, может помочь. Если вы работаете в редакторе Unity, то бесшовная интеграция Version Control с Unity UI способствует совместной работе.

Избыточные инструменты и изолированные системы

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

Несмотря на различные достоинства и недостатки, многие системы, такие как GitHub, Perforce или даже Dropbox или Google Drive, могут быть настроены в соответствии с вашим рабочим процессом. Ищите интеграции или расширения, которые помогут решить некоторые проблемы совместной работы, или остановите свой выбор на единой системе, предназначенной для всех сторон.

Unity Version Control поддерживает работу с одним репозиторием в различных режимах. Эта функция дает вам возможность использовать несколько рабочих процессов без необходимости поддерживать и подключать две разные системы.

В Unity Version Control художник может использовать Gluon UI для работы с репозиторием в централизованном режиме, тем самым имитируя работу с таким решением, как Perforce. Разработчик может использовать стандартный пользовательский интерфейс для работы с репозиторием в распределенном режиме, имитируя тем самым тот же рабочий процесс, что и в решениях на базе Git, таких как GitHub или GitLab.

Маленькое существо рядом с бассейном с водой

Слишком большой, чтобы взять на себя обязательства

Разработка игр подразумевает работу с крупными проектами. Когда ваша студия расширяется, система управления контролем исходных текстов тоже должна расширяться.

Хотя распределенная модель Git'а не была предназначена для разработки игр, существует несколько расширений, позволяющих Git'у с большей легкостью работать с бинарными файлами, наиболее распространенное из которых - Git-LFS. Тем не менее, Git не был разработан с учетом управления художественными активами, поэтому в крупных студиях часто используются другие решения, такие как Perforce.

Unity Version Control - самое производительное решение на рынке, когда речь идет о работе с большими файлами, что идеально подходит для разработки игр. Это значительно сокращает время простоя в ожидании загрузки файлов - Unity Version Control может быть в 5-8 раз быстрее других решений. Вы все еще имеете дело с тем же контентом, но теперь вам не нужно ждать пятиминутной загрузки несколько раз в день. Вместо этого вы получаете то, что вам нужно, за считанные секунды.

Творите без компромиссов

Unity Version Control специально разработан для разработки игр, поддерживая художников и разработчиков в студиях любого размера. Он предоставляет художникам возможности для работы с файлами и интуитивно понятный пользовательский интерфейс, а также включает в себя надежное ветвление и объединение для программистов, чтобы все пользователи получили преимущества от улучшенной совместной работы и оперативности итераций.

Unity Version Control централизует работу без клонированных репозиториев и поддерживает огромные файлы и репозитории с быстрой передачей данных, оптимизированной для глобальной сети. Инструмент рабочего процесса Gluon позволяет наименее технически подкованным членам команды легко применять любые протоколы контроля версий.

Ускорьте рабочие процессы и создайте цепочку инструментов DevOps с помощью Unity DevOps. Создавайте без компромиссов и работайте эффективно, чтобы выйти на рынок вовремя и с тем качеством, которое вы ожидаете. Начните бесплатно уже сегодня.

Читать книгу

Заполните эту форму, чтобы получить доступ к передовым идеям и решениям от экспертов отрасли