Ваша первая игра: пошаговый гид по созданию видеоигр

Вместе с Ильей Катковым, веб-разработчиком, IT-лектором и участником проекта «Ученый говорит» Российского общества «Знание», мы составили гид по миру видеоигр: как создать свою игру, не написав ни строчки кода, загрузить ее в AppStore и Google Play и получать доход. А после разработали план действий для людей, которые хотят создавать не простенькие игры, а целые миры.

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

Одна из самых известных инди-игр — Minecraft. Ее создал шведский программист Маркус Перссон, через три года он продал ее за 2,5 млрд долларов. Менее популярная, но тоже нашумевшая игра, созданная программистом-одиночкой, — Papers, Please. В ней весь геймплей сводится к проверке документов на пограничном пункте и выживанию. Еще есть хоррор-игра Five Nights at Freddy’s, в которой веселые роботы-аниматроники бродят по детской пиццерии.

На эти игры разработчики потратили несколько лет — они сложные, объемные, сюжетные или с открытым миром. А вот простую 2D-игру можно сделать за неделю. И начать лучше всего с этого.

Обычно гейм-дизайнеры проходят такой путь:

  1. создают игры, не зная языков программирования;
  2. учат языки программирования и делают игры в предназначенных для этого программах;
  3. устраиваются в крупные студии, пишут собственные программы, чтобы работать в них и делать еще более сложные игры.

— Как сделать игру без знания языков программирования?

— Для этого нужно воспользоваться конструктором игр. Например, Game Maker, Construct 3, Stencyl. Туда можно загружать собственные картинки и звуки, а потом задавать им определенные параметры. Кодить ничего не придется. Только нужно иметь в виду, что все игры будут плоскими, 2D.

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

  1. Для начала нужно создать игровую комнату. Это один экран игры. Ее можно превратить в космическое пространство, а можно — в газон, по которому будет гулять игрок, всё зависит от задумки и фона, который вы поставите. В случае с лабиринтом можно оставить черный фон.
  2. Чтобы выстроить лабиринт, необходимо создать объект «стена» — этот объект уже есть в конструкторе. Потом на объект «стена» накладывается картинка — так у стены появится фактура или нужный цвет.
    Затем надо поставить галочку, что стена — это статичный предмет, который герой не может пересекать, и просто разместить эти стены по игровой комнате, как это делается в игре The Sims.
  3. Теперь персонаж. Загуглите «человечек бежит вперед/назад/вправо/влево гиф анимация» и скачайте наиболее приглянувшегося. Это подойдет, если игру вы создаете для себя и друзей. Если в планах игру продавать, то лучше сделать гифку персонажа самостоятельно или заказать у профессионального художника.
    Затем останется соединить кнопку «вверх» с анимацией бега вверх, а потом поставить скорость передвижения в пять пикселей в секунду. То же самое нужно проделать с кнопками «влево», «вправо», «вниз». Если вы хотите, чтобы персонаж при беге топал, можно добавить звук топота, просто перетащив звуковую дорожку в программу.
  4. Чтобы персонаж не пробегал сквозь стену, создается событие «столкновение с объектом „стена“»: если игрок врезается в стену, то его персонаж получает скорость ноль или бежит на месте.
  5. Теперь монетки. Нужно создать объект «монетка» и загрузить либо статичную картинку монетки, либо гифку — чтобы монетка крутилась и сверкала. У монетки нет никаких свойств кроме того, что до нее можно дотронуться. Когда мы задали ей это свойство, остается прописать последствия ее взаимодействия с игроком: если он столкнулся с объектом «монетка», то монетка исчезает, а в счетчике баллов у игрока прибавляется единица.
  6. Остался злодей. Он создается так же, как персонаж, только передвигается по своему конкретному участку, «патрулируя» его. Если игрок сталкивается с объектом «злодей», то он либо возвращается на стартовую точку, либо у него сгорает одна жизнь.
  7. Если хочется сделать игру многоуровневой, в конструкторе просто добавляются новые комнаты.
  8. На финальном этапе игра проверяется на баги. Вдруг в каком-то месте персонаж выбегает за пределы экрана или не может захватить монетку?

— Где играть в свою игру?

— Проще всего играть на своем же компьютере — для этого игру нужно сохранить в формате .exe (в Windows. — Прим. ред.). Теперь она будет открываться как обычная программа. Или игру можно загрузить на сервис Game Jolt, чтобы она открывалась сразу в браузере.

