Интервью с Виталием Чернышевым, Tool-программистом Larian Studios

Интервью с Виталием Чернышевым, Tool-программистом Larian Studios

В рамках нашей рубрики «Как стать разработчиком игр?» Tool-программист Larian Studios Виталий Чернышев согласился рассказать о своей профессии.

Расскажи о себе? Как ты пришёл в геймдев? Где учился? Где/над чем работал раньше, работаешь сейчас?
Меня зовут Виталий. 34 года. Не женат. Родился и прожил большую часть своей жизни в небольшом городе на Дальнем Востоке в Хабаровском крае.
В институте учился на химика-технолога, но так как нужны были деньги, пришлось оставить учёбу и уйти работать на нефтезавод.
Проработав там рабочим 3,5 года и экономистом отдела снабжения 1 год, я решил перебраться в Хабаровск, так как в родном городе было скучно.

И после 2,5 лет в Хабаровске я-таки решился на путешествие на другой конец страны — в Санкт-Петербург.
По приезду в связи с отсутствием у меня диплома приходилось работать в разного вида компаниях: опробовал себя и менеджером по продажам с «холодным» прозвоном,
и монтажёром видео, и фотографом-ретушёром… В общем, много всего было.

В геймдев попал достаточно-таки внезапно. В один прекрасный день просто осознал, что в Санкт-Петербурге, в отличие от Хабаровского Края, есть геймдев, и решил почитать различные статьи в интернете о том, как туда попасть. И в тогда ещё живом LiveJournal наткнулся на сообщение, где как вариант предлагали запостить своё резюме на dailytelefrag.ru и порекомендовали попробовать себя в роли тестировщика.

Так что вооружившись своим огромным багажом пройденных игр (переиграл я к тому моменту уже в очень многое, даже в те игры, которые выходили до моего рождения) и прочитав несколько подробных статей о том, что и как должен делать тестировщик, я выставил на сайте своё резюме и к удивлению получил достаточно быстрый отклик от одной компании, занимавшейся разработкой мобильных игр. У них не было отдела тестирования совсем, так что я у них стал первым тестировщиком, а они — моей первой геймдев-компанией.

После 9 месяцев работы в этой компании, я решил попробовать себя в более крупном проекте и устроился специалистом отдела тестирования в Wargaming Spb. В тот момент их проект World of Warships находился в стадии закрытой альфы и вовсю набирал обороты, так что работы было много, работа была интересной. Именно там меня посетила мысль, что многие рутинные вещи как составление отчётов, мониторинг и прочее можно упростить, используя простые скрипты. Так я начал погружаться в python, благодаря книгам и помощи коллег-программистов я смог немного но улучшить рабочий быт команды.

После 2,5 лет работы в Wargaming Spb и успешного релиза World of Warhips я решил попробовать что-то ещё и потому присоединился к команде тестирования Larian Studios, чей проект Divinity: Original Sin 2 не так давно вышел в ранний доступ. Работа была интересной, но мне хотелось чего-то большего. Я стал пробовать всевозможные игровые движки вроде Unity и Unreal Engine, дабы делать свои прототипы игр. И так я по чуть чуть начал изучать C#, так как он мне нравится больше чем C++ даже сейчас :)

И в один день я заметил вакансию Junior Tools Programmer в нашей компании и решил попробовать пройти собеседование (честное, как все, без всяких внутрикомпанейских поблажек). К тому моменту, по рекомендации одного из коллег я успешно прочитал, наверное, самый лучший талмуд по C# из всех — CLR via C# за авторством Джеффри Рихтера. И благодаря ему и своему неуёмному желанию учиться чему-то новому, я смог пройти собеседование, сдать тестовое задание и успешно устроиться в нашу же компанию, но уже как программист. С тех пор за 2,5 года дослужился до Middle Tools Programmer’a, но останавливаться не планирую.

Расскажи о работе tool programmerа игр (для тех, кто не представляет, что это такое). В чем заключается работа? В чем заключается, какие задачи перед тобой стоят, как ты их решаешь?

Как следует из названия, tools programmer занимается созданием и улучшением инструментов, которые потом используются членами команды, ответственными за разработку собственно самой игры. Т.эо есть, основных задачи две:

  1. Дать пользователям инструменты, которыми они смогут сделать игру.
  2. Сделать жизнь пользователей как можно легче, заменяя рутинные вещи скриптами и дополнительными инструментами.

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

