Как научиться создавать игры: языки, движки и всё, что может понадобиться начинающему разработчику
Разрабатывать игры стало проще. Появилось много движков, шаблонов, библиотек и фреймворков, предназначенных специально для игр. Бери и делай. Но вместе с тем возникли и новые сложности — теперь во всём этом нужно разобраться.
Да и необходимость программирования никто не отменял. Без него не поймёшь, как что работает, не объяснишь это другим, и не добавишь в игру что-то своё — движки дают только основу, не больше.
Как научиться программировать игры? Что именно вам понадобится, если вы решили встать на тернистый путь разработки игр, какие инструменты для этого бывают и когда их лучше использовать — рассказываем в этой статье.
Чтобы сделать игру, вы должны пройти 6 этапов разработки: Разработка идеи. Арт. Программирование. Звук. Шлифовка. Публикация.
Каждый из этапов я структурировала следующим образом:
- Совет. Здесь, я буду давать вам советы, основываясь на своем и чужом опыте.
- Ресурсы. Также, я буду прикреплять ссылки на те или иные ресурсы, которые будут вам наиболее полезны.
Как создаются игры?
Сфера разработки игр обширна, и тут всё зависит от конкретной игры, которую вы хотите сделать. Например, игру «крестики-нолики» может создать один человек на самом обычном компьютере без использования платных программ. А если ваша цель — выпустить приложение, в которое будут играть люди по всему миру, тогда вам понадобится большая команда и много ресурсов.
В первую очередь при создании игры нужно ориентироваться на свой уровень навыков и на свои возможности. Всегда можно найти нишу для реализации своих творческих амбиций, но некоторые навыки для этого нужно будет освоить в любом случае.
Можно попробовать научиться разработке игр самостоятельно, но важно учитывать, что на первых порах особенно легко запутаться и разочароваться, потерять интерес к делу.
Создание игры — это серьёзный длительный процесс, который требует от разработчика большой включённости.
Поэтому лучше всего начинать свой путь в этой сфере с поддержкой преподавателя-наставника. Важно, чтобы у вас был человек, к которому вы всегда сможете обратиться за советом, за помощью в ситуации, которая кажется неразрешимой.
Если попытаться коротко описать путь создания игры от идеи до релиза, то его можно сформулировать так:
- Идея. Разработчик или команда разработчиков придумывают основную сюжетную линию и героев игры.
- Создание геймдизайн-документа и написание сценария игры.
- Визуал и графика. Команда отрисовывает героев, фоны, меню игры.
- Программирование, то есть написание кода и интегрирование отдельных элементов из приложений-помощников и выбранного игрового движка (графика, интерфейс, физика игры).
- Тестирование. Игра выпускается в ограниченный доступ. Небольшое количество пользователей может поиграть и обнаружить недостатки, не замеченные разработчиком.
- «Пофиксить». Команда исправляет выявленные тестированием ошибки в игре.
- Релиз. Выход игры на широкую аудиторию.
CryEngine 5
CryEngine — игровой движок, созданный немецкой частной компанией Crytek в 2002 году и первоначально используемый в шутере от первого лица Far Cry. В середине марта компания предоставила миру новый, пятый CryEngine. Движок абсолютно бесплатен и воспользоваться им, может любой желающий, с помощью которого можно создать игру, различного жанра и различной сложности.
- CryEngine Sandbox: редактор игры в реальном времени, предлагающий обратную связь «Что Вы видите, то Вы и ИГРАЕТЕ».
- Рендерер: интегрированные открытые (англ. outdoor ) и закрытые (англ. indoor ) локации без швов. Также рендерер поддерживает OpenGL и DirectX 8/9, Xbox с использованием последних аппаратных особенностей, PS2 и GameCube, а также Xbox 360.
- Физическая система: поддерживает инверсную кинематику персонажей, транспортные средства, твёрдые тела, жидкость, тряпичные куклы (англ. rag doll ), имитацию ткани и эффекты мягкого тела. Система объединена с игрой и инструментами.
- Инверсная кинематика персонажей и смешанная анимация: позволяет модели иметь множественные анимации для лучшей реалистичности.
- Система игрового искусственного интеллекта: включает командный интеллект и интеллект, определяемый скриптами. Возможность создания особенных врагов и их поведения, не касаясь кода C++.
- Интерактивная динамическая система музыки: музыкальные дорожки отвечают действиям игрока и ситуации и предлагают качество CD-диска с полным 5.1 звуковым окружением.
GODOT
Игровой движок с открытым исходным кодом для создания 2D-и 3D-игр. Отличается простотой в освоении и подходит для совместной работы целой команды.
Фото: github.com
Для разработки: 2D- и 3D-игр.
Платформы: Windows, macOS и Linux.
Языки программирования: GDScript, C# и визуальный скриптинг.
Стоимость: Бесплатно.
Обучение: У Godot есть обширное пошаговое руководство по использованию их редактора, а также бесплатные текстовые руководства, охватывающие более конкретные аспекты, такие как реализация виртуальной реальности, использование скелетов для 2D-анимации и создание процедурной геометрии.
Как выстроить план обучения?
Всё обучение должно быть выстроено, в первую очередь, на практике — делайте много небольших и законченных проектов. На старте такие проекты можно найти в различных уроках, курсах, а после уже пытаться придумывать свои мини-игры. Не старайтесь сделать сразу большой проект мечты — без базовых знаний на таких проектах обучаться будет значительно тяжелее и дольше. Пусть у вас будут вместо игроков и врагов разноцветные кубы и шарики, зато вы поначалу не будете отвлекаться на более сложные детали, такие как анимация, эффекты. Постепенно научитесь работать с ресурсами, выстраивать простые сцены, попробуете работу как в 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:
- 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.
Заключение
Нет простого пути создания игры. Есть только ваши решительность и усилия.
За каждым Half-Life, Minecraft и Uncharted лежат океаны крови, пота и слез.
Кен Левин, создатель Bioshock
Вы будете допускать ошибки, чувствовать себя в тупике и плакать. Это нормально — значит, вы растёте над собой.