«Сейчас порог входа в геймдев маленький»

Game Logic Lead из Wargaming рассказал, как изменилась разработка компьютерных игр за десять лет.

«Сейчас порог входа в геймдев маленький»

До 28 сентября у всех желающих есть возможность попасть на курсы Wargaming Forge по дисциплине Software Engineering. Обучение будет проходить в минском центре разработки компании Wargaming, преподаватели курсов — практики из команды World of Tanks и других продуктов компании. Мы поговорили с ментором курса и руководителем подразделения Game Logic Левоном Авакяном и узнали у него про то, как раньше обстояли дела в геймдеве, и какая ситуация в этой сфере сейчас.

Левон, привет! Пожалуйста, расскажи о себе: где ты учился, где работал и как увлёкся разработкой?

Учился я с 2003 по 2008 год в Белорусском государственном университете информатики и радиоэлектроники на факультете информационных технологий и управления. Закончил кафедру искусственного интеллекта. Работать начал ещё в далёком, по-моему, 2005-м в компании Nilitis, это часть ScienceSoft. Потом соседа распределили в Центральный научно-исследовательский институт технологий и управления. Я тогда был на четвёртом курсе, и он меня тоже позвал к себе. Там мы делали для нашего министерства промышленности систему для сбора статистических данных на заводах, вроде бы она до сих пор работает.

Потом мои товарищи, которые работали в IBA, совершенно случайно позвали меня на свой летний корпоратив. В общем, на этом корпоративе я играл в страйкбол, и, сидя в засаде, один из тиммейтов стал меня спрашивать, кто я и откуда. Я ему сказал, что вообще-то здесь не работаю, что учусь на искусственном интеллекте. А он в ответ: «Мы тут как раз игрушку делаем, и нам нужна AI».

Так с 2007 года я начал делать игры. Первой была трёхмерная гонка Voltage для PC и PlayStation 3. Я там делал ботов, их поведение, чтобы они были похожи на людей.

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

Игру запаблишила «Акелла». На PlayStation она, к сожалению, так и не вышла. Потом этот большой проект закрылся, и когда только-только начали появляться казуалки, и мы стали делать их на собственном движке. Продавали их на дисках и портале Big Fish за сумасшедшие 20 долларов за копию. Особенность такой игровой разработки в том, что если мы отдали мастер-копию или залили игру на Big Fish, то никаких тебе патчей первого дня, вообще ничего. Как есть — так есть.

«Сейчас порог входа в геймдев маленький»

Расскажи, а как ты вообще попал в Wargaming?

После казуалок в IBA я перешёл в компанию Melesta, сейчас это Melsoft. Они тогда были на волне успеха, потому что выпустили свою «Ферму». Но там я занимался не «фермами», там мы делали MMO, и меня взяли писать сервер на Python. В Melesta я стал руководителем веб-подразделения, мы стали делать социалки. А в 2013 году Wargaming начал очень быстро расти, и меня стали туда постоянно приглашать. В какой-то момент мне подвернулась вакансия, которая показалась действительно интересной. Она называлась Live Ops Team Lead. Плюс прельщало то, что можно с нуля создать команду: сотрудников никаких не было, подразделения не было, просто искали руководителя. Я пришёл на собеседование, поговорил с ребятами. Мы друг друга устроили, и я приступил к работе в команде Clan Wars, там на тот момент шёл второй сезон первой Глобальной карты. Там всё падало, валялось, всё было, в общем, не очень, и я приступил к своим обязанностям. Было очень интересно.

Поделись, пожалуйста, чем твоя команда занимается сейчас? Какую часть разработки вы делаете?

Сейчас я руковожу подразделения Game Logic внутри инженерии продуктовой группы World of Tanks. Мы делаем игровую логику, игровые режимы, мета-геймплей, всю веб-обвязку, взаимодействие с платформой, с внешними сервисами.

Откуда обычно к тебе в команду приходят люди?

Путей, по сути, три. Кроме привычного рекрутинга бывают также внутренние переводы внутри Wargaming и найм по итогам учебной программы Wargaming Forge.