Задачи же из второго списка чаще всего приходится делать на основе «жалоб и пожеланий» пользователей. С этим часто связаны сложности, так как люди часто просят сделать что-то, что, по их мнению, улучшит их эффективность, но, как показывает практика, в действительности они редко бывают правы. Поэтому программисту инструментария приходится сначала вникнуть в суть проблемы, придумать для неё решение, основываясь на собственном опыте и часто используя варианты из других редакторов как пример, согласовать это с пользователем, убедить его что ваше решение и есть то, что он ищет, написать/дописать/переписать сам инструмент и в итоге отдать его на суд пользователю.
Чаще всего пользователь остаётся довольным, эффективность команды возрастает, все счастливы, программист инструментария уходит в закат, не оглядываясь.

Какая рутина присутствует в твоей ежедневной работе?

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

Что для тебя видеоигры? Развлечение/форма искусства?

Я люблю игры с детства. Особенно компьютерные. Переиграл в их великое множество, благо сборники 100 игр на одном CD или на одном картридже давали такую возможность.
Для меня это в первую очередь возможность погрузиться в какой-нибудь новый, неизведанный мир, чтобы изучить его и его обитателей. Именно поэтому я всё жду идеальную игру, где открытый мир будет действительно открытым, и он будет жить и изменяться в зависимости как от действий игрока, так и от взаимодействия внутриигровых фракций.
Ну, и конечно, иногда затягивает меня игра, позволяющая дать пинка под зад такому же игроку. Правда, последний раз это был Warcraft 3, в ладдере которого я провёл ооочень много часов.
Так что для меня игры — это развлечение как вид искусства, потому что хорошие игры, как и хорошие фильмы и книги, всегда остаются в памяти на очень долгое время. Именно поэтому, даже забыв что это была за игра, но услышав мелодию из неё, эмоции, пережитые во время прохождения этой игры, накатывают волной ностальгии.
И именно благодаря играм наш личный внутренний мир становится немного, но богаче.

Расскажи о процессе создания игры с точки зрения tool programmerа? Какая у тебя зона ответственности? Какие этапы претерпевает игра, как ты способствуешь тому чтобы она стала крутой? С кем еще из команды ты взаимодействуешь?

Наш редактор по сути своей мультитул – содержит в своём составе большой набор редакторов поменьше (редатор параметров персонажей, редактор диалогов и тд). Вот за работоспособность и улучшение всего этого добра я с коллегами и отвечаю. Конечно, есть редакторы, которые определённые люди знают лучше, но если они заняты, то любой из нас может взяться за решение той или иной задачи.
Разработка инструментария и разработка игры часто идут в независимых параллелях, пересекаясь только в моменты, когда для разработки игры требуется что-то, чего ещё нет ни в каком виде. То есть, в эти моменты у нас более-менее установлены конкретные сроки сдачи задачи. В остальных случаях мы решаем задачи по мере поступления, и по результатам планирования продюсерами и руководителями департаментов. Напрямую же приходится взаимодействовать почти со всеми отделами, так как редактором пользуются они все, и соответственно, у каждого отдела есть свои запросы: геймдизайнерам нужна новая табличка в редакторе параметров, скриптерам нужны улучшения в редакторе диалогов, аниматорам и 3д-артистам нужны улучшения импорта файлов из Maya в наш редактор, и т.д.
Людей много, всем всё нужно, чтобы сделать крутую игру. Поэтому приходится выкладываться на все 120%.

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

Я люблю игры разных жанров, так как каждая из них даёт уникальный опыт.
Но если уж прям выбирать, то это: стратегии в реальном времени, 2д-платформеры и экшены с элементами ролевой игры.
Совсем недавно прошёл Skul: The Hero Slayer. Метроидвания с достаточно забавной механикой смены класса персонажа посредством замены черепа и прокачки этих черепов за счёт косточек. Меня затянуло на 64 часа. Когда наконец-то прошёл — был доволен собой как никто другой.

И да, я наконец-то прошёл от начала до конца Horizon: Zero Dawn. История самого мира как и история самой героини — это просто уууух. Я был в восторге.

