как стать разработчиком игр с чего начать
Как стать разработчиком игр? 8 ответов от геймдевелоперов
Авторизуйтесь
Как стать разработчиком игр? 8 ответов от геймдевелоперов
Как стать разработчиком игр с нуля, да ещё и востребованным? Универсального рецепта нет, но есть костяк из знаний и навыков, на который можно опереться. О том, что нужно знать, чтобы попасть в сферу геймдева сегодня, рассказывают сами разработчики игр.
С чего начать?
В первую очередь, нужно начать с малого — разобраться в том, как устроены игры в целом. Для быстрого старта в разработке вам помогут готовые движки. Самый популярный и довольно простой игровой движок — Unity, который содержит множество инструментов, облегчающих разработку (посложнее и серьёзнее — Unreal Engine — C++).
Чтобы начать разработку, вам необходимо иметь хотя бы базовые знания программирования. В частности, для движка Unity нужно знание языка C#. То есть должно быть понимание основ ООП, основных структур данных. Если говорить про среды разработки, то это могут быть как MS Visual Studio, так и другие сторонние решения, где вам удобно будет писать код.
Как выстроить план обучения?
Всё обучение должно быть выстроено, в первую очередь, на практике — делайте много небольших и законченных проектов. На старте такие проекты можно найти в различных уроках, курсах, а после уже пытаться придумывать свои мини-игры. Не старайтесь сделать сразу большой проект мечты — без базовых знаний на таких проектах обучаться будет значительно тяжелее и дольше. Пусть у вас будут вместо игроков и врагов разноцветные кубы и шарики, зато вы поначалу не будете отвлекаться на более сложные детали, такие как анимация, эффекты. Постепенно научитесь работать с ресурсами, выстраивать простые сцены, попробуете работу как в 2D, так и в 3D.
А что насчёт книг?
Чтобы стать разработчиком игр, нужно много практики, но это не значит, что её не стоит подкреплять теорией. Стоит отметить, что подавляющее большинство хороших книг по геймдеву можно найти только на английском языке. Держите настоящую дорожную карту по геймдеву от одного из пользователей GitHub:
Каждый из этих блоков включает в себя ряд книг по разработке игр, которые позволят двигаться в нужном направлении.
Особой популярность пользуются ещё такие книги по геймдеву:
Foundations of Game Engine Development, Volume 1: Mathematics
The first volume of Foundations of Game Engine Development discusses the mathematics needed by engineers who work on games or other types of virtual simulations. The book begins with conventional treatments of topics such as linear algebra, transforms, and geometry. Then, it introduces Grassmann algebra and geometric algebra to provide a much deeper understanding of the subject matter and highlight the places where traditional arithmetic with vectors, matrices, quaternions, etc., isn’t quite correct. Includes exercises.
Hands-On Unity 2020 Game Development: Build, customize, and optimize professional games using Unity 2020 and C#
Over the years, the Unity game engine has extended its scope from just being about creating video games to building AR/VR experiences, complex simulations, real-time realistic rendering, films, and serious games for training and education. Its features for implementing gameplay, graphics, and customization using C# programming make Unity a comprehensive platform for developing professional-level, rich experiences.
With this book, you’ll be able to build impressive Unity projects in a step-by-step manner and apply your knowledge of Unity concepts to create a real-world game. Complete with hands-on tutorials and projects, this easy-to-follow guide will show you how to develop your first complete game using a variety of Unity tools. As you make progress, you’ll learn how to make the most of the Unity Editor and create scripts using the C# programming language. This Unity game development book will then take you through integrating graphics, sound, and animations and manipulating physics to create impressive mechanics for your games. You’ll also learn how to code a simple AI agent to challenge the user and use profiling tools to ensure that the code runs in a performant way. Finally, you’ll get to grips with Unity’s AR Foundation for creating AR experiences for 3D apps and games.
By the end of this book, you’ll have developed a complete game and will have built a solid foundation using Unity’s tooling ecosystem to develop game projects of any scale.
Game Engine Architecture, Third Edition
In this new and improved third edition of the highly popular Game Engine Architecture, Jason Gregory draws on his nearly two decades of experience at Midway, Electronic Arts and Naughty Dog to present both the theory and practice of game engine software development. In this book, the broad range of technologies and techniques used by AAA game studios are each explained in detail, and their roles within a real industrial-strength game engine are illustrated.
New to the Third Edition
This third edition offers the same comprehensive coverage of game engine architecture provided by previous editions, along with updated coverage of:
This book is intended to serve as an introductory text, but it also offers the experienced game programmer a useful perspective on aspects of game development technology with which they may not have deep experience. As always, copious references and citations are provided in this edition, making it an excellent jumping off point for those who wish to dig deeper into any particular aspect of the game development process.
Что лучше, самостоятельная разработка игры или командная?
Создание игры самостоятельно потребует целого массива навыков и вещей, которым придётся обучиться, — так вы научитесь очень многому, но это и самый сложный путь. Также стоит осознать: скорее всего, первое, что вы сделаете, будет провалом. Но это нормально, так и должно быть: именно это и помогает учиться.
Стоит отметить, что первые шаги нужно делать самому, ведь как стать разработчиком игр и претендовать на должность, не имея за спиной соответствующего опыта? Если же вы не планируете вливаться в штат, а мечтаете стать разработчиком инди-игры и вести собственный проект, придётся набивать шишки самостоятельно.
Какие языки должен знать разработчик игр?
Если говорить о программировании, есть несколько основных языков. C++ — базовый язык программирования, на котором строятся почти все процессы на стороне сервера, он также может быть использован и в других задачах. Но также задействуется много других языков программирования: C++, Java, HTML5, CSS3, JavaScript, SQL — все они используются для разных целей.
Однако ввиду комплексности игр, люди упростили процесс, так что вам не обязательно погружаться во все сложности и нюансы каждого языка программирования (хотя это и полезно). Какой язык вам изучать — зависит от того, каким типом игр вы хотите заниматься и какой движок вы используете. В целом, самые большие игры с наиболее сложным контролем используют C++ в качестве основного языка программирования.
А какие инструменты нужно освоить?
После того, как научитесь делать совсем простые игры, разберитесь в параметрах сборки проекта на разные платформы, помимо Windows. Например, ещё и на Android. В новых версиях Unity с установкой можете сразу же поставить Android SDK и другие необходимые компоненты и модули. Для iOS чуть сложнее — установите соответствующий модуль для Unity. Также понадобится устройство на MacOS, где будете собирать проект в Xcode. Разработка под разные платформы позволяет взглянуть немного шире, выйти за рамки и встретиться с новыми проблемами и сложностями. Так, для мобильных платформ уже нужно учитывать нагрузку на ЦП, пытаться оптимизировать свой код, сцены и ресурсы. Здесь уже часто становится важным иметь понятия о сложности алгоритмов, а также более широкое знание о самих алгоритмах над различными структурами данных.
В момент разработки какого-нибудь проекта создайте репозиторий, выложите свой проект, например в GitHub, и научитесь пользоваться системой контроля версий Git. Здесь можно использовать различные удобные вам клиенты (SourceTree, GitHub Desktop и другие). Для начала достаточно освоить основные операции. Попробуйте поработать над проектом с кем-то ещё. Так как работа в команде является неотъемлемой частью процесса разработки, то можно ознакомиться с тем, как процесс взаимодействия происходит в командах, например, почитать, какие гибкие методологии разработки бывают, настройте для себя Kanban-доску и отслеживайте там свои задачи.
Как продвигать и монетизировать проект?
Когда у вас уже есть небольшой опыт, можно задуматься и о том, как же публикуются приложения. Проще всего сделать собственные аккаунты на Google Play или AppStore. Здесь стоит внимательно изучить требования к приложениям, технические детали, а также детально ознакомиться с админкой.
В дальнейшем стоит обратить внимание на использование различных SDK. Например, вы захотели добавить монетизацию в вашу игру на GooglePlay или добавить Play Services. Для публикации в Steam вам тоже потребуется столкнуться со Steam SDK. Опыт работы и подключения различных SDK ценится работодателями, тем более, если есть конкретные примеры удачного использования.
Что-то ещё?
В идеале ещё нужно иметь базовые знания по математике, линейной алгебре, геометрии. Работа над более сложными проектами требует большой внимательности, аккуратности. Для работы над сложными системами, для подготовки и реализации архитектуры игры желательно иметь понимание паттернов проектирования, и, опять же, не просто знать теорию, а научиться применять знания в рамках используемого движка. Есть ещё множество различных направлений, где можно углубляться и развиваться — от разработки шейдеров, написания своих модулей и библиотек, до попытки разработки своего простого движка на C++ (используя, например, библиотеку SFML).
В заключение
Перечисленное — лишь вершина айсберга, и чтобы стать разработчиком игр нужен не один год. На пути становления вы столкнётесь с уймой проблем, а лучшим способом их решить станет обращение к геймдев-комьюнити. Вот лишь некоторые из живых форумов и чатов, где можно задать интересующие вопросы:
Инструкция начинающего разработчика игр
В данной инструкции я попытался осветить основные моменты разработки игр. Инструкция будет полезна для людей, собирающихся заняться разработкой игр в роли лидера (главного разработчика и организатора).
Хочу отметить, что игры бывают разные – большие и маленькие, сложные и лёгкие, и поэтому для каждой игры эта инструкция верна в какой-то своей определённой степени. Охватить всё не удалось, но передать общие моменты, думаю, получилось.
И так Вы решили сделать свою игру, о чём Вам нужно подумать…
Думаем – нужно ли это тебе
Перед тем, как за что-то взяться, необходимо всё обдумать. А перед тем, как заняться разработкой игр, необходимо обдумать всё очень хорошо. Очень часто начинающие разработчики, достигнув определённых успехов в чём-то (сделал мод для игры, небольшой фан-сайт и пр.), начинают грезить созданием своей игры. Это происходит из-за того, что они имеют слабое представление о процессе разработки игр.
Я перечислю основные ошибки в их представлении:
Концепция и ТЗ
Когда-то давно я написал довольно неплохую статью о концепции проекта. За последние пару лет мои взгляды слегка поменялись, но суть осталась та же.
Контент
Я специально выделил этот раздел, так как он является решающим в процессе разработки игр. Под контентом понимается всё содержимое игры, с которым взаимодействует пользователь. Это графика (растровая, векторная, 3D), музыкальное и звуковое сопровождение, видеоряд, сценарий и текст. Также сюда следует добавить медиаматериалы, используемые для продвижения игры (реклама, банеры и прочие).
В английском языке есть такое понятие как «artist» обозначающие сразу художников, музыкантов, режиссёров, писателей и прочих творцов. К сожалению, в русском языке нет нормального аналога этого слова, поэтому я дальше буду использовать понятие «создатель контента».
Разберём основные моменты этого раздела.
Программирование
Как ни странно, создание программного кода для игр не является самой сложной задачей, но в тоже время и не является простой.
Тестирование
О тестировании начинающие разработчики обычно не задумываются, а зря, так как на него тратиться немногим меньше времени, чем на написание программной части. В этом разделе есть два важных момента:
Организационные моменты
Послесловие
Инструкция получилась большой, материала много. Крайне советую прочесть её начинающим разработчикам игр, так как, возможно, она поможет им избежать ошибок в будущем.
UPD: Статья получилась успешной, даже очень. Но в комментариях прослеживаются замечания по поводу отсуствия романтики и отвращения к играм. Поэтому я прокомментирую эти моменты.
Многие опускают тот факт, что статья для начинающих разработчиков игр, претендующих на роль лидера (первый абзац статьи). Не буду отрицать, что со временем, когда приобретаешь опыт разработки игр и жизнь складывается удачно, возвращается романтика и отвращение спадает. Но в самом начале, когда начинаешь с нуля, после того как столкнёшься с первыми серьёзными проблемами, эта романтика и любовь к играм исчезает ко всем чертям. Разработка игр — это не прогулка по ковровой дорожке в розывых очках, а блуждание в лабиринте Минотавра, где много тупиков.
Я не собираюсь своей статьёй вселять в начинающих разработчиков уверенность. Они должны знать, что путь разработчика игр сложен, что они могут встретить нерешаемые проблемы, что их нерализованный проект будет для них символом поражения.
Как попасть в геймдев, если ты ничего не умеешь
Самый верный способ достичь успеха в жизни и при этом получать удовольствие — превратить увлечение в работу. Именно так поступили те, кто решил не только играть, но и делать игры. Как этого добиться, если ты ничего не умеешь (но очень хочешь!), рассказывает Сергей Волков, руководитель геймдев-практики в Spice Recruitment.
Что делать?
Решите, точно ли вам это надо
Запомните сразу и накрепко, что игрострой — это серьезный бизнес и огромная состоявшаяся индустрия, а не просто возможность зарабатывать на хобби. Работать наверняка придется сверхурочно, результат придет не очень скоро, а попытка сделать русский Fallout скорее всего провалится. Если вы жаждете стабильности, высоких зарплат, удобного графика и внятного карьерного роста — вам явно не сюда. Создание видеоигр — для тех, кто хочет каждую ночь засыпать с мыслью «завтра меня ждет новый вызов».
Разберитесь в теме
Первым делом нужно понять, кем и над какими проектами вы хотите работать. Шанс, что вас воспримут всерьез, прочитав в письме «возьмите меня кем угодно, я готов мыть полы и варить кофе», ничтожно мал.
Вы можете делать казуальные и мобильные игры, или маленькие, но независимые творческие произведения, или крупные игры класса ААА, или. стать фрилансером. Стартовая должность и специфика компании определят ваш карьерный путь на годы вперед, поэтому выбирайте вдумчиво. Разберитесь, чем вам предстоит заниматься (тут все может быть далеко от ваших ожиданий), чему нужно научиться и каковы профессиональные перспективы.
Здесь могут помочь тематические ресурсы. Есть подкасты, где люди из индустрии обсуждают особенности профессии: из русскоязычных с ходу выделим небезызвестный «Как делают игры», из англоязычных — к примеру, The Game Design Round Table, посвященный геймдизайну.
Можно изучить записи докладов с конференций вроде очевидной, но жутко дорогой GDC, КРИ и других. И даже самостоятельно выбраться туда (на сайте Dev Night недавно появился удобный агрегатор мероприятий по всем городам). В последнем случае вы можете еще и пообщаться с живыми людьми из индустрии, что очень полезно.
Готовьтесь постоянно учиться
В игровой индустрии высокий входной барьер. Необходимо учиться, качать навыки, собирать портфолио и только после этого начинать карьеру, причем не в Blizzard, а в местах попроще. Что бы вам ни говорили, в жизни мало кто ищет простых энтузиастов, ведь это совсем не гарантирует, что код будет написан в сжатые сроки и с ограниченным бюджетом.
К счастью, интернет сделал большую часть информации бесплатной или очень доступной, так что вкладывайте побольше сил и времени в обучение. Читайте прессу, слушайте подкасты, подпишитесь на страницы известных игроделов — чтобы работать в индустрии, нужно постоянно держать руку на пульсе.
Привыкайте к изменениям
Игровая индустрия очень динамична не только в смысле технологий. Если вы живете в крупном городе, у вас есть преимущество — большой выбор. Иначе заранее готовьтесь к переезду. Ждать, что любимая компания откроет филиал неподалеку, можно до скончания века.
Последняя тенденция: состоявшиеся студии переезжают куда-нибудь в Вильнюс или на Мальту. Хотя есть и обратные примеры, например, небезызвестная бельгийская компания, открывающая представительство в Питере.
Выучите наконец английский!
Он понадобится еще на этапе обучения, ведь многие актуальные материалы не переводятся. Отечественный игрострой — лишь малая часть мирового сообщества, которое находится в постоянном межнациональном взаимодействии. Вам предстоит общаться с западными и восточными коллегами в сети, встречаться с ними на конференциях и выставках, активно поддерживать связь. Чем раньше начнете совершенствовать английский, тем скорее пожмете руку Гейбу Ньюэллу.
Презентуйте себя
Чтобы попасть в компанию мечты, мало заполнить профиль на ресурсе для поиска работы. Составьте внятное резюме с подробным рассказом о том, где вы работали, какие у вас были обязанности и какими своими достижениями вы гордитесь, и опубликуйте на LinkedIn. Обязательно сделайте портфолио, можно даже в нескольких вариантах, с учетом специфики компании и проекта.
Прикидывая зарплату, учитывайте как собственные пожелания, так и примерный уровень на аналогичной позиции по индустрии в целом. Главное правило: вам будут платить за навыки и умения, а не ориентируясь на ваши траты и потребности.
Будьте настойчивы
Далее составьте список любимых компаний и проектов, соотнесите свой опыт с их требованиями и, если одно соответствует другому, точечно высылайте резюме и портфолио.
Не забудьте кратко объяснить, почему вы хотите работать именно в этой компании или над этим проектом. Писать лучше не на общий ящик — его далеко не всегда разбирают, а рекрутеру, работающему по этой вакансии, или нанимающему менеджеру. Связаться с ними можно в социальных сетях или через личный e-mail. Не стесняйтесь напомнить о себе, если резюме у вас подходящее, а ответа нет. Попробуйте написать другому человеку или тому же, но на другой ресурс.
Если вас позвали на собеседование, будьте искренни и не старайтесь ответить так, как от вас ждут. В геймдеве очень важна командная работа, и если вы не разделяете идей команды, то просто зря потратите время.
Кем быть?
Тестировщик
Самый популярный путь — начать карьеру с позиции тестировщика — совсем не так уж очевиден. Эта профессия часто кажется простой, но на практике многие неправильно понимают ее суть. Задача не в том, чтобы играть круглые сутки. Нужно писать тест-кейсы и проводить автоматическое тестирование различных частей проекта.
Второй миф: тестировщик — первая ступень в геймдеве, после нее можно получить «нормальную» должность программиста, геймдизайнера и т.д. Тестирование в играх — отдельная серьезная область знаний, в которой можно долго совершенствоваться, а желание поработать полгода тестером и перейти на другой профиль работодателя обрадует едва ли.
С другой стороны, порой люди вырастали из QA и занимали вышестоящие позиции (например, несколько исполнительных директоров из Nival, до сих пор работающих в компании). Однако этот вариант развития событий сложен и может занимать долгие годы.
Пиарщик
Комьюнити-, SMM- или PR-менеджер — редкая возможность работать удаленно при невысоких входных требованиях: нужно хорошо владеть русским языком и знать конкретную игру. Правда, и минусы очевидны: низкая зарплата и неясный карьерный рост. С одной стороны, это хорошая начальная ступенька на пути в игровой маркетинг, с другой — удаленного сотрудника могут не воспринимать как часть команды.
В этой роли нужно много общаться с людьми и объясняться по поводу неудачных обновлений, патчей и ребалансов, почти ничего не получая при этом взамен. Такова цена за свое место в геймдеве.
Геймдизайнер
В геймдизайне и работе над дизайном уровней романтики куда меньше, чем думают. В первом случае это прежде всего сложная математика при расчете баланса, во втором — красивая расстановка домиков и деревьев.
Вопреки сложившемуся мнению свой путь в геймдеве вполне можно начать с этих должностей, более того, с каждым годом это все проще: откройте тот же Steam Workshop и сделайте, например, сюжетную ветку для Skyrim. Повторяете это много раз, получаете играбельный и увлекательный вариант — и вот вы уже начинающий геймдизайнер.
Или открываете редактор StarСraft 2, создаете карту, расставляете по ней врагов, балансируете, испытываете в деле, ошибаетесь, переделываете. После энного количества итераций на карте становится интересно играть. Несколько удачных карт, и вы — начинающий дизайнер уровней.
Художник
В работе над игровым артом совершенствоваться можно бесконечно. Бывают 2D- и 3D-художники. Одни предпочитают скетчи, другие — персонажей, третьи — технику. Лучше всего изначально «качать» лишь отдельные навыки, а когда они будут на достойном уровне, понемногу добавлять новый функционал.
Не стоит претендовать на вакансию художника, не имея портфолио. И еще: как показывает практика, на проект с трогательными персонажами-зверушками его создатели едва ли поставят художника со сплошной «расчлененкой» в работах.
Внимательно изучайте проекты компании и подбирайте соответствующее портфолио. Обучиться с нуля помогут онлайновые курсы и доступный инструментарий. Маленький секрет: обратите внимание на игры с пользовательским контентом и создайте что-нибудь для любимого проекта. Если ваше творчество понравилось игрокам, считайте, что вы на верном пути.
Разработчик
Есть десятки ресурсов для онлайнового обучения программированию. Но начинать лучше со школьных времен. Можно ориентироваться на язык программирования — (C++, Swift), или на игровой движок (Unity, Unreal). Или начните заниматься серверной частью (Java).
Программист должен сразу выбрать специализацию, сменить в процессе язык очень сложно, поэтому предварительно попробуйте разные варианты, а потом вкладывайтесь в конкретную область. И запомните еще одно: программист должен учитывать мнение коллег и постоянно согласовывать свою работу с художниками, дизайнерами и прочими — чтобы найти оптимальное для всех решение.
Аналитик
Об аналитике в играх говорят очень мало, а ведь это как раз тот случай, когда можно получить математическое образование и опыт работы в другой сфере, а потом понять, что на самом деле хочется уйти в геймдев. Что особенно приятно — переучиваться незачем.
Отличные аналитики нужны в мобильных, социальных и мультиплеерных играх. Их работа не связана ни с игроками, ни с самим продуктом. Она подразумевает, разумеется, массу аналитики, цифр и таблиц. Если вам эта специфика по душе, то в геймдеве найдется роль и для вас.
Наверное, каждый игрок хоть раз да мечтал сам сделать игру. Многие наверняка еще и пробовали: собирали на форуме команду, приступали к проекту мечты, а потом обжигались и уходили в совсем другие сферы.
Реальность тут, как и почти везде, редко соответствует ожиданиям. Но если вы все же хотите — пробуйте обязательно! Делитесь статьей с друзьями, пишите комментарии, и мы обязательно вернемся к этой теме.