Как стать разработчиком игр? 8 ответов от геймдевелоперов
Мы выяснили, какие языки и инструменты нужно освоить, с чего начать и как выстроить план обучения, чтобы стать разработчиком игр.
47К открытий48К показов
Как стать разработчиком игр с нуля, да ещё и востребованным? Универсального рецепта нет, но есть костяк из знаний и навыков, на который можно опереться. О том, что нужно знать, чтобы попасть в сферу геймдева сегодня, рассказывают сами разработчики игр.
С чего начать?
Александр Саваткин, Senior Developer в компании Alawar:
В первую очередь, нужно начать с малого — разобраться в том, как устроены игры в целом. Для быстрого старта в разработке вам помогут готовые движки. Самый популярный и довольно простой игровой движок — Unity, который содержит множество инструментов, облегчающих разработку (посложнее и серьёзнее — Unreal Engine — C++).Чтобы начать разработку, вам необходимо иметь хотя бы базовые знания программирования. В частности, для движка Unity нужно знание языка C#. То есть должно быть понимание основ ООП, основных структур данных. Если говорить про среды разработки, то это могут быть как MS Visual Studio, так и другие сторонние решения, где вам удобно будет писать код.
Как выстроить план обучения?
Александр Саваткин, Senior Developer в компании Alawar:
Всё обучение должно быть выстроено, в первую очередь, на практике — делайте много небольших и законченных проектов. На старте такие проекты можно найти в различных уроках, курсах, а после уже пытаться придумывать свои мини-игры. Не старайтесь сделать сразу большой проект мечты — без базовых знаний на таких проектах обучаться будет значительно тяжелее и дольше. Пусть у вас будут вместо игроков и врагов разноцветные кубы и шарики, зато вы поначалу не будете отвлекаться на более сложные детали, такие как анимация, эффекты. Постепенно научитесь работать с ресурсами, выстраивать простые сцены, попробуете работу как в 2D, так и в 3D.
А что насчёт книг?
Чтобы стать разработчиком игр, нужно много практики, но это не значит, что её не стоит подкреплять теорией. Стоит отметить, что подавляющее большинство хороших книг по геймдеву можно найти только на английском языке. Держите настоящую дорожную карту по геймдеву от одного из пользователей GitHub:
Каждый из этих блоков включает в себя ряд книг по разработке игр, которые позволят двигаться в нужном направлении.
Особой популярность пользуются ещё такие книги по геймдеву:
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.
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.
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:
- computer and CPU hardware and memory caches,
- compiler optimizations,
- C++ language standardization,
- the IEEE-754 floating-point representation,
- 2D user interfaces,
- plus an entirely new chapter on hardware parallelism and concurrent programming.
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.
Key Features
- Covers both the theory and practice of game engine software development
- Examples are grounded in specific technologies, but discussion extends beyond any particular engine or API.
- Includes all mathematical background needed.
- Comprehensive text for beginners and also has content for senior engineers.
Что лучше, самостоятельная разработка игры или командная?
Дерек Есёновски, гейм-дизайнер GARENA Free Fire:
Создание игры самостоятельно потребует целого массива навыков и вещей, которым придётся обучиться, — так вы научитесь очень многому, но это и самый сложный путь. Также стоит осознать: скорее всего, первое, что вы сделаете, будет провалом. Но это нормально, так и должно быть: именно это и помогает учиться.
Стоит отметить, что первые шаги нужно делать самому, ведь как стать разработчиком игр и претендовать на должность, не имея за спиной соответствующего опыта? Если же вы не планируете вливаться в штат, а мечтаете стать разработчиком инди-игры и вести собственный проект, придётся набивать шишки самостоятельно.
Какие языки должен знать разработчик игр?
Дерек Есёновски, гейм-дизайнер GARENA Free Fire:
Если говорить о программировании, есть несколько основных языков. C++ — базовый язык программирования, на котором строятся почти все процессы на стороне сервера, он также может быть использован и в других задачах. Но также задействуется много других языков программирования: C++, Java, HTML5, CSS3, JavaScript, SQL — все они используются для разных целей.Однако ввиду комплексности игр, люди упростили процесс, так что вам не обязательно погружаться во все сложности и нюансы каждого языка программирования (хотя это и полезно). Какой язык вам изучать — зависит от того, каким типом игр вы хотите заниматься и какой движок вы используете. В целом, самые большие игры с наиболее сложным контролем используют C++ в качестве основного языка программирования.
А какие инструменты нужно освоить?
Александр Саваткин, Senior Developer в компании Alawar:
После того, как научитесь делать совсем простые игры, разберитесь в параметрах сборки проекта на разные платформы, помимо Windows. Например, ещё и на Android. В новых версиях Unity с установкой можете сразу же поставить Android SDK и другие необходимые компоненты и модули. Для iOS чуть сложнее — установите соответствующий модуль для Unity. Также понадобится устройство на MacOS, где будете собирать проект в Xcode. Разработка под разные платформы позволяет взглянуть немного шире, выйти за рамки и встретиться с новыми проблемами и сложностями. Так, для мобильных платформ уже нужно учитывать нагрузку на ЦП, пытаться оптимизировать свой код, сцены и ресурсы. Здесь уже часто становится важным иметь понятия о сложности алгоритмов, а также более широкое знание о самих алгоритмах над различными структурами данных.В момент разработки какого-нибудь проекта создайте репозиторий, выложите свой проект, например в GitHub, и научитесь пользоваться системой контроля версий Git. Здесь можно использовать различные удобные вам клиенты (SourceTree, GitHub Desktop и другие). Для начала достаточно освоить основные операции. Попробуйте поработать над проектом с кем-то ещё. Так как работа в команде является неотъемлемой частью процесса разработки, то можно ознакомиться с тем, как процесс взаимодействия происходит в командах, например, почитать, какие гибкие методологии разработки бывают, настройте для себя Kanban-доску и отслеживайте там свои задачи.
Как продвигать и монетизировать проект?
Александр Саваткин, Senior Developer в компании Alawar:
Когда у вас уже есть небольшой опыт, можно задуматься и о том, как же публикуются приложения. Проще всего сделать собственные аккаунты на Google Play или AppStore. Здесь стоит внимательно изучить требования к приложениям, технические детали, а также детально ознакомиться с админкой.В дальнейшем стоит обратить внимание на использование различных SDK. Например, вы захотели добавить монетизацию в вашу игру на GooglePlay или добавить Play Services. Для публикации в Steam вам тоже потребуется столкнуться со Steam SDK. Опыт работы и подключения различных SDK ценится работодателями, тем более, если есть конкретные примеры удачного использования.
Что-то ещё?
Александр Саваткин, Senior Developer в компании Alawar:
В идеале ещё нужно иметь базовые знания по математике, линейной алгебре, геометрии. Работа над более сложными проектами требует большой внимательности, аккуратности. Для работы над сложными системами, для подготовки и реализации архитектуры игры желательно иметь понимание паттернов проектирования, и, опять же, не просто знать теорию, а научиться применять знания в рамках используемого движка. Есть ещё множество различных направлений, где можно углубляться и развиваться — от разработки шейдеров, написания своих модулей и библиотек, до попытки разработки своего простого движка на C++ (используя, например, библиотеку SFML).
В заключение
Перечисленное — лишь вершина айсберга, и чтобы стать разработчиком игр нужен не один год. На пути становления вы столкнётесь с уймой проблем, а лучшим способом их решить станет обращение к геймдев-комьюнити. Вот лишь некоторые из живых форумов и чатов, где можно задать интересующие вопросы:
47К открытий48К показов