Назови 3, по твоему мнению, самые крутые игры и поясни, в чем их крутость.

  1. Planescape Torment — одна из самых крутых ролевых игр на моей памяти. Почему? Главный герой бессмертен, и смерть его порой также является частью прохождения. Саму игру можно пройти (при определённых условиях), сражаясь всего 3-4 раза, а в остальных случаях можно всё разрешить в диалогах, и даже финального боя можно избежать, но при этом получить более интересный результат. А также — чудаковатый, но по-своему привлекательный игровой мир, полный различных рас. О чём можно говорить, если в списке потенциальных напарников нет ни одного обычного человека? Зато есть сквернословящий парящий череп, девушка-тифлинг, горящий маг огня, живые доспехи, суккуб и ещё пара интересных персонажей. И с каждым можно многое пережить, просто разговаривая периодически. Как по мне — это крутейшая ролевая игра, однако сейчас оценить её могут только те, для кого не составляет проблемы читать огромное количество диалогов, которых в игре реально много. :)
  2. Dungeon Keeper — первая стратегическая игра на моей памяти, предоставляющая игроку возможность почувствовать себя в шкуре злого повелителя подземелий, но при этом не выглядящая как клоунада или же как нечто мрачное и жестокое. В игре — большое количество интересных механик: для начала нужно расчитить место для своих построек. Для этого используются бесы, призванные магией. Их можно время от времени хлестать рукой, дабы они работали быстрее. Определённые комнаты привлекают в подземелье определённых монстров. Самими монстрами управлять нельзя (кроме как вселиться в любого из них с помощью заклинания), но зато они прокачиваются, обретают новые навыки, порой конфликтуют с другими монстрами и тд. Если бросить схваченного врага в тюрьму и дождаться пока он умрёт, то после смерти он возрадится как лояльный повелителю скелет. Если врага пытать и дать ему умереть, то он возродится как привидение. Если пытать и лечить его, то рано или поздно враг перейдёт на сторону игрока. Если приносить трупы существ на кладбище, то там рано или поздно возрождаются вампиры. И тд. Механик очень много, они интересные и, что самое главное, они работают. Их используешь снова и снова, составляя план своего идеального подземелья, способного защитить свои сокровища от алчных героев или же от других менее дружелюбных хранителей подземелий.
  3. Majesty: The Fantasy Kingdom sim — прекрасный, единственный в своём роде и, к сожалению, многими забытый симулятор фентези королевства. Игрок, исполняя роль правителя, строит различные здания, нанимает героев и раздаёт им задания. Напрямую давать приказы героям нельзя. Только назначая награду золотом за конкретного монстра, логово или же за разведку определённой части территории. У героев есть свои принципы и ценности. Поэтому не каждый из них откликнется на задание. Рейджеры, например, с удовольствием ходят на задания по разведке местности, воры любят грабить логова, а паладины — убивать нежить. И так далее. Герои, получив деньги, несут часть из них в гильдию и часть из них забирается королём в качестве налога. Оставшиеся же деньги герои тратят на экипировку, эликсиры или же проигрывают всё в казино, которое не платит налоги королю, а значит, игрок не получит ни копейки в бюджет. И так далее. Ситуаций много разных и все они достаточно интересны. К сожалению, вторая часть вышла довольно посредственной и больше о серии ничего не слышно.

Что доставляет наибольшую радость в твоей работе? В чем самый большой кайф?

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

Это прям круто!

Какими качествами должен обладать крутой tool programmer? Как эти качества в себе развивать?

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

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

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

Тут, на самом деле, всё строго индивидуально. Всё зависит от усидчивости и восприятия информации.
Мне, например, в некоторых случаях нравится книжный формат. Но больше, конечно, предпочитаю видео уроки или же очное обучение.
Мне как 100% самоучке так проще усвоить информацию и почти всегда есть возможность уточнить нюансы, чего, к сожалению, с книгой проделать не получится.
И стоит сразу осознать: книги по программированию стоят дорого.

Я лично начал свой путь в tools-программисты с прекрасной книги Джеффри Рихтера «CLR via C#». В ней объяснено и как работает .Net Framework и прочая техническая информация, которая касается непосредственно языка C#.

Если же технического понимания программирования нет, то рекомендую для начала ознакомиться с прекрасным гарвардским курсом CS50. Его можно много где найти официально бесплатно. В последней версии они практическую часть делают на Python, что тоже может пригодиться.
Какие-то другие вещи рекомендовать достаточно сложно, так как всё зависит от преподавателя и материала. Я, к сожалению, таких хороших курсов как CS50, но уровнем выше, не встречал пока.
Но в любом случае, в современных реалиях бесплатно доступна уйма материала на YouTube. Появился вопрос, загуглил, поискал на YouTube, посмотрел, осознал, применил. И так далее. Не стоит бояться пользоваться поисковиком, т.к. большинство вопросов уже давно были заданы и ответы на них есть в открытом доступе.

Плюс есть интересные платформы вроде https://www.codingame.com/. По задачам на них порой проверяют технические знания кандидатов в разных студиях.

Ещё нюанс, который обязателен для любого программиста (кроме программиста 1С, наверное) — учите английский язык. Огромное количество хорошего материала доступно именно на английском. Да и в жизни пригодится.

Как относишься к инди? В какие инди-игры играл? Нравятся ли какие-то инди от наших соотечественников?
Какие инди-проекты поддержал монетой?

