Нейросети и Кодинг
Shazoo + GeekBrains
В детстве я с любопытством разглядывал динозавров: древние ящеры казались мне самыми страшными существами на Земле и оттого фильм "Парк Юрского периода" Стивена Спилберга казался чем-то невероятным и пугающим. В те времена чудовищ на экране создавала команда художников и декораторов, используя осязаемые материалы — пластик, картон, бумагу, а технологий там было по минимуму. Наступил цифровой век, и теперь монстров для кино и видеоигр рисуют на компьютере. Индустрия шагнула вперёд и вещи, невозможные в реальной жизни, выглядят на экране лучше, чем когда-либо прежде.
Все начинается с идеи, но от задумки создать видеоигру или снять фильм до воплощения планов в жизнь пройдёт немало времени и потребуется труд десятков или даже сотен специалистов. Авторы подготовят сценарий, художники нарисуют концепты, программисты напишут код, и на экране начинает твориться магия. Современное искусство и развлекательная индустрия — это не только приятное времяпрепровождение или повод для разговора. Сегодня сектор кино и видеоигр достигает оборотов в сотни миллиардов долларов. Он открывает желающим возможность стать частью сложных, но увлекательных процессов и это позволяет людям реализовать себя, сделать что-то классное и чувствовать себя комфортно в финансовом плане.
Выбор огромен, и каждый найдёт профессию себе по душе. Подготовка сценария потребует креативного подхода, а это удаётся не всем. То же самое касается моделирования, иллюстраций и раскадровок. Нужно уметь рисовать, а я, например, не умею этого от слова совсем. К счастью, в индустрии развлечений можно найти множество технических направлений, не имеющих прямого отношения к творчеству. Например, технический художник или писатель, программист движков, разработчик шейдеров, кодер, разработчик инструментов и даже специалист по качеству. Список доступных профессий поистине огромен, причем люди вне индустрии о многих даже не слышали. А ведь это один из первых шагов на пути поиска своего дела — необходимо знать, какие есть варианты и в чем их суть.
Один человек может долго и упорно трудиться над кодом пытаясь добиться нужного эффекта — чтобы внутри видеоигры вода текла по разным поверхностям с разной скоростью и траекторией в зависимости от типа покрытия. На камнях капля ведёт себя иначе, чем в песке или на траве. Неочевидная задача требующая усердия и нестандартного мышления, но именно такие детали делают видеоигры и фильмы по-настоящему живыми. Особенно ярко подобная работа видна в проектах ААА-класса вроде фильма "Мстители: Финал" или игры The Last of Us. Part II. Кроме этого, талантливые технические специалисты двигают индустрию вперёд, изобретая новые способы показать что-то на экране, совершенствуют технологию, делают ее понятной и удобной.
В области видеоигр так вовсе начинается новый этап. PlayStation 5 и Xbox Series X выходят в ближайшие дни, и для создания игр нового поколения потребуется еще больше профессионалов всех уровней и направлений.
Осведомленность помогает бороться со страхом перед смутным будущим, поэтому сегодня давайте вместе рассмотрим ряд технических областей. Возможно, вы думаете о смене профессии, или еще учитесь в университете, но видите перспективы в индустрии развлечений? Может быть, что-то из этого вдохновит вас сделать первый шаг и уже через несколько лет про ваш проект будут выходить новости на Shazoo!
Выбираем специальность
Сердце и мозг — два центральных органа в организме человека. Они отвечают и поддерживают работу всего организма. Мозг отдает сигналы, сердце качает кровь. Любая видеоигра — это такой же живой организм, и ей требуется основа — движок. За его работу и функциональность отвечает кодер движка. Эти программисты пишут алгоритмы, с помощью которых остальная команда реализует идеи: герой бежит, стреляет, взаимодействует с окружающим миром, где меняется погода, работает цикл дня и ночи. Список можно продолжать бесконечно.
Написать движок с нуля — огромный труд. Потребуется очень много времени, но воспринимать эту задачу как нечто недостижимое будет ошибочно. Хорошей точкой входа в профессию помимо обучающих курсов будет внимательное изучение принципов работы существующих игровых движков. Многие так и начинают — с модификации уже существующих технологий, добавляя к ним что-то новое. Например, трассировку лучей или шейдеры жидкости в бутылках.
К слову, большинство современных видеоигр создаются именно так: программисты берут готовый движок и модифицируют его под свои нужды. Например, серия Batman Arkham работает на значительно переработанном Unreal Engine 3, а не Unreal Engine 4. При разработке дебютной игры с заголовком Asylum разработчики из студии Rocksteady взяли за основу UE3 как один из наиболее продвинутых, оптимизированных и функциональных движков. Позднее, для Arkham City его инструментарий и функционал расширили, исходный код адаптировали для открытого мира.
Позже началась работа над Batman Arkham Knight и перед разработчиками встал вопрос о переходе с третьей версии на Unreal Engine 4. Переход не состоялся — иерархия и архитектура требовала серьезных доработок, что угрожало значительными задержками. В целях экономии времени и ресурсов использовали UE3 после добавления необходимого функционала. Таким образом за шесть лет программисты почти с нуля переписали уже существующий движок и значительно улучшили его.
В современной игровой индустрии разработчики активно используют движки, такие как Unreal и Unity как наиболее универсальные. Они включают визуальную среду разработки и возможность создавать межплатформенные проекты (поддерживаются около 25 платформ, от мобильных до консолей и ПК). Для создания игр Unity используют как независимые разработчики, так и крупные компании.
Список топовых проектов, созданных на Unity:
- Cuphead
- INSIDE
- Firewatch
- Ori and The Blind Forest
- Subnautica
- Monument Valley
- Pillars of Eternity
- Beat Saber
- Night in the Woods
Сегодня этот движок пользуется популярностью среди разработчиков всех масштабов. Его используют и в других направлениях, вроде кинематографа, архитектуры и для создания симуляций.
Второй важный участник рынка — Unreal Engine. Уже несколько поколений версии этого движка используются разработчиками топовых игровых студий, а названия игр известны всем:
- Street Fighter V
- Gears of War 4
- Star Wars Jedi: Fallen Order
- Fortnite
- S.T.A.L.K.E.R. 2
Пятая итерация движка от Epic Games имеет все шансы стать самой значимой технологией в грядущем игровом поколении. Разработчики полностью переписали систему чтения и записи информации на жестком диске ради эффективной работы с SSD накопителем PS5. Epic утверждает, что технология Nanite позволит движку автоматически масштабировать модели для качества и производительности. Это избавит разработчиков от ручной работы по созданию нескольких версий моделей с различным уровнем детализации — достаточно использовать оригинальную высокополигональную модель из ZBrush или другой программы, и движок самостоятельно разберется с различными версиями. Учитывая, как много времени может уходить на создание всех необходимых ассетов, Unreal Engine 5 способен значительно освободить дизайнеров и моделлеров для более важных задач... вроде работы над контентом. Подход Unreal Engine 5 к освещению под названием Lumen также способен значительно упростить работу художников, позволяя им использовать освободившееся время для решения креативных задач.
Если подобные технологии станут стандартом для индустрии, то художникам не придется тратить недели и месяцы на "запекание" освещения на среду, чтобы получить качественную картинку.
Полноценный релиз Unreal Engine 5 запланирован на конец 2021 года, так что сейчас самое подходящее время взяться за изучение актуальной версии. К запуску движка как раз наберется необходимый набор умений.
Еще одна профессия, которая не так заметна, но заслуживает славы — системный администратор и архитектор. Труд этих специалистов обеспечивает бесперебойную работу инфраструктуры сетевых игр. Например, студии вроде Riot Games и Blizzard с их помощью оптимизируют сетевой код Valorant и Overwatch. Все ради того, чтобы мы с вами получили лучший игровой опыт из всех возможных. Очередная головоломка для команды архитекторов Blizzard начнется 27 октября, в день релиза дополнения Shadowlands для World of Warcraft. Технарям предстоит перераспределить нагрузку на сервера и отладить порядок входа в игровые миры, чтобы мы с вами не ждали по 2 часа в очередях.
Наравне с архитекторами трудятся разработчики сервисных систем. Их услугами активно пользуются не только гиганты, вроде Microsoft и Sony, но и небольшие команды.
Вспоминайте о них каждый раз, когда заходите в PlayStation Store и Xbox Store. Они же оптимизируют и унифицируют код, благодаря которому Netflix одинаково хорошо работает на обеих консолях, Smart TV, смартфонах, планшетах, PC и Mac. Чтобы влиться в команду к этим классным ребятам, нужно знать языки программирования, такие как Python или Java.
У всей этой неочевидной на первый взгляд "магии" есть и обратная сторона, видимая глазу. Речь, конечно об интерфейсах. Над ними работают UI и UX-дизайнеры.
Первые пишут код, дизайнеры рисуют красивые иконки и кнопки, а UX-специалисты придумывают, как сделать интерфейс практичным. Задача этой команды — изобрести лучший интерфейс для видеоигры или программы: простой, универсальный, понятный и при этом красивый. Эти люди создали приятный и удобный интерфейс Overwatch и The Witcher 3. Благодаря им нам удобно использовать внутриигровой инвентарь Diablo 3 и экспериментировать с рецептами в Breath of the Wild. А в повседневной жизни они постоянно улучшают навигацию Twitter… или перегружают внешний вид Facebook.
Программисты, администраторы, архитекторы, дизайнеры — каждый начинает свой путь по-разному и погружается в профессию, которая ему по душе. Работы для профессионалов этой сферы сегодня хоть отбавляй. Первый шаг в этих профессиях часто делают в стартапах, развлекательных порталах вроде Shazoo или на фан-сайтах, а, набравшись опыта, поднимаются на ступеньку выше и получают приглашение на работу в крупных студиях.
Технические профессии вне времени и обстоятельств
2020 год часто испытывал нас на прочность: пандемия, самоизоляция, кризис в экономике и, как следствие, огромные убытки для бизнеса. Наиболее устойчивыми оказались секторы, в которых работодатели смогли организовать удаленную работу для своих сотрудников и не потеряли возможность продавать свой продукт в силу специфики потребления. Игровая индустрия, как и любой другой бизнес, получила урон, но он был связан с необходимостью перестроиться, а не с потерей целевой аудитории. С точки зрения прибыли, пандемия стала золотой жилой для большинства игровых компаний. Достаточно взглянуть на последние финансовые отчеты компаний:
Студии массово перевели людей на удаленку, многие специалисты по всему миру продолжают работать из дома. В этом заключается одна из уникальных особенностей таких профессий — добиваться результата можно находясь где угодно, нужно лишь мощное железо и доступ в интернет. Главное не слишком расслабляться, сидя за компьютером в домашней одежде и с котом на коленях.
Спрос на кодеров, художников и дизайнеров стабильно высок. Игр, фильмов и сериалов выходит с каждым годом все больше, и спрос на специалистов в этом направлении будет расти по мере того, как автоматизация проникает в цифровые и развлекательные индустрии экономики.
Нас постоянно пугают нарастающей мощью и влиянием нейросетей: то робота-грузчика покажут, то беспилотный автомобиль. Безусловно, нельзя отрицать технический прогресс, но прежде, чем роботы и машины смогут полноценно заменить человека, пройдёт ещё очень много времени. Технические специалисты в этом плане вообще особая категория. Сегодня нейросеть способна написать довольно хорошее персональное письмо — сразу вспоминается герой Хоакина Феникса из фильма "Она". Однако способен ли ИИ подобрать правильные слова? Далеко не всегда. Что уж говорить о программировании, где зачастую от исполнителя требуется недюжинная фантазия, чтобы изобрести решение в условиях ограниченных ресурсов. Или творчество — помните фильм "Я — робот" с Уиллом Смитом в главной роли?
Ты всего лишь машина, только имитация жизни. Робот сочинит симфонию? Робот превратит кусок холста в шедевр искусства?
В фильме робот отвечает герою вопросом на вопрос:
А вы?
Современный ответ — да. Человек все еще остается единственным существом, чья интеллектуальная работа способна создать нечто неповторимое и прекрасное. ИИ развивается, но до времён, когда нейросети напишут новую "Войну и Мир", снимут "Гражданина Кейна" или напишут песню вроде Imagine пройдёт много времени. Впрочем, в этом также можно принять непосредственное участие и заняться изучением машинных алгоритмов для обучения нейросетей, а впоследствии программировать новые или модифицировать существующие.
Нейросети — будущее?
Определенно — да. Сейчас в этой сфере происходит много интересного, и техническим специалистам есть чему поучиться.
В 2017 году нейросети перешли важный рубеж и научились неплохо имитировать изображения, практика тут же получила применение в "дипфейках". Технология получила название два с половиной года назад, позаимствовав его у пользователя реддит. Суть заключалась в простой замене одних лиц на другие. Процесс можно сравнить с наложением виртуальной маски путем отслеживания ключевых точек на лице. Но эффект достигался совершенно другим способом. Для дипфейков применялось глубокое обучение — один из разделов машинного обучения, полагающегося на искусственные нейросети.
С тех пор программисты ИИ добились значительных успехов: процесс стал проще, результат реалистичней. Сегодня Технологию часто используют ради развлечения: накладывают лица одних голливудских звёзд на лица других. Так на Эмили Блант примерили костюм Чёрной вдовы, Киану Ривз стал самураем в Ghost of Tsushima, а Илон Маск спел песню "Трава у дома" группы Земляне.
Нейросети смогут генерировать окружающую среду, персонажей в играх, локации, которые не выглядят искусственными и сложные, многоуровневые квесты. Без работы разработчики в любом случае не останутся. Кому-то будет необходимо обучать, контролировать и настраивать процессы.
То же касается аниматоров — художникам не придется тратить месяцы на оживление персонажей. Достаточно будет установить ключевые точки и описать цель. Специально обученная нейросеть заполнит пробелы и отметит моменты, требующие ручной доработки.
А самое потрясающее — что вам не требуется быть семи пядей во лбу для освоения этой техномагии. Первые шаги в этой профессии можно сделать за 12 месяцев: освоить базис, углубиться в математический анализ и теорию вероятности. Следующим этапом станет решение базовых задач с помощью машинного обучения, например, построение прогнозов. Полученный фундамент в дальнейшем можно использовать для развития своего потенциала. Пока ты осваиваешь что-то новое, технологии уходят далеко вперед и тебе всегда будет к чему стремиться.
С чего начать?
Интернет дает почти безграничные возможности. Если вы решили освоить новую профессию, сегодня можно сделать это не выходя из дома. На просторах сети есть несколько крупных образовательных проектов, созданных профессионалами, с их помощью любой желающий может погрузиться в тему и получить базовый набор знаний.
Давайте поговорим подробнее о каждом из них.
Codeacademy — интерактивная онлайн-платформа для изучения языков программирования. В рамках этого проекта можно черпать знания по 12 языкам программирования, от самых простых до более сложных. В каталоге есть HTML и CSS, Python, JavaScript, Ruby. Swift, C++ и другие. Кроме того, на сайте можно пройти уроки по веб-дизайну, машинному обучению, Data Science и другим областям.
Coursera — проект, основанный преподавателями Стэнфордского университета. На этой платформе публикуются образовательные материалы в виде набора онлайн-курсов. За 8 лет существования проекта на Coursera зарегистрировались более 60 миллионов человек, а количество курсов перевалило за отметку в 5 000 по 400 специализациям. Сегодня в проекте участвуют полторы сотни образовательных учреждений со всего мира. Продолжительность курсов примерно от шести до десяти недель, с 1—2 часами видеолекций в неделю, курсы содержат задания, еженедельные упражнения и иногда заключительный проект или экзамен.
freeCodeCamp — платформа для изучения HTML, CSS, JavaScript, Git, Node.js, React.js от азов до более продвинутых уровней. Пользователь изучает теорию, затем применяет ее на практике — пишет код в специальном редакторе, а система его проверяет.
Самостоятельное изучение технической профессии требует от человека большой усидчивости и больших вложений времени. Это связано в первую очередь с необходимостью самому найти точку входа в каждую отдельно взятую тему, получить знания, разобраться в деталях и желательно при этом попытаться применить изученное на практике. При таком подходе человек получает много неструктурированной информации и зачастую упускает нюансы. В случае с гуманитарными дисциплинами пробелы в знаниях можно компенсировать в короткие сроки за счет альтернативных источников информации. Для технической профессии недостаток теоретических знаний или неумение трансформировать усвоенное в практическую плоскость лишает ваш труд всякого смысла. Вы напишете программу, а она просто не будет работать. Созданный сайт будет медленно работать. Разработанный интерфейс на деле окажется неудобным, кривым или неверно спроектированным. Вы об этом никогда не узнаете и будете повторять ошибки.
Что же делать? Выход есть.
Как лучше всего научиться технической профессии?
Образовательная экосистема GeekBrains уже около 5 лет помогает осваивать технические профессии, предоставляя в одном месте все, что требуется для получения новых навыков. Одна из главных отличительных черт GeekBrains — системное и долгое обучение. В зависимости от сложности длина курса может занимать более года в адекватном темпе, который не требует задвигать все другие дела. А проектно-ориентированный подход гарантирует результаты и работы для портфолио, что значительно упрощает последующее трудоустройство.
Для желающих начать свой путь в программировании GeekBrains предлагает выбрать курсы по следующим направлениям:
- Разработка на Python
- Веб-разработка
- Тестирование ПО
- Искусственный интеллект и машинное обучение
- Разработка на Java
- iOS-разработка
- Android-разработка
- Frontend-разработка
- Data Engineering
- DevOps
В системе GeekBrains в обучении обязательно участвуют живые люди, а не обезличенные тренажеры. Курсы и мастер-классы проводят преподаватели и спикеры, за плечами у которых многолетний опыт в профессии и участие в крупнейших IT-проектах по всему миру.
Курсы выстроены по системе от простого к сложному. Участник вебинара получает от преподавателя теоретические основы и контекст использования этой информации — это особенно важно. К примеру, вам расскажут не только как написать определенный модуль кода, но и объяснят в каких ситуациях его лучше всего применять и как он взаимодействует с другими элементами системы. В рамках каждого урока занятия в GeekBrains отвечают на три главных вопроса: Что? Где? Когда? При самостоятельном обучении через бесплатные ресурсы велика вероятность не получить ответ на два последних вопроса и упустить детали.
Для закрепления материала в конце каждого урока ученики получают практическое задание, которое впоследствии проверяет и комментирует преподаватель. Такой подход позволяет оценить, насколько усвоен материал и получается ли у вас применить его на практике.
На протяжении всего курса участники получают поддержку преподавателя, одногруппников и личного наставника, которого для каждого учащегося назначают индивидуально. Поддержка особенно важна. У вас всегда будет возможность обсудить возникший вопрос с другими слушателями курса и решить проблему очень быстро.
По результатам обучения выпускники получают диплом о профессиональной переподготовке или удостоверение о повышении квалификации, а также именной электронный сертификат в экосистеме GeekBrains и Mail.ru Group, однако гораздо важнее другое. Создатели GeekBrains стремились сократить оторванность современной системы образования от реальных потребностей рынка труда. Нетворкинг — ключ к успеху. Для участников создана экосистема, где каждый может не только изучить новую профессию, но и обзавестись деловыми контактами, которые помогут развиваться в будущем.
Любой пользователь на сайте может заявить о своем проекте в разделе "Карьера" и набрать команду единомышленников для совместной работы. Таким образом, сообщество GeekBrains поможет превратить замысел в реальное приложение, сервис или продукт.
В рамках продолжительных курсов GeekBrains сотрудничает с сотнями компаний, которым интересны стажеры, и также сама проводит стажировки, чтобы вы получили как можно больше практического реального опыта.
Сегодняшняя неопределенность сковывает, вызывает беспокойство и даже панику. Особенно если вы находитесь в секторе, который может стать следующей жертвой автоматизации.
Заходить в тупик или сталкиваться с непреодолимой преградой нормально, все мы рано или поздно оказываемся в такой ситуации. Но нас определяет не тот путь, который завел сюда, а последующие действия и шаги. Так что спросите себя — кем вы хотите быть и готовы ли вы пойти на необходимое для достижения цели.
Читайте больше и проходите тест в нашем хабе GeekBrains.
Иллюстрация в шапке: Vrihedd Art
- Вакансии: Firaxis Games ищет разработчика с опытом сетевых игр
- Выпущена предварительная версия Unity 6
- Бывший босс Zynga и EA возглавил Unity