Участница команды Mm: Эми Филлипс
Официальный титул Эми Филлипс звучит как «верховная жрица инструментального кода», что весьма эпично смотрится на визитке. Её настоящая должность — ведущий программист инструментария — не столь пафосная, но при этом не менее важная, ведь именно Эми и её коллеги создают различные инструменты для остальных команд нашей студии. Мы поговорили с ней о любви к головоломкам, решении чужих проблем и классической случайности, которую так любят в Mm.
Привет, Эми! Расскажи, чем ты занимаешься в Media Molecule?
Меня зовут Эми Филлипс, и я верховная жрица инструментального кода в Media Molecule. Разумеется и к сожалению, это не настоящее название моей должности. Оно возникло семь лет назад, когда я отправилась на GDC, конференцию разработчиков игр. Компания решила, что у меня должны быть визитки, и опрометчиво позволила мне самой указать свою должность. Вот я и вписала: «верховная жрица инструментального кода». Официально я ведущий программист инструментария, но мне нравится быть верховной жрицей. Это придаёт мне могущество и властность.
С чем связана твоя работа каждый день? Ты улучшаешь инструменты, которыми потом все пользуются в «Грёзах»?
Вовсе нет. Понимаю, почему вы так думаете, но на самом деле мы не создаём инструменты, которые игроки используют в «Грёзах». Наша команда из четырёх человек разрабатывает инструменты не для игроков, а для сотрудников Media Molecule. В частности, мы создаём средства для облегчения работы или ищем преграды, мешающие коллегам эффективно работать. Для этого мы постоянно общаемся с другими сотрудниками, чтобы узнать, какие у них возникают трудности, что замедляет их работу и что мешает настроиться на продуктивный ритм, а затем пытаемся понять, можно ли чем-нибудь помочь в каждой конкретной ситуации. Мы работаем над созданием сборок для непрерывной интеграции, чтобы всякий раз, когда программист добавляет новый код, у нас были системы, которые собирают этот код и быстро предупреждают программиста, если он что-то сломал. Это очень удобная и простая в реализации штука! Такие системы могут быстро сделать сборку с новым кодом и отправить её тестировщикам, создателям контента или другим участникам рабочего процесса.
Мы также создали несколько автоматизированных тестов. При проверке кода мы запускаем серию тестов, чтобы выяснить, не сломалось ли что-нибудь. Ещё помогаем с локализацией: берём игру и переводим новые тексты, чтобы вы могли играть на французском или испанском, и следим за тем, чтобы всё было переведено. Также мы переносим много данных с места на место для системы управления версиями, которая позволяет отслеживать исходный код и понимать, какие его части изменились и почему. Она позволяет откатиться к предыдущим сборкам определённой версии, чтобы воспроизвести, например, версию, которая ранее была отправлена игрокам. Любую возникающую проблему можно решить с помощью инструментов, и это здорово: ты всегда занимаешься чем-то новым и общаешься со множеством коллег из разных отделов.
Часто ли к вам обращаются за стандартными инструментами, или каждый раз нужно придумывать что-то новое?
Как правило, они весьма разнообразны. Работая со множеством отделов студии, мы получаем массу абсолютно разных запросов. Мы стараемся вести и регулярно обновлять документацию по работе с различными запросами, потому что некоторые из них всё же повторяются. Например, что-то вроде «у меня старый критический сбой, для которого нужны символы, иначе я не смогу понять, что за фигня тут случилась». Вот такое приходит часто. Но мы также получаем множество самых разных запросов.
Какие инструменты вы создаёте, чтобы выполнить полученный запрос?
Сотрудникам Mm нужна возможность быстрого получения сборок. После перехода на удалённую работу из дома в 2020 году мы потеряли доступ к быстрой локальной сети. Находясь в офисе, ты можешь моментально скачать сборку игры. Но такой быстрый интернет есть дома далеко не у каждого, поэтому нам пришлось внести ряд улучшений в своё средство распространения сборок, чтобы уменьшить их объём. Мы написали программу, которая пыталась использовать то, что уже есть на диске компьютера, и загружала по сети только недостающие данные. Это целая куча технических тонкостей, но мне как программисту нравятся всякие технические прибамбасы. Раньше я была сетевым программистом и решала множество интересных и весьма хитроумных проблем. Это было ещё в те годы, когда я работала над серией гоночных игр Burnout и пыталась сделать так, чтобы все автомобили в сетевых заездах выглядели и вели себя одинаково.
Как ты перешла от программирования сетевого кода к работе над инструментами?
Поначалу я была программистом общего профиля, затем немного работала над программированием ИИ, а далее занялась сетевым кодом. Как раз в то время наша студия [Criterion Games] приступила к работе над Burnout 3, где появились сетевые заезды. Потом я перешла в Media Molecule и стала сетевым программистом LittleBigPlanet на первых этапах создания этой игры. Через некоторое время я ушла в декретный отпуск, а когда вернулась, хотела работать на полставки два дня в неделю. К сожалению, для программирования сетевого кода двух дней в неделю мало, поэтому пришлось искать себе другое занятие. Заметив, что в студии возникает много разных проблем, которыми никто не занимается, я начала решать их, а коллеги были рады, что теперь есть к кому обратиться за помощью.
Эта роль продолжала развиваться. Моя задача — не изобрести велосипед, а найти то, что не особо хорошо работает, и внести изменения, чтобы стало лучше. Это очень вдохновляет, потому что я моментально получаю отзывы людей. Например, как только я улучшила пользовательский интерфейс в системе распространения сборок, чтобы можно было закреплять избранные сборки в начале списка, мне сразу начали приходить отзывы от коллег. Если ты кому-то помогаешь, тебе всегда говорят спасибо в ответ, что очень радует.
Ты изучала программирование в университете или освоила всё самостоятельно?
Самое забавное, что я попала на эту специальность по воле случая. Изначально я поступила в университет на математику, но после года обучения поняла, что она даётся мне с большим трудом. На протяжении следующих двух лет я переключилась на физику, которая была чуть проще. Но у меня и к ней не было какой-то тяги, так что на четвёртом курсе я решила попробовать информатику. К счастью, мой университет спокойно относился к таким переходам. В итоге изучать информатику мне очень понравилось, так что я окончила университет уже по этой специальности.
После выпускного со мной связался друг, работавший в студии Big Blue Box Studios, которая тогда занималась Fable, и предложил проведать его в Гилфорде. Я приехала к нему на выходных, но его внезапно вызвали на работу, потому что у них там горели сроки. Я пошла в офис вместе с ним, где меня встретили очаровательные и дружелюбные люди. А ещё у них были всякие вкусняшки и самокаты. Тогда я подумала: «Хм, может, мне тоже заняться видеоиграми?» Я разослала резюме всем игровым компаниям в Гилфорде и получила ответ от Criterion, куда в итоге и устроилась. Короче говоря, мне очень повезло случайно найти свою профессию.
Чем для тебя интересна работа в Media Molecule?
В первую очередь в Media Molecule я люблю людей — они здесь умные, добрые, общительные и невероятно талантливые. Здесь все общаются на равных независимо от своей должности в студии. Мне очень нравится этот подход, когда в тебе видят прежде всего человека, а не твои должностные обязанности. Благодаря этому всегда можно обсудить с кем-нибудь происходящее или пожаловаться на различные проблемы. Это очень важная возможность для разработчиков инструментария, потому что люди, которые приходят ко мне с запросами каких-то функций, не всегда знают, чего конкретно хотят. Так что я задаю им наводящие вопросы: «Почему тебе нужна эта функция? Какого результата ты хочешь добиться? В чём основная суть этого запроса?» Разобравшись с общим посылом просьбы, я могу понять, нужна ли эта функция другим людям, каким образом лучше всего добавить её и что именно нужно для этого сделать.
Ты работаешь в Media Molecule почти с самого основания студии. Какой из проектов понравился тебе больше всего?
Пожалуй, LittleBigPlanet, потому что это было настоящее испытание. Мы не до конца осознавали, что хотим сделать, так что игра обретала конкретную форму уже по ходу разработки. Если честно, я до сих пор не понимаю, как нам удалось собрать цельный продукт, потому что у нас была куча разрозненных идей. Тогда я ещё занималась сетевым программированием, но мне нравилась эта атмосфера постоянных экспериментов. В целом она сохранилась в студии до сих пор.
Это ещё одна причина, по которой я люблю Media Molecule: мы постоянно пробуем какие-нибудь интересные и творческие задумки, но делаем это сообща. Никогда не бывает такого, чтобы гениальными идеями делился только кто-то один. Обычно у нас есть ядро игры, к которому каждый может добавить что-нибудь своё. Думаю, что это довольно редкая ситуация, когда все сотрудники в игровой студии могут делиться своими идеями и проявлять фантазию.
Что посоветуешь тем, кто хочет начать заниматься разработкой инструментария?
Само собой, не помешает пройти университетскую подготовку по специальности, связанной с программированием. Например, при изучении информатики вы познакомитесь с фундаментальными принципами работы программного кода. Если вы понимаете написанный вами алгоритм или структуру данных, а также знаете, как они используют кэш, то вам будет гораздо проще выявлять ошибки и неполадки в своём коде.
Кроме того, есть игровые конкурсы, на которых вы можете познакомиться с людьми из индустрии, а также попробовать что-то новое и прокачать свои творческие навыки. Если вы хотите задержаться в этой профессии, то стоит также чётко понимать, что закончить игру бывает очень сложно. Разработку начать легко, а вот довести дело до конца уже проблематично. Пожалуй, в университете с этим проще, потому что ты проходишь заранее подготовленный кем-то курс обучения. Если же заниматься в одиночку, то нужно самостоятельно искать нужную информацию и разбираться в ней без всякой помощи.
У сотрудников Mm на рабочем месте всегда много всего интересного. А что на твоём столе?
Хм-м-м. У меня нет чего-то прям эдакого. Хотя дайте подумать… О, у меня есть книжка-головоломка Journal 29: Oblivion. Это сборник задач на нестандартное мышление, в котором сперва нужно осознать головоломку, прежде чем решить её. Это сложно, но понравится тем, кто любит поскрипеть мозгами. Ещё на моём столе есть открытка от друга, которому я обновила сайт в обмен на книгу с открыткой, а также моя электронная читалка Kindle и брошка Media Molecule. Пожалуй, самая интересная вещь среди этого всего — моя очаровательная кружка. Я называю её «кубок отваги», потому что на ней написаны всякие воодушевляющие фразы: «У тебя всё получится. Не пугайся ничего. Бейся, а не бойся. Действуй в своём темпе. Ты сильнее, чем думаешь». А ещё там есть единорог, который говорит: «Ты волшебный и ценный человечек». Единорожики всё вокруг делают лучше.
Руководство пользователя «Грёз» постоянно дополняется. Следите за обновлениями: мы будем периодически добавлять новые уроки и статьи.