Геймдев
#истории

«Став Unity-разработчиком, обрёл стабильность»: как Муртаз из продаж перешёл в разработку

Муртаз не побоялся сменить профессию и после множества попыток устроился в игровую студию. Теперь он создаёт сразу несколько игр.

Иллюстрация: Sky Assault Squad / freepik / Unity / Colowgee для Skillbox Media

Муртаз Гоциридзе

Россия, Томск



Достижения

Поучаствовал в GameBox, научился круто оптимизировать игры и устроился джуном в студию.


ссылки


Муртаз рассказал:


— Муртаз, как изменилась твоя жизнь после смены профессии?

— Я стал спокойнее. Раньше работал продажником и жил в постоянном стрессе: выполненные задачи не всегда обеспечивали хорошую зарплату, чаще — лишь шанс на неё. Самая частая причина: клиент задерживал платёж и сделка переносилась в следующий отчётный период.

Став Unity-разработчиком, обрёл стабильность. Выполняю задачи — получаю заслуженные и фиксированные выплаты. Музыку в уши, покодил, закрыл ноутбук и пошёл по своим делам. Моя цель — создать качественный продукт, а сколько людей его купят — забота других специалистов.

Муртаз с женой и сыном
Фото: личный архив Муртаза Гоциридзе

«Более 10 лет работал в продажах, но выгорел»

— До разработки игр на Unity ты успел попробовать себя в разных профессиях. Расскажи о своём пути.

— Да, обучение всегда было моим главным хобби. Если сложить все дипломы, получится около шести штук: среди них и оператор ЭВМ, и радиомеханик, и даже массажист. Кстати, именно во время обучения на технические специальности я освоил языки программирования прошлого века — BASIC и Delphi — и понял логику написания кода.

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

Но всё же основой профессией на долгие годы (более 10 лет!) стали продажи. Я работал торговым представителем завода по производству пластмассы, а затем — бренда высококачественной спецодежды; супервайзером в крупном дистрибьюторе бытовой химии; бренд-менеджером завода по производству филаментных источников света и, наконец, продавал металл.

Муртаз рассказывает о продукции компании источников света
Кадр: канал LEADlight Group / YouTube

— Что было самым сложным в продажах, кроме нестабильной оплаты?

— Очень много общения с людьми — оно изматывает. Если раньше я воспринимал любые трудности как челлендж («Что значит не будешь брать у меня металл? Возьмёшь, да ещё как!»), то к концу карьеры выгорел дотла («Не хочешь брать металл? Ну не бери»).

Выгоревшего продажника можно списать в «утиль»: он не принесёт компании прибыль.

— Как считаешь: как опыт продаж поможет тебе в новой профессии?

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

«Материшь Warface? А ты попробуй создать что-то сам»

— Когда и как ты впервые столкнулся с Unity-разработкой?

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

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

Игры, которые сам люблю и искренне советую: War Thunder, Wolfenstein, Doom. Они идеально оптимизированы и прорисованы — есть чему учиться.

Муртаз играет в Warface
Скриншот: Warface / Crytek

— Интересный импульс! С чего начал погружение в профессию?

— Сперва прошёл интенсивы Skillbox по двум игровым движкам: Unity и Unreal Engine. Порог входа у первого оказался ниже: язык C# гораздо проще С++ — поэтому и выбрал дружелюбный Unity 🙂

— В чём существенная разница этих двух движков?

— Кроме языка, особой функциональной разницы нет. Выбор зависит от конкретной задачи. Unity в 99% случаев используют для разработки мобильных приложений (казуальные игры), Unreal — для проектов полного цикла (AAA).

Разработка мобильных игр на Unity — оптимальный и перспективный вариант для входа в профессию. Согласно аналитике, за 2022 год объём российского рынка мобильных игр превысил 1,2 миллиарда долларов.

При этом важно понимать, что каждый движок самодостаточен. Пока вы не стали сеньором в Unity, можно развиваться и развиваться. В том числе создавать масштабные игры для компьютера. Знаменитую Escape from Tarkov собрали именно на Unity. По такому пути я и хочу пойти.

Что такое мультипоток и почему он так важен

— А столкнулся ли ты уже с какими-то недостатками Unity?

— В Unity нет мультипотока: если его не настраивать вручную, оперативная память забьётся на раз-два.

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

— У любого ноутбука есть техническая характеристика: например, «4 ядра, 8 потоков». Потоки — это каналы связи, по которым процессор обменивается данными с другими системами.

Среди всех потоков всегда есть главный, а остальные просто идут рядом. При мультипоточности часть инструментов и действий автоматически перенаправляются в другие потоки, что позволяет ноутбуку выполнять больше работ одновременно. Вот у Unity мультипотока нет, и всё «кушает» главный. В него попадают и скрипты, и отрисовка, и эффекты — и он «раздувается».

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

— А тебе необходимо всё это вручную настраивать…

— Да. Чтобы оперативная память не забилась и не тормозила работу игры, я из главного потока достаю нужные данные, распределяю их по другим потокам и в конце вновь соединяю в главный (так надо, не спрашивайте почему 🙂).

— Неужели создатели не могут выпустить обновление Unity, где настроят мультипоточность?

— Всё не так просто. Если мультипоточность изначально не заложена в движке, её сложно добавить в последующих обновлениях. Советую всем обучиться ручному распределению потоков — пригодится для оптимизации игр и разовьёт внимательность.

Изучите библиотеки Job System и Thread. Показательный пример из моего опыта: одна и та же игра с 500 единицами контента показывала 40 FPS, когда всё находилось в одном потоке, и уже 300 FPS, когда при помощи библиотеки Job System я распределил единицы в разные потоки.

