что нужно знать разработчику игр

Как стать разработчиком игр? 8 ответов от геймдевелоперов

Как стать разработчиком игр с нуля, да ещё и востребованным? Универсального рецепта нет, но есть костяк из знаний и навыков, на который можно опереться. О том, что нужно знать, чтобы попасть в сферу геймдева сегодня, рассказывают сами разработчики игр.

С чего начать?

В первую очередь, нужно начать с малого — разобраться в том, как устроены игры в целом. Для быстрого старта в разработке вам помогут готовые движки. Самый популярный и довольно простой игровой движок — Unity, который содержит множество инструментов, облегчающих разработку (посложнее и серьёзнее — Unreal Engine — C++).

Чтобы начать разработку, вам необходимо иметь хотя бы базовые знания программирования. В частности, для движка Unity нужно знание языка C#. То есть должно быть понимание основ ООП, основных структур данных. Если говорить про среды разработки, то это могут быть как MS Visual Studio, так и другие сторонние решения, где вам удобно будет писать код.

Как выстроить план обучения?

Всё обучение должно быть выстроено, в первую очередь, на практике — делайте много небольших и законченных проектов. На старте такие проекты можно найти в различных уроках, курсах, а после уже пытаться придумывать свои мини-игры. Не старайтесь сделать сразу большой проект мечты — без базовых знаний на таких проектах обучаться будет значительно тяжелее и дольше. Пусть у вас будут вместо игроков и врагов разноцветные кубы и шарики, зато вы поначалу не будете отвлекаться на более сложные детали, такие как анимация, эффекты. Постепенно научитесь работать с ресурсами, выстраивать простые сцены, попробуете работу как в 2D, так и в 3D.

А что насчёт книг?

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

что нужно знать разработчику игр. Смотреть фото что нужно знать разработчику игр. Смотреть картинку что нужно знать разработчику игр. Картинка про что нужно знать разработчику игр. Фото что нужно знать разработчику игр

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

Особой популярность пользуются ещё такие книги по геймдеву:

что нужно знать разработчику игр. Смотреть фото что нужно знать разработчику игр. Смотреть картинку что нужно знать разработчику игр. Картинка про что нужно знать разработчику игр. Фото что нужно знать разработчику игр

Foundations of Game Engine Development, Volume 1: Mathematics

что нужно знать разработчику игр. Смотреть фото что нужно знать разработчику игр. Смотреть картинку что нужно знать разработчику игр. Картинка про что нужно знать разработчику игр. Фото что нужно знать разработчику игр

Hands-On Unity 2020 Game Development: Build, customize, and optimize professional games using Unity 2020 and C#

что нужно знать разработчику игр. Смотреть фото что нужно знать разработчику игр. Смотреть картинку что нужно знать разработчику игр. Картинка про что нужно знать разработчику игр. Фото что нужно знать разработчику игр

Game Engine Architecture, Third Edition

Что лучше, самостоятельная разработка игры или командная?

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

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

Какие языки должен знать разработчик игр?

Если говорить о программировании, есть несколько основных языков. 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).

В заключение

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *