Агрегатор онлайн-курсов Checkroi.ru Блог Статьи о программировании Как научиться создавать игры: языки, движки и всё, что может понадобиться начинающему разработчику

Как научиться создавать игры: языки, движки и всё, что может понадобиться начинающему разработчику

от Мария Грищенко
Опубликовано: Страница обновлена: 905 просмотров Время прочтения: 16 минут

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

Да и необходимость программирования никто не отменял. Без него не поймёшь, как что работает, не объяснишь это другим, и не добавишь в игру что-то своё — движки дают только основу, не больше.

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

Способы разработки

Создавать игры можно тремя путями:

  • Написать всё с нуля — сложный способ, но стоит начать с него, чтобы разобраться в языках.
  • Использовать движки — специальные программы для создания игр. Вариант полегче. Даже новичок, вооружившись мануалами из интернета, способен самостоятельно сделать игру.
  • Найти заготовки — готовых шаблонов, где нужно просто поменять местами компоненты, достаточно, чтобы создать примитивную игру.

Эти способы могут пересекаться. Допустим, персонажа вы создали через движок, а его движения его запрограммировали. Или нашли готовый шаблон, но текстуры наложили уже в движке.

Ежедневные советы от диджитал-наставника Checkroi прямо в твоем телеграме!
Подписывайся на канал
Подписаться

Игровые движки

Движок — это программное обеспечение для разработки игр.

Движки содержат множество разнообразных инструментов, которые сильно облегчают задачу: шаблоны игровой логики и поведения объектов, инструменты для дизайна пейзажей и ландшафта и работы с графикой и физикой объектов, визуальный редактор сцен, утилиту для анимаций и др.

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

Движки «оживляют» игру. Поэтому игры уже давно не создают с нуля. Даже код не всегда надо писать — всё уже есть. Но чтобы процесс шёл быстрее, всё-таки важно тщательно изучить один из движков.

Вот самые популярные из них.

Unity

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

Интерфейс Unity

Интерфейс Unity

Он бесплатный, но если вы зарабатываете на своих играх больше 100 тысяч долларов в год, придётся делиться ими с разработчиками Unity.

Если спуститься на уровень кода, Unity поддерживает язык программирования C#, который отличается умеренной сложностью для изучения. Кроме того, у Unity огромное дружелюбное сообщество, а на ютубе можно найти много инструкций.

Преимущества. Удобная визуальная среда разработки, большая библиотека ассетов и плагинов, возможность портировать игры на разные платформы, возможность интегрировать игры со многими графическими или анимационными приложениями.

Unity — оптимальный выбор для новичков. В нём вы можете реализовать что-то несложное даже с минимальными навыками

Для каких игр подойдёт. Мобильные 2D и 3D-игры, одиночные и сетевые игры для десктопа, VR-игры.

Лучшие курсы по Unity для начинающих — в подборке

Unreal Engine

Unreal Engine — популярный игровой движок, который выпустила известная студия Epic Games. Он предназначен для больших игр с мощной графикой.

Этот движок подходит для быстрого прототипирования. У него открытый код, но нужно знать C++. Ещё один большой плюс — можно создать полноценную игру практически без кода. Всё необходимое можно сделать можно прямо в программе: здесь есть целых два редактора для работы с эффектами и материалами и Blueprints — инструмент, который позволяет строить логику игры через блок-схемы.

Интерфейс Unreal Engine

Интерфейс Unreal Engine. Источник изображения: docs.unrealengine.com

Преимущества. Гибкость, мультиплатформенность, большие графические возможности, качественное освещение, возможность создавать игры под VR, общая дружелюбность к разработчику и множество инструментов.

Для каких игр подойдёт. ААА-игры с большим бюджетом, шутеры, приключенческие экшены, VR-игры.

CryEngine

CryEngine — мощный  движок от немецкой компании Crytek. На нём можно делать масштабные игры для любых платформ — десктопа, веба и мобильных устройств.

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

Демо последней версии движка CryEngine 5.5 на примере шутера Hunt: Showdown

Преимущества. Графические возможности значительно выше, чем у Unity и Unreal Engine: артхаусный свет, реалистичная физика, сложная система уровней и продвинутая анимация — всё это вы сможете создать в CryEngine.