Параметр FPS — количество обработанных кадров в секунду. Чем параметр выше, тем лучше. Минимум, ниже которого стыдно опускаться, — 60 FPS.

«В рамках GameBox наша команда создала постапокалиптический симулятор полёта»

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

— Никаких. Я высшую математику в институте сдавал, не посещав лекции, — о каких страхах вообще речь 🙂 Нужно легче ко всему относиться — вот мой главный подход по жизни. Схожее наставление я дал себе и перед стартом курса: «Муртаз, просто развлекайся».

— И как далеко зашло развлечение?

— За восемь месяцев я окончил курс и ближе познакомился с профессией Unity-разработчика. Базово освоил язык C#, разобрался со структурой внутри него (что такое FixedUpdate, а что такое LateUpdate) научился использовать основные инструменты. Диплом получить не успел — курс обновили и добавили новые модули, до которых пока не добрался.

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

— Удалось найти единомышленников на курсе?

— Да. Комьюнити обрёл интересным образом: вместе со студентами других направлений прошёл в GameBox, где из нас сформировали команды и под руководством экспертов дали проект на разработку.

Моя группа создавала игру для ПК «Небесная эскадра». Сейчас проект в заморозке, но мы с ребятами часто переписываемся в Discord, обмениваемся идеями.

Обложка игры «Небесная эскадра», которую Муртаз вместе с командой создал в рамках GameBox
Скриншот: «Небесная эскадра» / Broken Glass Games

— Ого! Пожалуйста, расскажи об игре побольше. В чём её основная идея?

— «Небесная эскадра» — симулятор полёта не боевых кораблях в мире экологического постапокалипсиса. Игра совмещает в себе два жанра: top-down-шутер (вид сверху) и tower defence (расправа с постоянно наступающими врагами).

С помощью клавиатуры и мыши играющий управляет кораблём-разведчиком. Задача: осматривать окрестности, перевозить контейнеры с полезными материалами, сражаться с автономными машинами и умело пилотировать.

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

— За что ты отвечал при создании игры?

— Я создавал и настраивал погодные эффекты: торнадо, молнии, грозы, движение облаков, смену дня и ночи. Также на старте занимался оптимизацией игры. Исключительно для себя: без неё мой слабый комп ничего не запускал 🙂

«На коленке» слепил трейлер для проекта. Сам написал музыку, текст (озвучила нейросеть) и склеил
Видео: канал Murtaz Gotsiridze / YouTube

«Батчинг творит чудеса»: как оптимизировать игру в пару кликов

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

— Батчинг! Ему можно обучиться за час, но это однозначный мастхэв. Он позволяет оптимизировать игру, не касаясь ни кода, ни визуала — достаточно правильно выставить настройки.

— Как работает батчинг?

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

— А можешь привести пример из своего опыта?

— Конечно. Сейчас в свободное время я развлекаюсь над личным проектом — создаю top-down-шутер, где в закрытой комнате герой должен отстреливаться от сотни монстров.

Благодаря батчингу (когда противники умирают, их тела дублируются) и использованию мультипотока (перевёл отрисовку 200 летающих по экрану пуль из главного канала в другой) я повысил FPS игры в три раза — с 30 до 100!

«Я люблю игры „в мясо“, а их в последнее время мало. Вот и решил создать. В первой версии даже показывал этот проект на курсе»
Видео: канал Murtaz Gotsiridze / YouTube

— Круто! А какие ещё полезные инструменты бывают?

— Параллельно изучаю рирпроекцию — это приём пришёл в разработку из игр 1990-х, а те, в свою очередь, позаимствовали его из фильмов 1970-х. Инструмент позволяет искусно обмануть смотрящего: отобразить плоские элементы как трёхмерные.

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

«Джунов практически не ищут»: о ситуации на рынке и работе

— Как скоро после окончания курса ты нашёл работу?

— Мой путь до трудоустройства оказался тернист и занял около полутора лет. Пробовал подходами: уволюсь с одной работы продажником — откликаюсь на вакансии Unity-разработчика — нигде не берут, деньги заканчиваются — возвращаюсь к работе в торговле. И так несколько раз.

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

«В качестве тестового задания я создал эту игру, и меня взяли»

— А как в целом сейчас обстоит ситуация на рынке Unity-вакансий?

— Для джунов всё скверно — нас практически не ищут. Ни в Томске, ни во всей России. А вот вакансий для мидлов предостаточно. Таким же начинающим, как и я, советую откликаться на всё подряд, пробовать вновь и вновь. Просто быть готовыми, что 99 заявок из 100 отклонят.

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

— Расскажи! Как же ты удивил коллег на новом месте?

— Я оптимизировал разрабатываемую игру и поднял её FPS в два раза. Помню, руководитель подошёл ко мне с изумлённым лицом:

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

— А я и не знал, что умею 🙂

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

— Сейчас ты работаешь джуном. Что необходимо улучшить, чтобы дорасти до мидла?

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

— А какие ещё профессиональные цели ставишь перед собой?

— Хочу, чтобы наша с друзьями мобильная игра «Викинги» увидела свет. За месяц мы собрали MVP и теперь ждём мнения потенциального покупателя. Если дадут добро, следующая цель — добиться показателя в 100 FPS. Это позволит игре запуститься даже на очень дешёвом телефоне и увеличит целевую аудиторию продукта.

Нейросети для работы и творчества!
Хотите разобраться, как их использовать? Смотрите конференцию: четыре топ-эксперта, кейсы и практика. Онлайн, бесплатно. Кликните для подробностей.
Смотреть программу
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована