Представьте, что вы - игровая студия, которая достигла финальной стадии разработки новой игры из популярной серии. Затем на мир обрушивается самая страшная пандемия за последние 100 лет, и население страны оказывается в вынужденной самоизоляции.
Первым желанием в этих экстремальных условиях будет отложить выпуск игры на неопределенный срок. Герои нашей истории – итальянская студия Milestone, они решили адаптироваться к новой ситуации и продолжили работу над своевременным запуском MotoGP™ 20, последней из их популярной игровой серии.
Как они это сделали? Как студия может выполнить все важные завершающие штрихи в разгар кризиса, который помешал большинству членов команды работать в одном офисе?
Нам посчастливилось пообщаться с руководителем отдела разработки программного обеспечения Milestone Джанлукой Барбера, и он любезно согласился поделиться с нами полезной информацией и лучшими практиками, которые его команда использовала для преодоления трудностей.
Вот 10 проверенных советов, которые были использованы для выпуска AAA-класса игры в условиях удаленной работы.
Сфокусируйтесь на процессе
«Работа в обычном режиме была ключом к успеху», - сказал нам Джанлука. Даже во время кризиса Milestone не изменила план разработки игры, она просто адаптировала его к новой ситуации и, что более важно, продумала процесс работы на дому, которому впоследствии следовали все разработчики.
Рекомендации по адаптации подготовила группа, состоящая из экспертов различных подразделений компании; они были единственными, кто приходил в офис на интенсивный двухдневный период, в то время как остальные сотрудники сидели дома для социального дистанцирования. Эта избранная команда провела мозговой штурм возможных сценариев удаленной работы и выпустила подробный план рабочего процесса со списком контактов для решения проблем, которые могут возникнуть. Новый рабочий процесс был сосредоточен исключительно на изменениях, возникших в связи с новыми условиями, при этом все, что возможно, оставалось прежним.
«Даже если у вас есть проблема – не отходите от установленного процесса, даже если это немного замедлит ход событий. Не используйте короткие пути, и, если что-то не так, обратитесь к нужному человеку» - именно так от каждого члена команды требовалось исполнять обновленный рабочий процесс.
Избегайте переписку по e-mail, когда возможно
Вместо того чтобы использовать электронную почту для совместной работы, что может привести к запоздалым ответам и недоразумениям, Milestone использовала Microsoft Teams для создания нескольких смарт-групп из 10 человек, которые решали проблемы всей компании в режиме реального времени. У каждой команды была своя сфера деятельности и, что не менее важно, модератор, который должен был вести дискуссию. Естественно, модератор-профессионал в соответствующей области группы.
Максимально используйте имеющиеся ресурсы
Имея более 60 программистов и около 100 других разработчиков, использующих Unreal и имеющих огромную кодовую базу (генерирующую часы сборки и времени создания активов), Milestone требовалось существенное ускорение компиляции для кодовой базы и шейдеров. Они добавили офисные ресурсы в инфраструктуру IncrediBuild для создания «суперкомпьютера» с сотнями CPU-ядер из любой машины разработчика, эти ядра были собраны из простаивающих процессоров по всей их вычислительной сети. Результат: резкое ускорение трудоемких сборок, компиляций шейдеров и других процессов. Это помогло значительно ускорить время разработки на Windows, на Linux, для версий MotoGP™20 для ПК, Playstation, Switch, Xbox One и Stadia.
Сделайте VPN умным
Некоторые сотрудники Milestone, особенно художники, предпочитали брать свою работу домой и сталкивались с некоторыми общими проблемами VPN, такими как низкая скорость отклика. При удаленной работе любые задержки крайне нежелательны. А если у вас дома плохое Интернет-соединение, то VPN-решение только ухудшает ситуацию.
Помимо модернизации интернет-инфраструктуры и использования таких инструментов, как Perforce, Milestone внедрила систему “сетевого трафика” для обеспечения постоянной скорости соединения. Прежде всего, сотрудникам было поручено избегать загрузки больших объемов данных через офисную VPN в пиковые часы. Вместо этого было рекомендовано разделить их на разумные куски или запланировать большие коммиты в часы “низкого трафика”, такие как обед или ночь. Чтобы обеспечить успех этого метода, Milestone постоянно отслеживала сетевой трафик и соответствующим образом контролировала ситуацию.
Или вообще не используйте VPN
В качестве альтернативы, в некоторых случаях Milestone использовал FTP вместо VPN. Поскольку многие команды работали над разными проектами и им нужно было делиться сборками, вместо того, чтобы загружать их в офис и перегружать VPN, они использовали общий FTP, не забывая, что Steam - отличный способ поделиться сборками ПК в процессе разработки.
Но помимо VPN и FTP есть еще одно блестящее решение, которое вы можете выбрать.
В наши дни большинство ААА-игр мультиплатформенные, но одна из консолей на рынке обладает малоизвестной уникальной чертой, которая экономит время, особенно при работе из дома. Разработчики Milestone использовали платформу потоковой передачи игр Google Stadia, для которой также должна была быть выпущена версия, чтобы быстро увидеть изменения, внесенные в ходе разработки.
Сделайте общие знания доступными для всех
Чтобы убедиться, что все члены команды следуют рекомендациям и были в курсе последних знаний о решении проблем, был создан специальный раздел в Confluence, где публиковалось подробное описание последних решенных проблем. Например, когда у студии возникали проблемы с удаленным использованием геймпадов из дома или различные игровые ошибки, которые они исправляли. Кроме того, в Confluence указывалось местоположение каждого артефакта сборки (steam, Stadia и т. д.), чтобы другие могли легко получить к нему доступ.
Автоматизируйте то, что можете
Мы все знаем, что автоматизация экономит время и усилия, но ее вклад в удаленную работу еще более важен. Разработчики Milestone автоматизировали процесс загрузки в разные хранилища. Затем они интегрировали загрузку как часть процесса сборки Jenkins, так что каждый разработчик мог выбрать, должна ли сборка быть автоматически загружена в Steam или FTP, и получить электронное письмо, когда загрузка будет завершена, тем самым сократив ручную работу и повысив эффективность.
Если можете, не останавливайте найм сотрудников
Вместо того чтобы заморозить процесс подбора персонала, Milestone решила продолжить его и дистанционно наняла новых людей за это время. Затем новые сотрудники были подключены к разработке и интегрированы в упомянутые выше рабочие процессы.
Установите границы между работой и личной жизнью
Когда вы работаете дома, работа и жизнь неизбежно переплетаются. Если ваш офис - это ваша спальня, когда заканчивается рабочий день и начинается личная жизнь? В Milestone эта проблема была решена через определение четких временных рамок рабочего дня. Конечно, иногда нужно напрячься, но не каждый день.
Старайтесь избегать обновлений программного обеспечения
Что может сделать невинное маленькое обновление операционной системы? Оказывается, это может привести к большому "ущербу", особенно когда в офисе никого нет, чтобы перезапустить обновляемые машины. Команда Milestone старалась избегать любых ненужных обновлений программного обеспечения или изменений, чтобы их стабильная среда не подвергалась опасности. И когда обновления все-таки происходили, они следили за тем, чтобы кто-то был в офисе, чтобы справиться с неожиданными проблемами.
Когда мы разговаривали с Джанлукой, то были поражены тем, насколько быстро Milestone адаптировалась к новой реальности и даже сумела разработать и выпустить высокобюджетную игру в это непростое время. Мы хотим выразить огромную благодарность участникам студии за их готовность поделиться своими знаниями со всей индустрией. Мы искренне считаем, что некоторые из их ценных советов и «хаков для разработчиков» могут помочь многим другим компаниям (не только игровым студиям!), поэтому, если вы чувствуете то же самое, поделитесь этим постом и знаниями.
Узнать больше об ускорении разработки вашей игры можно из этого руководства.
Дори Экстерман
Опытный разработчик программного обеспечения и эксперт по стратегическому развитию продуктов, Дори Экстерман имеет 20-летний опыт работы в индустрии разработки программного обеспечения. Как технический директор Incredibuild, он руководит продуктовой стратегией компании и отвечает за видение продукта, внедрение и техническое партнерство. До прихода в Incredibuild Дори занимал различные технические и продуктовые должности в компаниях-разработчиках программного обеспечения, уделяя особое внимание архитектуре, производительности, передовым технологиям, DevOps, управлению релизами и C++. Он является экспертом и часто выступает с докладами о технологическом прогрессе в области инструментов разработки.