Для каких игр подойдёт. Крупномасштабные ресурсоёмкие игры и игры под ПК и консоли, включая PS4 и Xbox One.

Языки программирования

Языки программирования позволяют задавать условия и команды в игре: если А, сделай Б, а если В, сделай Д. Движки много берут на себя, но все равно программировать придётся много.

Перемещение по меню, переход между локациями, управление персонажем, движение камеры, смена музыки, диалоги, система квестов — для всего этого нужно писать код

Делать игры можно на любом языке. Но именно от языка зависит, сколько времени займёт разработка игры и для какой платформы будет релиз. А ещё язык влияет на производительность.

Вот на каких языках создают игры.

C++

С++ — кроссплатформенный язык, который позволяет эффективно управлять памятью и при этом не загружать её. Без него не обходится ни одна разработка серьезного гейм-продукта. Кроссплатформенность позволяет создавать игры для разных платформ: веб, онлайн или мобайл.

Этот язык помогает создавать механику игры — взаимодействие игрока с миром и мира с игроком. На нём пишут оптимизированные крупномасштабные игры уровня ААА. С++ также используют в мобильных играх, где нужно бережно обходиться с памятью устройства и поддерживать высокую производительность игры.

Этот язык считается одним из самых сложных для изучения. Браться за C++, не зная других языков и не обладая хотя бы мало-мальским опытом в программировании, — все равно, что начинать изучать математику с линейных уравнений.

Но если вы освоите С++, для вас откроются двери многих игровых студий. Ведь когда говорят о профессиональных программистах игр, обычно имеют ввиду именно программистов С++.

Для каких игр подойдёт. Ресурсоёмкие десктопные игры, игры на Unreal Engine, мобильные игры.

Fortnite, мегапопулярный онлайн-экшен на выживание, где зарегистрировалось более 350 миллионов человек, сделан на движке Unreal Engine, код для которого пишут на С++. Изображения: vgtimes.ru

Лучшие курсы по С++ — в подборке

C#

C# (Си шарп) уже не настолько производителен как С++ и, соответственно, не подойдёт для больших требовательных проектов. Но C# отличается кроссплатформенностью и универсальностью, поэтому на нём можно создавать 2D- и 3D-игры для Android и iOS.

Плюс, даже по сравнению с тем же С++, C# достаточно легкий для освоения и будет оптимальным вариантом для новичков, которые только начали путь в геймдев.

 Если вы только стартуете в геймдеве и выбираете язык — начните с C#

Для каких игр подойдёт. Игры для разных платформ, игры на Unity, мобильные игры.

Игра в жанре интерактивного кино Life is Strange: Before the Storm, получившая  высокие оценки критиков, написана на движке Unity, который поддерживает C#. Изображения: vgtimes.ru

Лучшие курсы по C# — в подборке

Java

Java — надёжный кроссплатформенный язык, который предназначен для создания мобильных игр для Android. Всё потому, что эта операционная система сама по себе отчасти написана на Java. А IDE Android Studio — популярная программа для разработки мобильного софта на Android, которая этот язык «понимает» по умолчанию.

Для каких игр подойдёт. Мобильные игры для Android.

Двухмерная аркада Gish — одна из лучших Java-игр

Двухмерная аркада Gish — одна из лучших Java-игр

Лучшие курсы по Java — в подборке

Objective-C/Swift

Если вам ближе по душе «яблоко», смело выбирайте Swift и/или Objective-C. Эти два языка специально созданы под платформы компании Apple. Больше их практически нигде не используют.

Для каких игр подойдёт. Игры для iOS и macOS.

 «Коррупции.Нет» — пример мобильной игры для iOS на Objective-C и Swift

 «Коррупции.Нет» — пример мобильной игры для iOS на Objective-C и Swift

Лучшие курсы по iOS-разработке — в подборке

JavaScript

На JavaScript пишут небольшие браузерные игры, потому что он умеет выполнять код прямо в браузере. Правда, используют здесь JavaScript не в одиночку, а вместе с HTML5. А конкретно — инструментом Canvas, который представляет собой холст, на котором можно рисовать с помощью JS-команд. Именно он позволяет создавать 2D-графику и делать анимированные фоны.

