100%

Я из Wargaming: Нил Форбс-Ричардсон, программный инженер

Ветеран геймдева о своей профессии, «Танках 1.0» и важности общения

Чем ты занимаешься в Wargaming?

Я программный инженер. В основном работаю над World of Warships и World of Tanks, а сейчас я и моя команда сосредоточены на создании консольной версии «Кораблей» для PlayStation 4.

Чем тебя привлекает работа в Wargaming?

Мне нравится, что у меня есть возможность решать технические проблемы. Когда я начинал карьеру в геймдеве, моя работа сводилась к портированию игр на те или иные платформы. Придя сюда, я погрузился в куда более интересную деятельность. Так, одним из ее важных этапов стала работа над обновлением 1.0 к World of Tanks с необходимостью поддержки DirectX 11. Мы работали в связке с минской командой, и это был захватывающий и полезный опыт.

А сейчас я работаю над портированием World of Warships на консоли (преимущественно на PS4) и имею возможность решать множество новых интересных задач.

«Танки 1.0» — колоссальный проект. Каково было работать над ним?

Долго (смеется). Много времени ушло на рефакторинг: по сути, нам пришлось перевести движок с DirectX 9 на DirectX 11. И это не только наша заслуга — огромная часть работы легла на плечи ребят из минской команды. Я бы сказал, это был совместный подвиг: в процессе работы над 1.0 нам нужно было параллельно выпускать другие обновления, а значит, вносить изменения так, чтобы при этом не поломалась сама игра.

Как ты стал старшим программным инженером?

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

Вот так началась моя карьера примерно 11 лет назад. Я проработал в студии около трех-четырех лет. Потом переехал в Австралию и начал искать работу. Устроился в 2K Australia, где мне довелось поработать над The Bureau и Bioshock Infinite. Через два с половиной года я перешел в Wargaming, где работаю уже пять с половиной лет.

С какими сложностями ты сталкиваешься по долгу службы?

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

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

Каким из своих проектов ты гордишься больше всего?

Горжусь тем, как наша команда выполняет портирование World of Warships на PS4. Благодаря этому проекту мы невероятно быстро выросли с профессиональной точки зрения. В этом, кстати, очень помог опыт нашей чикагской студии, которая создала консольную версию «Танков». Глупо было «изобретать велосипед», так что мы позаимствовали все, что пригодилось, из наработок чикагских коллег — в частности, некоторые архитектурные элементы. Благодаря этому мы смогли довольно быстро выпустить отлично работающую консольную версию игры.

Еще я горжусь обновлением 1.0 для World of Tanks. Мы шли к нему очень долго, вложили огромное количество ресурсов и сил. Но, когда оно, наконец, вышло, реакция аудитории окупила все труды. Помню, я видел пост на Reddit, где игрок рассказывал об огромном скачке в производительности игры. И этому была посвящена вся ветка — у одних производительность подскочила с 60 FPS до 100. Другие, наконец, с 20 FPS добрались до заветных 60.

Вот когда ощущаешь Настоящую гордость за свою работу — когда получаешь такую обратную связь. Ты видишь, как довольны игроки, понимаешь, что ты причастен к этому счастью, и думаешь: «Да, оно того стоило!»

Расскажи, пожалуйста, про свою команду и про то, куда она движется.

Со своей командой я начал работать давно, почти с момента устройства в Wargaming. С недавнего времени мы называемся Render Team, поскольку все, что мы делаем, так или иначе связано с рендерингом. За эти пять с лишним лет состав почти не изменился. За это время пришло и ушло несколько людей, но те, кто образует ядро отдела, научились отлично ладить и продуктивно работать в команде.

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

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

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

Звучит круто! Поделись, пожалуйста, прямо сейчас советами для программных инженеров.

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

Совет номер два: разберитесь в платформе, с которой работаете. Если это консоли, изучите их сильные и слабые стороны. Глупо делать коды под одну гребенку, чтобы они подходили для всех платформ — все равно для каждой придется оптимизировать. Да, многие платформы сегодня кажутся в чем-то схожими, но все равно у каждой есть ряд уникальных отличий, таких как GPU, например.

Лучше сосредоточьтесь на своей платформе. И не бойтесь оптимизировать свою работу конкретно под нее. В противном случае вам не удастся выжать из нее максимальную производительность.

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

А чему научился лично ты, работая над консольной версией World of Warships? Столкнулся ли ты в процессе с чем-то неожиданным?

О да, я научился многому, но почему-то сейчас не могу вспомнить, чему конкретно (смеется). Шучу. Естественно, за это время я получил кучу знаний. Если быть дотошным и предметным, я научился писать код, который работал бы на PlayStation 4, но это не слишком интересный ответ.

А вот что интересно, так это наблюдать, как упростился процесс переноса игр на консоли с тех времен, когда я начал этим заниматься. Мне довелось иметь дело с самым разным «железом» несколько поколений консолей тому назад, и разница колоссальная. Может, это банально звучит — вполне логично, что со временем технологии совершенствуются. Но я все равно безумно рад видеть, как легко все интегрируется с тем же Visual Studio [инструмент для написания и отладки игр — прим. ред.]. Как ни крути, сегодня портирование — куда более плавный и приятный процесс, чем прежде.

Что ты посоветуешь человеку, который хотел бы стать частью твоей команды?

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

Очень важно, чтобы вам было комфортно работать с другими людьми, поскольку разработка игр — это командное творчество (трудно представить, чтобы один человек создал игру в одиночку).

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

По ссылке вы можете просмотреть открытые вакансии студии Wargaming Sydney