Ты уже очень много лет занимаешься разработкой в геймдеве — расскажи, а какая специфика именно у игровой разработки?

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

Мы не про исследования, мы про производство, и практически нет таких фичей, которые затрагивают какую-то очень узкую отрасль — «только клиент», «только какой-то UI».

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

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

Много ли изменилось в профессии игрового разработчика за последние 10–15 лет?

Да, я скажу, что многое изменилось, как и в остальном Software Engineering. Уменьшился порог вхождения, больше людей получили возможность назваться разработчиками. Они действительно могут производить какие-то продукты, есть достаточно много фреймворков. Но, что характерно, для AAA-продуктов на самом деле ничего не поменялось: сложность задач высокая, знания должны быть фундаментальные и широкие, и после трёх месяцев курсов или даже полугода без фундаментальных знаний всё равно большие игры делать не получится.

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

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

«Сейчас порог входа в геймдев маленький»

Есть ли какие-нибудь источники информации по разработке, которые мог бы посоветовать новичкам?

Я повторюсь: действительно, сейчас порог входа в геймдев маленький — выучить Python на любых курсах действительно не составляет труда, это достаточно просто, много хороших материалов. Или выучить какую-то технологию: например, React.

Тем не менее, что реально важно и на что нужно делать упор тем, кто действительно хочет стать профессионалом, — это классические фундаментальные вещи. Например, алгоритмы.

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

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

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

Вообще для начала нужно выучить один из классических языков программирования: либо C/C++, либо Java. Читать Страуструпа нужно. По операционным системам — Таненбаум либо Олифер; туда же «Компьютерные сети» — это просто классические книги. Этим книжкам много лет, но у них бывают переиздания. После прочтения учиться дальше будет куда легче.

Скажи, пожалуйста, а есть ли какие-то вредные привычки у новичков-разработчиков?

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

Вторая ошибка — это без необходимости тащить в проект новые технологии. Зачем они, показали они себя, проверенные, лучше они других? Просто «модно, молодёжно». Если есть 30 статей на Хабре по какой-нибудь там ерунде — «всё, завтра внедряем!». И действительно всегда можно куда-то что-то прилепить, но зачем?

И третье — это попытки создавать систему без проектирования. «Мне понятно, что делать, я вот тут сейчас всё сделаю, а потом… Начнём, а потом разберёмся». Это тоже чревато. Конечно, я не говорю, что обязательно всегда нужно делать бизнес-анализ или сидеть часами над архитектурой, но минимально «покрутить» свою систему абстрактно нужно обязательно.

Можешь выделить несколько главных советов, что стоит делать новичкам, чтобы развиваться в профессии?

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

«Сейчас порог входа в геймдев маленький»

Скажи, пожалуйста, у тебя есть любимые компьютерные игры? Конечно, кроме «Танков».

Ну честно говоря, чтобы что-то было прям такое любимое… Понятно дело, что я играл в своё время и в «Цивилизацию», с первой начиная, и в «Героев», начиная с первых, когда-то в молодости. На PlayStation коробки ношу в Death Stranding и в God of War играю. В целом я очень спокоен — это касается и фильмов, и книг, и музыки. Да, я получаю удовольствие, но, чтобы прямо быть фанатом, это не про меня.

3939
51 комментарий

По состоянию современных игр это весьма заметно.

11
Ответить

Комментарий недоступен

4
Ответить

  важно, чтобы человек не закрывался в какой-то одной области.Т.е. если я моделирую, мне ещё в написание кода лезть? Ну уж нет. 

8
Ответить

Ну как же, надо быть многостаночником, все знать все уметь. Как в ихнем Гугле! Платить правда будут по одной ставке. 

12
Ответить

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

1
Ответить

Комментарий недоступен

Ответить

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

Мне вот реально любопытно, как много людей , что идут в условный геймдев не играя в игры ?
Типа не интересно , как устроена игра у «конкурентов» так получается что ли?

5
Ответить