Для каких игр подойдёт. Браузерные игры, мобильные игры.

Стратегия PixelDefense

Стратегия PixelDefense, где нужно расправиться с наступающими врагами и спасти свой дом, создана на JavaScript и HTML5. Изображение: edopedia.com

Лучшие курсы по JavaScript — в подборке

Python

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

Для каких игр подойдёт. Мобильные и браузерные игры.

Самый известный симулятор жизни Sims 4, который пользуется бешеной популярностью, отчасти написан на Python — как раз благодаря нему в игре можно менять параметры персонажей и жилища. Изображения: origin.com

BattlefieldPython активно использовали при создании знаменитого шутера Battlefield — от серверных элементов управления до внутренней логики игры. Изображение: vgtimes.ru

Лучшие курсы по Python — в подборке

В основном в разработке игр используют эти языки. Но в зависимости от проекта могут понадобится и другие.

Если вы уже выбрали какой-то конкретный движок, то и язык нужен подходящий — для каждого движка он свой. В случае с Unity — это C#, а Unreal Engine 4 поддерживает С++.

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

Поэтому, если вы решили связать судьбу с производством крупных игр, будьте готовы стать «полиглотом». Чем больше языков вы освоите, тем более интересные и разнообразные задачи сможете получить, а шансы устроиться на работу мечты заметно возрастут.

Фреймворки

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

Фреймворк — это каркас, почти готовая игра. Нужно просто дописать для этого каркаса дополнительные функции, подогнав под свой проект.

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

Вот какие фреймворки используются в разработке игр:

  • XNA и MonoGame для C#,
  • PyGame для Python,
  • JS и Babylon.JS для JavaScript,
  • SceneKit и SpriteKit для

Платформер Celeste, который стал лауреатом 22-й ежегодной премии D.I.C.E. Awards и признан одной из лучших игр 2018 года, сделан на фреймворке XNA

Библиотеки

Библиотека — это набор готовых функций, классов и объектов для решения определённых задач.

Библиотеки, в отличие от фреймворков, не дают почти готовую игру, но предоставляют конкретные инструменты. Самые популярные в геймдеве библиотеки — графические и физические.

Графические библиотеки — позволяют растрировать игровые объекты и высчитывают, как изображения или 3D-модели должны выглядеть на мониторе. Это OpenGL, WebGL и DirectX.

Физические библиотеки — помогают работать с физикой: ускорять свободное падение, проводить импульсы или задавать векторы. Это Havok и PhysX.

Аналогичные библиотеки есть и для работы со звуком и другими аспектами игровой разработки.

Если вы создаёте игру на движке, ни фреймворки, ни библиотеки в большинстве случаев вам не нужны

Первый проект — с чего начать

Не стоит сразу начинать с глобальных проектов и пытаться создать свою многопользовательскую ролевую онлайн-игру или длинный платформер 16-битной эпохи.

Пусть они будут примитивными и даже незаконченными, зато вы не будете отвлекаться на более сложные детали вроде анимации. В будущем вы всегда можете доработать их.

В качестве первых «тренировочных» проектов берите что-то простое. Можно сделать свою версии известную игрушки — змейки, сапёра или крестиков-ноликов.

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

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

Если вы всерьёз решили научиться создавать игры, читайте вот эту статью — в ней подробно расписано, как освоить профессию и что для этого понадобится

Коротко о главном

  • Сделать игру можно тремя способами: написать всё с нуля, использовать движки или заготовки.
  • Основные движки для разработки игр: Unity, Unreal Engine и CryEngine. Если вы новичок — начните с Unity.
  • Основные языки программирования для разработки игр: С++, C#, Java, Objective-С или Swift, JavaScript и Phyton. Если вы новичок — начните с C#.
  • Облегчат разработку фреймворки и библиотеки. У каждого языка они свои. Если вы создаёте игру на движке, ни фреймворки, ни библиотеки в большинстве случаев не понадобятся.
  • Если вы новичок, начните с небольшого тренировочного проекта, чтобы отточить навыки и пополнить портфолио.
0 Коментариев
2

Почитаем еще?

Оставьте комментарий

Мы иногда используем cookie-файлы, чтобы получше узнать вас и персонализировать контент :) Замечательно!