С чего начинается работа в геймдеве? Часто с огромного желания делать игры. По крайней мере в моем случае было именно так. С самого детства я много играл, но в какой-то момент этого стало недостаточно, и я начал интересоваться, как игры работают. Можно сказать, я постоянно ищу ответ на этот вопрос.
Как все начиналось
Первую серьезную работу я получил уже после окончания вуза. Меня взяли на должность 3D Artist в одну небольшую фирму, которая игры не разрабатывала, но иногда делала разного рода интерактивные презентации и обучающие программы. Там меня научили многому, в том числе основам грамотного 3D-моделирования для realtime-движков, основам анимации и рига (ребята, если кто-то из вас это прочтет, я вам до сих пор очень благодарен). Этот первый этап карьеры дал хорошую базу для будущей работы.
Желание разобраться, как работают игры, никуда не исчезло, и, когда появилась возможность, я устроился в Plarium. Начинал как 3D Generalist. На тот момент мы делали исключительно 2D-игры, и под них требовались разного рода рендеры, в основном статические, иногда секвенции.
Всё поменялось в один прекрасный момент, когда кто-то из программистов предложил сделать realtime 3D-анимацию для прототипа, который мы разрабатывали на Unity. Я первым вызвался попробовать.
В процессе оказалось, что нужно не только сделать саму модель, но и настроить её непосредственно в Unity. Каким-то чудесным образом я справился. И тут выяснилось, что 3D Artist смотрит на проект совсем не так, как разработчик, и его взгляд может быть весьма полезен. Так закончилась моя работа в Art Department и началась в команде разработки.
Любознательность и желание делать классные игры проявлялись всё больше. Работа в технической команде, реальные проблемы и вызовы, обучение от компании (оплачиваемые конференции и встречи с представителями Unity) дали возможность быстро развиваться.
Первое время у меня возникало много сложностей с прочтением и написанием кода: подготовительные курсы одного из харьковских вузов закрепили в моей голове мысль, что я на это не способен. Однако довольно быстро выяснилось, что всё не так страшно, и я научился читать и писать код (C#) и шейдеры (используется Nvidia CG).
Примерно тогда я узнал о существовании должности Technical Artist и роли такого специалиста в процессе разработки игр (относительно новая специализация на то время в Украине). Так у меня появилось понимание, к чему стоит стремиться. Со временем оказалось, что позиция Technical Artist отлично вписывается в наш процесс разработки, и в студии появилось новое направление.
Кто такой Technical Artist?
Technical Artist обеспечивает баланс качества визуального контента и технической реализации игр. Он выступает связующим звеном между разработчиками и CG-специалистами.
Я думаю, одно из главных качеств хорошего Technical Artist — стремление узнавать что-то новое и постоянно учиться. Подход к работе должен быть примерно таким: «Оk, я пока не знаю, как это сделать. Пока». Мне кажется, я каждую неделю делаю хотя бы одну вещь, которую раньше никогда не делал и делать не умел (например, сейчас я учусь писать статьи).
На текущий момент в нашей студии 10 Technical Artists, которые работают над пятью проектами. Задачи и специализация каждого Technical Artists немного отличаются и, если перечислять все, получится довольно большой список. Поэтому я выписал только основные.
Хочу отметить, что для разных компаний этот список будет существенно отличаться. Он во многом зависит от особенностей продукта, который вы разрабатываете, и организации рабочего процесса.
Основные задачи
Коммуникация между отделами.Значительную часть моей работы составляет общение с представителями разных команд. Технические требования нужно донести до арт-команд, а художественные — до разработчиков. При этом важно не просто говорить, что что-то невозможно, а объяснять почему и предлагать пути решения художественных и технических проблем.
То, что Technical Artist работает «между» командами, позволяет проверять, хорошо ли игровая логика подходит к арт-ассетам, и, если нет, предлагать соответствующие пути модификации.
Создание визуальных эффектов и анимации непосредственно в среде Unity.В процессе разработки игр многие эффекты можно реализовать только в движке. Поэтому мы занимаемся созданием различных эффектов и анимаций: от движения ткани и систем частиц до погодных эффектов.
Например, так выглядит простой эффект дождя в Soldiers Inc: Mobile Warfare:
Написание шейдеров.Как правило, Technical Artist понимает, как должен выглядеть и работать тот или иной ассет. Часто стандартных шейдеров Unity недостаточно, чтобы добиться желаемого результата. В этих случаях приходится писать свои. Также многие шейдеры приходится создавать в процессе работы над визуальными эффектами.
Настройка различных ассетов в проекте.Одно из главных достоинств Unity как технологии — наличие весьма функционального редактора и массы возможностей для его расширения. Как следствие, многие задачи в процессе разработки вовсе не требуют написания кода, но при этом являются важным аспектом работы. С какой скоростью должен бежать персонаж? Какими должны быть ограничения у камеры? Как долго нужно подсвечивать эту кнопку? Как правильно организовать очередь отрисовки спрайтов?
Оптимизация производительности.У нас в студии именно Technical Artist — один из наиболее осведомленных людей в системе рендеринга в Unity и особенностях графики в наших проектах, поэтому оптимизации с точки зрения GPU ложатся на нас.
Разработка вспомогательного инструментария.Чтобы ускорить скучную и монотонную часть работы, ее можно автоматизировать. Это могут быть инструменты для 3ds Max или Maya. В Unity, например, это написание генераторов ландшафта или утилит для импорта файлов.
Так выглядит редактор карты для Soldiers Inc: Mobile Warfare, созданный совместно с нашими разработчиками:
Настройка анимации, работа с деревьями анимаций.Обычно это касается анимации персонажей и их настройки в Unity. Чтобы всё работало должным образом, часто нужно писать дополнительные скрипты, управляющие анимацией или реагирующие на нее.
Создание прототипов.Создавать прототипы для новых игровых фич (или даже для новых игр) можно силами практически только Technical Artist. Часто одному человеку сделать небольшой прототип быстрее и проще, чем задействовать для этого разработчиков и художников. Когда речь заходит о создании более сложных прототипов (новая игра), то этим занимаются целые команды, и Technical Artist практически всегда входит в них.
У вас может сложиться впечатление, что Technical Artist — это специалист, который понемногу умеет делать разные вещи, но хорошо не умеет делать ничего. Это не так. Чтобы предлагать различные пути решения проблем, нужно быть достаточно осведомленным во многих технических и творческих аспектах. Вам не обязательно уметь делать всё. Но если вы уже что-то делаете, то делайте это хорошо. Кроме того, у вас есть своя среда обитания: на берегу, где вода встречается с песком, то есть арт с кодом. И в этих условиях вы чувствуете себя лучше всего.
Порог входа в профессию
Для Technical Artist характерна комбинация технических и творческих навыков. Обычно люди приходят к этой специальности после работы в игровой или смежной отрасли на другой должности. Чаще всего это 3D Generalists, чуть реже аниматоры или VFX Artists, иногда даже программисты. Именно прошлая специализация во многом определяет, с какими задачами придется сталкиваться в работе. На мой взгляд, хорошая команда Technical Artists состоит из людей с разным профессиональным бэкграундом.
От 3D-специалиста Technical Artist отличается более глубокими техническими знаниями стандартных 3D-пакетов (обычно Maya или 3ds Max). Также нужно разбираться в каком-либо игровом движке, если мы говорим про геймдев.
Senior Technical Artist, как правило, знает один или несколько языков программирования: язык скриптинга для 3D-пакета (MaxScript, Mel/Python), основной язык игрового движка (C#, C++), язык шейдеров (GLSL, HLSL или CG в случае Unity).
Вместо выводов
Думаю, Technical Artist — одна из наиболее интересных профессий в сфере разработки игр. Почти все новые и интересные задачи и вызовы, с которыми сталкивается игровая студия, так или иначе нас затрагивают. Сегодня пишешь код, завтра делаешь анимацию персонажей, а послезавтра занимаешься моделингом. Возможно, кому-то не понравится такое положение вещей, однако я нахожу это весьма увлекательным.
Если вы только начинаете свой путь в игровой индустрии, любите решать сложные задачи и постоянно стремитесь узнавать что-то новое, обратите внимание на эту профессию, возможно, она вам подойдет.
Если вы опытный специалист и уже разрабатываете собственный игровой проект, пусть даже небольшой командой, вам определенно стоит подумать о найме подобного специалиста в команду. Впрочем, может оказаться, что его не так просто найти :)