Если игра создавалась для Android, то ее следует сохранить в формате .apk. Потом этот файл просто перекидывается на телефон и устанавливается.

Загрузить игру на Google Play тоже не проблема. Для этого нужно купить в своем аккаунте лицензию разработчика за 25 долларов, а после размещать там что угодно. В личном кабинете можно выкладывать скриншоты из игры, добавлять описания и иконки. Если Google Play вашу разработку одобрит, она попадет в общий список игр. И с этого момента игру может скачать любой пользователь Android.

Игра для iOS сохраняется в формате .ipa. Ее тоже можно загрузить в AppStore, но для этого нужно платить 100 долларов в год — столько стоит кабинет разработчика у Apple. Если перестать платить, то игра, даже одобренная, не будет доступна пользователям.

— Как создавать 3D-игры?

— Здесь не обойтись без языков программирования. В гейм-дизайне есть два больших направления: одни работают на C++, другие на C#. Нельзя сказать, что какой-то из этих языков лучше — оба хорошие. Просто кто-то привык работать на одном, кто-то на другом.

C++ нужно учить, чтобы затем создавать игры на движке Unreal Engine — он позволяет делать качественные 3D-игры. C# позволяет делать не менее качественные игры на движке Unity. Unreal Engine и Unity друг от друга мало чем отличаются, это два аналога, как камеры Canon и Nikon.

Внутри каждый из этих движков разделен на две части: пустое 3D-поле, которое надо наполнять, и редактор кода. В 3D-поле можно поместить отрисованного 3D-персонажа, просто перетащив мышкой с рабочего стола. Но шевелиться он будет только с помощью скрипта, который пишется на C++ или C#.

И над этим придется поработать. Для сравнения: на то, чтобы сделать в Game игру-платформер по типу «Марио», уйдет примерно неделя, а в Unity — три-четыре месяца.

— Как долго учить языки программирования и что придется делать еще?

— Основы программирования можно выучить за месяц-два. А дальше следует погружаться в выбранный движок и много гуглить. Язык программирования не подскажет, как обращаться к свойствам определенного объекта и работать с векторами.

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

Работать в Unreal Engine и Unity сложно даже опытным программистам. Освоить эти движки — дело нескольких лет, даже если проходить обучающие курсы. Но в перспективе на этих движках можно создавать такие игры, как Fortnite, Hogwarts Legacy, Firewatch и др.

— Как зарабатывать на своих видеоиграх?

— Если говорить про игры для Android и iOS, то самый простой путь — сделать игру платной уже при скачивании. Это настраивается в кабинете разработчика Google Play или AppStore. Цену автор игры устанавливает на свое усмотрение.

Путь посложнее — задействовать релевантные рекламные площадки. В 2022 году в России функционируют, в частности, «Рекламная сеть Яндекса» (РСЯ) и Unity Ads.

Все рекламные площадки работают по одному принципу: после бесплатной регистрации пользователь получает API — набор символов кода, который нужно вставить в программный код игры (любой, даже простейшей 2D). API позволит связать рекламную площадку с вашим продуктом.

Здесь нужно решить, в какой момент вы хотите показывать рекламу. Допустим, вы хотите, чтобы реклама показывалась после того, как игрок проиграл. Вы находите это место, открываете специальную вкладку (здесь точнее прописать не получится, во всех конструкторах игр потребуются разные алгоритмы, так что рассказываю лишь про сам принцип) и добавляете туда API.

Как только игрок проиграет, он автоматически увидит рекламу: картинку или видео. Показ одной картинки в среднем стоит 10–20 копеек, видео подороже — около рубля. Если придет пользователь из другой страны, то за показ рекламы вы можете получить и больше. Но зарубежная реклама появится только при условии, что пользователь находится в другой стране или играет через VPN.

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

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


Еще больше интересных и полезных вещей о мире и месте человека в нем можно узнать из выступлений участников проекта «Ученый говорит», который организован Российским обществом «Знание». Уже более 3000 ученых из 85 регионов страны провели интерактивные лекции с VR-сопровождением, мастер-классы, иммерсивные шоу и научные дебаты в рамках проекта. Если вам интересно посмотреть такое выступление или самому выступить перед аудиторией, узнайте больше о проекте «Ученый говорит» на сайте.


Реклама. znanierussia.ru
Специальный проект общества «Знание» и Журнала «Нож»