У меня к инди-проектам ровно такое же отношение, как и ко всем остальным. Если игра отличная, то мне не важно, кем и как она сделана.
Если вспомнить те, что прям очень понравились — Nuclear Throne, Crypt of the Necrodancer, Into the Breach, Dead Cells, Hades, Hotline Miami, Disco Elysium, Party Hard, FTL.
Их реально много. Собственно, я также не разделяю игры на отечественные/иностранные. Есть просто игра. Она либо меня зацепила, либо нет.
Из отечественных на память приходят Punch Club и недавний Loop Hero.

Есть ли у тебя собственный инди-проект? Игра, идея игры?

Идей, как возможно у любого, кто пришёл в геймдев, у меня много. Даже очень много. Но я прекрасно понимаю что 99% из них нереально реализовать. Тем более, одному.
Свой собственный инди проект я начинал много раз, но каждый раз что-то да отвлекало от него, а потом было неинтересно возвращаться. Я по природе перфекционист и потому хочу всё сделать правильно и так, как оно выглядит у меня в голове. Однако, как показала практика, художник я так себе. Так что пока делаю базовые прототипы, чтобы просто для себя уяснить: нравится или нет.

Над каким игровым жанром ты бы хотел поработать?

Если говорить как разработчик игры, то это 100% была бы RTS. Считается, что жанр мёртв, а то, что выпускается — недостаточно для его нового пришествия, но всё рано или поздно возвращается.

Что думаешь о платформах нового поколения от Sony и Microsoft — и как игрок, и как разработчик?
Что будешь брать, PS5 или Xbox Series X?

Как разработчик могу сказать следующее: чтобы что-то разрабатывать и проверять, необходимы так называемые DevKit’ы, которые простому смертному порой нереально получить.
Да и для взаимодействия с самописным инструментарием у этих платформ не всё дружелюбно. Приходится использовать их собственные вещи, которые не всегда удобны.
Как игрок я играю и на консолях и на ПК, на последнем я просто вывожу изображение с ПК на телевизор, подключают геймпад от PS4 если нужно и играю в удовольствие.
Учитывая, что сейчас многие PS-эксклюзивы, например, выходят и на ПК, то смысла брать себе консоль не вижу. Будь у меня дети — тогда ладно, чтоб отстали от меня, взял бы. А так…

Как, на твой взгляд, обстоят дела с кадрами непосредственно в России? Нет ощущения, что российская индустрия находится в той самой легендарной «вомгле», или ситуация не настолько плачевна?

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

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

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

Это работает и в обратном направлении. Плюс сейчас, из-за Covid-19, многие студии побороли свой страх перед удалённой работой с людьми и нанимают людей без релокации.
Так что студия может физически находиться хоть в Антарктиде, а сотрудники — комфортно работать из дома.

Поэтому я надеюсь, что рано или поздно всё смешается и станет интернациональным настолько, что можно будет работать в абсолютно любом проекте — было бы желание.
А пока ждём громких релизов из России и СНГ.

Рассажи какую-нибудь историю, связанную с твоей профессией и геймдевом?

За всё моё время работы в геймдеве, было, конечно, много всего. И забавного, и грустного.
Из связанного с инструментарием, например, был такой случай:
Нужно было сделать новый редактор и добавить для него иконку. Это был редактор таблиц по аналогии с Excel, потому название у него было соответствующее — Table Editor.
И если в первой частью задачи справиться было просто, то с иконкой всё обстояло иначе, ибо нет хуже художника чем программист. Бывают исключения, но не часто.
Поэтому многие программы имеют консольный интерфейс. Так проще.
Для того, чтобы иконка была нормальная, мы обратились в арт-отдел со словами: нам нужна иконка для редактора Table Editor. Всё.
Это была ошибка. Нужно было предоставить хоть какое-то описание того, что этот редактор из себя представляет, а мы этого не сделали.
Как результат, художник посмотрел на название — Table Editor и сделал иконку, на которой красовался прекрасный столик вместо таблицы.
Мораль проста: если что-то нужно, то делайте описание так, чтобы не было никаких вопросов и двусмысленности.

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


Большое спасибо за интервью, Виталий. Ну а вы, читатели, как обычно — задавайте ваши вопросы в комментариях и читайте другие интервью о профессиях в геймдеве здесь: Как стать разработчиком игр?

Понравилась статья? Поделиться с друзьями:
Автор snezhok_13
Пишет статьи о разработке игр. Не инди, — работает рендеринг-программистом в крупной ААА студии в Санкт-Петербурге. Большой поклонник игр Naughty Dog.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *