Сменил Unity на C++
По вашим просьбам, ребята, рассказываю о собеседованиях в геймдеве.
Привет!
Речь пойдет о собеседовании в самую крутую студию в Санкт-Петербурге – Sperasoft (это я, конечно, предвзято – мне тут очень нравится, но много объективных факторов ЗА). Помимо собеседования, как обычно лирическое вступление с мотивацией, картинками, видео и мыслями.
Вступление
За несколько прошлых лет мне посчастливилось поработать над очень крутыми проектами в EA и Nival. В EA это был StarWars: Galaxy of Heroes, очень классная игра, а про проект в Nival я ничего не могу рассказать (NDA – non disclosure agreement, соглашение о неразглашении). Я понял,- хочу работать над крутыми играми! Я наелся разработкой на Unity, и мобильными проектами (пусть это и крутенная франшиза, как Starwars). Многое за годы с Unity я повидал и очень люблю этот игровой движок, но специфика такова, что на нем разрабатывают мобильные игры-клоны или социальные игры. Чаще всего так, есть исключения, например Escape from Tarkov, который делается в питерской студии, но в основном все грустно.
А я хочу делать что-то значимое! Что-то, во что я сам буду с удовольствием играть. Игру, которую игроки будут ждать с нетерпением! Чтобы не нужно было гоняться за ними, “лить трафло”, травить фритуплеем, применять разные агрессивные схемы монетизации (вроде лутбоксов) чтобы выжать из игроков побольше денег. Кстати, разработка игры в мобильном геймдеве занимает очень небольшое время, большую часть занимают: интеграция рекламных сервисов, in-app покупки, социальные сервисы и т.д.
Здорово делать игру такую, чтобы reveal-трейлер о разработке вызывал бурю эмоций у игроков, как например этот от Naughty Dog
В общем, я решил сменить и язык программирования и платформу и очень хотел во взрослый геймдев. Что у меня получилось, ура :)
Собеседование
В прошлом году я еще работал в Nival и вконтакте увидел у Sperasoft горячие вакансии gameplay-разработчиков на проект с Ubisoft. Только там совсем не C#/Unity3d требовался, конечно.
Не буду долго размусоливать как я учил С++, тяжело. Не 21 день. И до сих пор учить и учить.
Вот знаете, С++ это единственный язык про который я видел книгу с заголовком “без страха”, да-да – книга “С++ без страха”. С таким заголовком представляешь что в ней:
– “Успокойтесь, сделайте глубокий вдох. Выыыдох. Это такой же язык как и остальные. Не бойтесь, все в порядке. Все будет хорошо!”
*заикаясь*
– “Д-д-доктор, кажется мне опять снился Александреску и мета-п-програмирование!”
Язык мне очень понравился. На самом деле в университете глубины я и не видел, до мякотки и не добирался.
Это все шуточки, а до интервью в Sperasoft, я писал сопроводительное письмо, в котором я старался продемонстрировать, что язык я применять умею. И прислал ссылку на репозиторий с моим самописным игровым движком и видео с небольшой демонстрацией.
Я начал писать игровой движок, потому что коммерческого опыта с С++ у меня не было. Что-то я писал в университете, но это было давненько. Про это я решил написать отдельную статью “Зачем писать свой игровой движок?” (пока она в черновиках, но когда-нибудь опубликуется).
Само собеседование в Sperasoft у меня было из 3х частей: pre-screen интервью по телефону и два интервью в офисе, одно техническое, другое менее техническое с ресурс-менеджером и лид-разработчиком.
Pre-screen около часа, мне так показалось, с вопросами по математике, C++ и разработческом опыте. Я думал – “не пройду”. Думал так, наверное, в течение всего интервью и пару часов ДО и ПОСЛЕ, поэтому дико “эээкал”, “мекал”, мне даже в конце посоветовали книгу какую-то, чтобы не волноваться.
Вечером позвонила HR Настя и сказала, что все хорошо, я понравился и меня зовут уже в офис на техническое собеседование.
На техническом собеседовании спрашивали C++, чуть математики, алгоритмы (на графах, время работы разных алгоритмов). Писал на доске алгоритмы Дейкстры помню. Проектировал классы для игр и исправлял ошибки в коде на проекторе. Хорошее интервью, что очень понравилось, давали исправиться, наталкивали на мысли и говорили правильно/не правильно, что частенько не делают.
На третьем интервью обсуждали опыт, говорили чего умею, чем интересуюсь и ищу ли работу вообще, я не искал. Хотел именно в Sperasoft. Этому еще очень способствовал доклад Жени Муралева на DevGAMM, я после него прям подумал: Вот! Хочу это знать, не хочу эту мобильную дичь делать. Доклад, который мне очень понравился, вот:
В итоге, через пару недель мне позвонили и я принял предложение работы. Вообще, если честно, очень давно хотел похвастаться, но ждал до окончания испытательного срока :-Р
P.S.
Это было хорошее собеседование. А бывали и плохие. У меня прям бомбит от нескольких. Я про них расскажу, если интересно :)
Честно говоря мне не сделали оффер после них, но это не значит, что я предвзят. Я так думаю.
После моего самого крутого интервью (оно правда было не в игровую студию),- меня тоже не пригласили, а после одного из плохих- мне предложили работу в одной известной игровой студии.
Я есть вконтакте и твиттере.
+100500 Уважения за то, что вылезли с мобильного болота.
маладец, давай статью про твой игровой движок!!!
Я уже немного писал: http://coremission.net/game-engine/igrovoi-dvizhok-dlya-obucheniya-cplusplus-opengl/
Хочу еще написать какие от этого писательства выгоды, да и зачем это делать
То что на Unity делают мобильные игры-клоны или социальные игры, это просто безответственный подход, который привел к стереотипу, что на Unity нельзя сделать ничего серьезного. Из своего опыта могу сказать, что графическое ядро сего движка вполне себе вытягивает графику MGSV, GTAV, Overwatch (без пост эффектов).
Привет! Я ведь написал – Unity отличный движок, просто дёшево и удобно делать на нем такие игры. Но есть и крутые на нем.
А что у вас за опыт такой? Откуда вы знаете про то что рендер-ядро что-то может потянуть? Овервоч ещё поверю, но GTA-5? Огромнейшая игра, подгрузка города, в Юнити ничего подобного нет!
Сергей, здравствуйте! Не могли бы вы посоветовать материалы для изучения с++? Базовый уровень знаний есть, хотелось бы так же изучить его глубже, чтобы тянуть коммерческий уровень.
Привет, я читал: Скота Мейерса (почти все его книги), Вандервурд/Джосаттис про шаблоны и Андрей Александреску Современное проектирование. Опытные ребята говорят, что необходимо прочитать большую книгу Страуструпа чтобы познать язык глубоко.
Го статью про плохие собеседования
Как-нибудь обязательно напишу! Я решил, что нужно программировать, а то я с этим блогом стал больше писать текст, чем код :(
Болтать не мешки ворочать, а нужно подучиться дальше…