Этапы создания компьютерной игры. Создание игр для начинающих Как создать небольшую компьютерную игру

23.07.2023 Wi-Fi

С каждым днем игры становятся все сложнее и навороченнее. Ежегодно в Steam они публикуются тысячами. Они распределяются по разным платформам и категориям. Аудитория игроков стремительно растет. Число разработчиков так же стремительно увеличивается. Быть инди, а точнее соло-разработчиком игр стало тяжело. Но романтика независимости заставляет снова и снова начинать разработку инди-игры. В статье мы поговорим, как выжить на этом пути и как разрабатывать классные игры в жестких условиях конкуренции.

Хотя появляются новые технологии для создания игр, с каждым годом их разработка становится все сложнее и сложнее. Есть тройка топовых движков: Unity, Unreal Engine 4, CryEngine 5. О них постоянно говорят, и их используют для разработки самых разных проектов самые разные разработчики. Тем не менее сложность этих инструментов перевалила мыслимый рубеж. Они огромны, их функциональность достигла вселенских масштабов. Все эти возможности могут быть использованы большими студиями, но для соло-разработчика это избыточный стафф, он ему не нужен, поскольку для его реализации нужны дополнительные ресурсы, которых у инди и так нет (для разработки игры мечты он свой дом заложил). И если это не AAA-игра, то реализация этих фич бесполезна.

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

Альтернативные движки

Я понимаю, что в настоящее время существуют инди-игры всех жанров на любой вкус (и это на самом деле хорошо), но мы под инди-играми в данном контексте подразумеваем маленькие, двумерные, ориентированные на мобильные устройства, созданные соло-разработчиком творения (которых преобладающее большинство), поэтому использовать Unity, UE4 для создания прототипов будет неоправданно сложно. Существует широкий выбор альтернативных движков, они проще в использовании и позволяют достигать впечатляющих результатов за меньший срок, минус спецэффекты, которые инди бы все равно не стал помещать в свою игру. Порой для создания полноценной игры под все платформы эти движки не требуют написания кода. Особенно меня продвинуло на тему альтернативных движков после участия в московской конференции разработчиков видеоигр White Nights 2017, прошедшей в октябре. Я подходил к инди-разработчикам, демонстрирующим свои проекты, и расспрашивал об используемом инструментарии. Во многих случаях они называли вовсе не Unity, а Construct 2 или GameMaker Studio .

Оба продукта представляют собой конструкторы двумерных игр, не требующие умения программировать (!). В Construct 2 игру создаешь, определяя игровые события и реакцию на них. Итоговые игры портируются под все распространенные платформы. Прога идет с подробной документацией, большим количеством примеров и теймплейтов, так что освоить ее несложно. Покупать советую в Steam, там ее стоимость за персональную версию составляет 6399 рублей.

Как самому создать игру. Construct 2 с открытым проектом

GameMaker Studio представляет собой популярный конструктор игр с двумя возможностями построения игры (подобно UE4): первая - методом drag and drop, вторая - писать код на собственном языке системы. В зависимости от целевой платформы игры, созданные с помощью GameMaker Studio, визуализируются с помощью OpenGL или DirectX с использованием соответствующих шейдерных технологий. Для обработки физики есть поддержка движка Box2D. Поддерживается широкий ряд устройств ввода. Десктопная версия в Steam стоит 1599 рублей, экспортеры для других платформ надо докупать: так, экспортер для web стоит 2579 рублей, для UWP - 6396 и столько же для мобильных систем.

Как создать игру самому. GameMaker Studio

Третий заслуживающий внимания альтернативный движок - AppGameKit . В отличие от двух предыдущих, разрабатывая с его помощью игры, надо писать код на скриптовом языке. Во многом благодаря этому он меня заинтересовал больше остальных. Стоимость этого движка в Steam составляет 2059 рублей, включая экспортеры под все поддерживаемые платформы. Хорошее вложение. За более подробным описанием архитектурной составляющей движка отсылаю тебя к упомянутой статье.

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

Где взять арт и прочий стафф?

В случае если ты программист и плоховато рисуешь/моделишь самостоятельно, весь необходимый для прототипа стафф можно купить в сторах топовых и альтернативных движков (например). Арт, звуки, шейдеры и другой стафф также можно найти в Steam. Они стоят не так дорого. Изображений в одном комплекте может быть несколько тысяч, но все они для разных игр, поэтому на прототип тебе их, может быть, и хватит, а вот для полноценного релиза - вряд ли. И тогда, возможно, ты найдешь свободных художников, на которых произведет впечатление твоя игра. И это правильно, ведь, работая с покупным артом, ты вынужден подгонять свой сюжет под имеющийся арт, а не наоборот.

Разработка игры с помощью AGK

Мой выбор пал на AGK по трем причинам:

  • разработка игр основывается на написании кода двух уровней (Tier 1, 2); мне, как программисту, легче освоиться в новом API, нежели в новом интерфейсе редактора;
  • цена демократична;
  • купил я этот движок еще два года назад, все обновления приходят сразу же, как появляются.

Дополнительные фишки: AGK поддерживает множество типов контроллеров, так, кроме геймпадов, он поддерживает контроллер бесконтактного управления Leap Motion. Плюс в AGK включена поддержка VR.

Visual Editor

После запуска AGK мы видим только редактор кода без каких-либо визуальных средств, которыми богаты другие движки. Однако в августе компания The Games Creator выпустила приложение, своего рода аддон для AGK - тулзу Visual Editor. Он покупается отдельно (стоит 899 рублей). Этот редактор позволяет визуально настраивать наполнение сцены и уровня твоей игры, импортировать изображения и 3D-модели, помещать их в сцену как игровые объекты, настраивать положение, размер, угол поворота, цвет и другие свойства с помощью инспектора объектов. Как выглядят сцены на устройствах с экраном разного расширения, можно увидеть, прямо не выходя из редактора. В конце концов, сцену можно сохранить и подключить к AGK. Тот спокойно выполнит код, как будто этот файл создан здесь же. Visual Editor дает возможность строить игры методом drag & drop (не полностью, но частично), подобно другим конструкторам, рассмотренным выше. Но, признаться, это не наш выбор.

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

Как создать игру. Visual Editor

Классические танки

Движок AGK одинаково хорошо подходит для создания 2D- и 3D-игр. Мы остановимся на 2D по понятным причинам: популярность на мобильных - целевых платформах - одна из них.

Мы испробуем AGK на танках, попробуем воссоздать «классические танки» с игровой консоли NES от 1985 года с новой графикой. Кто не в теме, та игра называется Battle City, во многом именно она послужила прототипом для современных игр про танковые войны (World of Tanks, «Танки Онлайн»). Поэтому наш мир также будет двумерным с обзором сверху.

Основы AGK

Разработку мы будем вести на ярусе №1 (Tier 1) - скриптовом языке, похожем на модернизированный для нужд игродела BASIC. Первое, что необходимо помнить о BASIC, - это то, что в конце инструкции не надо ставить точку с запятой. Расслабься и получай удовольствие: никаких указателей и низкоуровневых приблуд, классов тоже нет. Их роли выполняют структуры. Можно создать экземпляр структуры, который закрепляется за числовой константой. В будущем для обращения к этому экземпляру используется закрепленное за ним число. При выполнении функции, чтобы указать, над каким объектом производится операция, надо передать соответствующее число в первом параметре. По сути, в AGK имеется только три типа данных: integer, real, string. По большому счету это все, что необходимо знать перед началом кодирования игр на AGK.

Приступаем к кодированию

Мы не будем использовать Visual Editor, напишем весь код самостоятельно (см. пример в материалах к статье). Я не буду приводить в статье листинги игры, поскольку ты всегда можешь их найти в материалах. Я лишь напишу краткие инструкции по выполняемому коду.
Создадим в AGK новый проект и начнем кодировать. Сначала инициализируем окно вывода: зададим заголовок окна, установим его размер, укажем способность менять размер. Затем установим разрешение, возможную ориентацию устройства, частоту перерисовки, зададим использование всей области экрана, последним действием инициализации включим использование продвинутых векторных шрифтов вместо растровых. Этот код входит в шаблон проекта. Ниже находится основной цикл игры: do … loop. В нем выводится FPS и происходит перерисовка экрана.

После инициализации игры определяется тип данных для танка, неважно, вражеский он или наш, все поля одинаковые. Объявление типа начинается с ключевого слова Type, за ним следует идентификатор типа, в нашем случае TTank. В первую очередь каждому танку нужны координаты. В AGK объявление происходит таким образом: x as float. Заметь, на конце точка с запятой не ставится. Второй способ объявления переменных - это просто описать их. Например, переменную типа Integer можно объявить так:

x = 4 , real : x # = 4.4, string: x$ = "four"

То есть добавляется символ после идентификатора. У типа string для задания строки равноценно можно использовать одинарные или двойные кавычки, главное, чтобы закрывающая была парной для открывающей. Далее задаем идентификаторы для спрайта, для коллизии, для флага определения, чьей стороне принадлежит танк: игрока или ИИ. Скорость, частота стрельбы, количество жизней, флаг поверженности, таймер, измеряющий количество секунд, когда танк стал поверженным, флаг, устанавливающийся, когда танк достиг препятствия (нужен для ИИ), в поворотах танка участвуют две переменные: флаг, устанавливаемый в начале поворота, и номер стороны поворота (нужны для ИИ). Заканчивается определение типа ключевым словом EndType.

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

Создадим два массива: один - для танков, второй - для снарядов. Примерно так: Dim tanks as player. Аналогично и со вторым.

Теперь нам надо загрузить текстуры. Это делается с помощью функции LoadImage, первым параметром передается номер, за которым будет закреплено изображения, а вторым - путь и имя файла. Все игровые ресурсы загружаются из подпапки media папки с игрой. Папка media создается при первой удачной компиляции. Таким же образом загружаем изображение снаряда. В цикле создадим все снаряды. Описание цикла начинается с For makebullets = 1 to 20, а заканчивается инкрементом циклической переменной: Next makebullets. В теле цикла происходит создание спрайта (CreateSprite с параметрами: идентификатор спрайта, номер натягиваемой на спрайт текстуры), установка его позиции (SetSpritePosition), установка слоя глубины (SetSpriteDepth), смещение начала координат для спрайта (SetSpriteOffset).

После этого мы сбрасываем значения всех параметров танков к значениям по умолчанию, это делается нашей функцией resetplayers. Из нее вызывается функция CreateTank. В качестве параметров она получает: номер танка (индекс в массиве танков), координаты, коэффициенты цветов, угол поворота, принадлежность к игроку или ИИ. CreateTank занимается созданием танка, определяет положение, скорость перемещения, частоту стрельбы, угол поворота. Также она создает для танка спрайты, настраивает их цвета, номера слоев. Далее загрузим текстуру фона и создадим для него спрайт, плюс нам понадобится текстура для препятствия. Зададим тип для препятствия - bricks. Он будет содержать только два поля: номер спрайта и активность. Положение задается при создании в расположенном ниже цикле.

Для игры нам надо загрузить два звука: выстрел и попадание. Это выполняется функцией LoadSound, она принимает цифровой идентификатор и имя файла. На десктопе AGK может работать с тремя форматами аудио: WAV, MP3, Ogg, а на мобильных с двумя, исключая MP3, из-за того, что этот формат не свободный. Создаем несколько глобальных переменных: текущее время, номер текущего уровня. Вызываем функцию для создания уровня. Весь код находится в глобальном пространстве и будет выполнен при запуске игры.

Далее мы погружаемся в центральный цикл нашей игры, тело которого выполняется 30 раз в секунду (зависит от частоты смены кадров, на PC может быть 60). Здесь первым делом нам надо получить количество миллисекунд (GetMilliseconds), прошедших с момента запуска игры. Затем запускаем цикл по всем игровым объектам - танкам. Если танк не вращается, он не подбит и им можно управлять (для этого вызываем функцию controlplayer), с другой стороны, увеличиваем его угол поворота. Поворачиваем определенный танк в направлении вектора его движения. Если танк вращается более двух секунд и у него закончились жизни, сбрасываем его состояние (resetplayers). Далее обновляются позиции всех снарядов в функции movefire и идет проверка на подрыв любого танка - в tankhit. Она возвращает номер подбитого танка, который начинает вращаться вокруг своей оси, вдобавок проигрывается звук попадания снаряда. Последней вызывается функция обновления экрана.

В остальном коде программы описаны используемые функции. Они представляют самую интересную часть - «живые» алгоритмы поведения игры.

Функция controlplayer, в которую передается номер определенного танка, реагирует на ввод юзера, производя соответствующие действия. Каждой клавише соответствует свой номер в системе ASCII, поэтому сначала нам надо объявить соответствующие клавишам константы:

#constant KEY_LEFT 37

#constant KEY_UP 38

#constant KEY_RIGHT 39

#constant KEY_SPACE 32

Когда игрок нажимает клавишу «Вверх», переменная Forward принимает значение 1, когда «Вправо» - переменная turn принимает 1, «Влево» - она же -1. При нажатии пробела, если танк не вращается, происходит выстрел (вызов функции makefire с передачей номера танка), с учетом того, что танк может выстрелить с интервалом в 500 миллисекунд.

Далее займемся управлением танками ИИ. Если танк противника находится на обозримом расстоянии, наш незамысловатый ИИ просто преследует танк игрока. Приближаясь к цели, он стреляет. Поэтому первым делом надо найти угол между танками. Это выполняется с помощью функции FindAngle. Ей передаются координаты первого и второго объектов. Если второй танк ниже первого, тогда переменная turn принимает значение -2, если выше, то 2. Следующим действием находим разность углов. Потом надо узнать расстояние между танками. Если оно больше 100 виртуальных пикселей, тогда вражеский танк движется к цели. К слову, в AGK измерения ведутся в виртуальных единицах; если после запуска игры их оставить по умолчанию, размер игрового поля составит 100 на 100. Размер можно произвольно менять, в этом случае он будет влиять только на расположение и размер объектов. Вражеский танк ведет стрельбу при следующих условиях: выстрел раз в две секунды, относительный угол между танками меньше 20 градусов, дистанция меньше 500 единиц. Кроме того, в этой функции надо запретить танку выезд за границы игровой области.

Последняя проверка, помещенная в эту функцию, - это столкновение с препятствиями. В цикле перебираем все препятствия, проверяем, чтобы они были активны, и тогда смотрим, была ли с танком коллизия. Если эти условия выполняются, пытаемся найти лучший путь для обхода препятствия. Когда в столкновении с препятствием участвует танк юзера, просто отключаем тягу вперед. При движении или повороте танка, управляемого ИИ, прибавляем значение переменной turn к текущему углу поворота. Поворот танка: положение по X вычисляем, прибавляя к текущей координате X синус угла поворота, умноженного на 32, положение по Y находим через вычитание из текущей Y косинуса угла поворота танка, также умноженного на 32. То есть, когда мы применяем косинус или синус к углу, поворот выполняется в начале координат, и, чтобы сместить его в заданном направление, надо произвести умножение. С помощью функции SetSpritePositionByOffset производим позиционирование танка. Последнее действие выполняется только во время движения: в нем происходит инкремент координат X и Y на синус
и минус косинус угла поворота, умноженного на скорость танка.

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

Затем в функции makefire происходит активация, позиционирование, задание вектора движения и скорости снаряда. В начале выполнения игры мы создали 20 снарядов и спрятали их за пределы экрана, сделав их неактивными, чтобы в нужный момент не тратить время на создание и инициализацию снаряда, а, спозиционировав его, сразу запустить. Поэтому в рассматриваемой функции в цикле от 1 до 20 мы проверяем наличие неактивного свободного снаряда. Найденный, он становится активным, в качестве родителя ему присваивается номер выстрелившего танка, снаряд поворачивается так же, как материнский танк, назначается соответствующая танку позиция. С помощью операций с синусом и косинусом ему назначается вектор полета, затем в функции settankfiredest, прибегая к тонкому математическому выражению, мы вычисляем точку приземления снаряда.

В цикле функции moveFire перебираем все снаряды и для тех из них, которые активны, инкрементируем положение в соответствии с вектором и скоростью. Если снаряд выходит за границы игровой области, просто делаем его неактивным, другими словами - помещаем в список готовых к использованию.

Функция checkHit проверяет попадание снаряда в любой танк. Внешний цикл перебирает танки, внутренний - снаряды. Первым делом внутри проверяются возможные столкновения снаряда с ячейкой пола, всего их 192, а их нумерация начинается с 200. Если произошло столкновение с ячейкой пола (ракета достигла своего пункта назначения), дальнейшие проверки выполнять не надо, делаем снаряд неактивным. Следующая проверка смотрит, чтобы выпущенная ракета не принадлежала выстрелившему ею танку. Если она проходит, мы делаем проверку столкновения снаряда с вражеским танком. Если столкновение зафиксировано, уменьшаем количество жизней у подбитого танка, останавливаем ракету, помещаем ее в список доступных для очередного выстрела. Данная функция возвращает номер подбитого танка.

Функция makeLevel, судя по названию, формирует карту уровня. Сначала двойным циклом проходим по всем 192 «кирпичам», делая их невидимыми и неактивными. Далее делаем видимыми только некоторые препятствия.

Оставшиеся три функции носят вспомогательный характер. Функция wrapAngle на основе полученного значения угла возвращает эквивалентное ему значение, не выходящее из диапазона 0–360. GetDistance получает четыре параметра - координаты двух точек и возвращает извлеченный корень из выражения, вычисленного по теореме Пифагора; таким образом, функция возвращает расстояние между двумя точками. И наконец, findAngle, получая координаты двух точек, возвращает разность между двумя углами.

Игра готова, код написан, можно запускать на выполнение. Но прежде не забудь скопировать из материалов к статье необходимый арт (из подпапки media каталога с игрой). Арт для игры состоит из семи файлов.

Подготовка билда и распространение

Тестирование на мобильных девайсах

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

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

Как создать игру. AGK Player

Я тестировал на планшете с ОС Android, однако имеется равнозначная версия плеера для iOS. Когда утилита будет установлена, надо подключить девайс к компу (через USB-кабель или по Wi-Fi), запустить AGK Player, а на десктопе в IDE AGK нажать пиктограмму Broadcast. AGK подключится к устройству, передаст данные, а в плеере запустится твоя игра.

Экспорт билда

Когда игра будет протестирована и отлажена, для ее публикации в сторе надо создать билд. Для этого с помощью команды меню File → Export Project «Tanki» → As Android Apk откроем окно Export Android APK, в котором предлагается задать свойства создаваемого пакета.

Как самому создать игру. Export Android APK

В области APK Settings, в ниспадающем списке APK Type предлагается выбрать целевую платформу: Google, Amazon, Ouya. App Name - имя приложения в операционной системе, Package Name - имя пакета, к примеру com.yazevsoft.Tanki. App Icon - иконка для приложения, Notification Icon - иконка уведомления, Oaya Large Icon - иконка в версии Android для игровой консоли Oaya. Ниже задается ориентация и минимально поддерживаемая версия Android. В области Permission задаются разрешения - доступ к компонентам системы, на которой будет выполняться наша игра: запись на внешние носители, доступ к камере, запись аудио, вибрация и прочее. Область Game Google Services/GameCircle Integration позволяет задать идентификатор для использования сервисов Google. В области Output задается путь, по которому будет сохранен итоговый пакет. Область Signing позволяет настроить свойства для подписания пакета для размещения его в сторах: задать версию, файл подписи.

Альтернативные сторы

Под конец статьи добавлю еще, что не стоит упираться и распространять свои приложения/игры только в топовых сторах - App Store, Google Play. Там все места заняли большие издатели, и покупатели в первую очередь смотрят на их продукты.

Обрати внимание на альтернативные сторы: Amazon AppStore, Opera Mobile Store, Яндекс.Стор и многие другие. На них меньше пользователей, меньше трафика, вместе с тем меньше конкуренции. Я не призываю ограничиваться тремя перечисленными, смотри шире. Лидирует платформа Android, между тем, кроме Apple AppStore, есть площадки для распространения iOS-приложений.

Появление альтернативных сторов связано не только с желанием их инициаторов заработать, дело тут и в национальных предпочтениях. Разговор идет о странах третьего мира и восточных товарищей - это Индия, Китай, Вьетнам и так далее. Там превалируют устаревшие Android-девайсы, и пользователи этих устройств готовы довольно часто совершать небольшие платежи за цифровые развлечения. Надо только правильно понять этот рынок. Поэтому выпускать там приложения/игры имеет смысл в сотрудничестве с местными дистрибьюторами. Тонкая восточная душа, сам понимаешь. На первое место выходит необходимость локализации своих игр для местных пользователей. Кроме того, в этих странах могут быть популярны игры других жанров: так же, как везде, казуалки, разные пазлы, экшны, гонки. Взгляни на следующую картинку об исследовании рынка. Она наглядно проиллюстрирует описанное выше.

Заключение

Подведем итоги. Статья началась с описания причин появления альтернативных движков и обзора самых популярных из них. Затем мы обсудили источники арта и другого стаффа для игр. Потом, выбрав один из движков, мы рассмотрели его основы и начали кодировать с его помощью простую двумерную игру - классические танки. Мы разработали простенькую аркаду с препятствиями, минимальным искусственным интеллектом, двумя врагами и оружием. После этого мы отладили свою игру прямо на девайсе под управлением Android и, когда все стало готово, собрали пакет для установки игры под любой Android. И все это в рамках одной статьи.

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

Что должны учитывать будущие ? С какого языка начать обучение? К чему стремиться? На кого равняться? И что необходимо сделать в первую очередь?

Большинство любителей рок-музыки рано или поздно берут в руки гитару. Фанаты спорта страстно мечтают о выходе на футбольное поле, баскетбольную площадку или теннисный корт. Ну а те, кто совершил сотни угонов в GTA, провел десятки часов в компьютерных клубах за Counter-Strike или достиг немалых успехов в MMORPG, наверняка задумываются о карьере разработчика игр.

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

К чему стремиться?

Перед походом в магазин вы составляете список покупок (хотя бы в голове). Перед поездкой в другой конец города – прокладываете маршрут. Ну а перед тем, как обучаться разработке игр, целесообразно задаться вопросом: чем именно вы хотите заниматься? Создавать мобильные приложения или браузерные игры? Трудиться в крупной компании или маленькой? Профессионально заниматься разработкой игр или посвящать этому свободное от работы время? И если первое, то что интересует вас больше: создание интерфейса, отшлифовка геймплея или написание скриптов?

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

Какой язык учить?

Кроме того, от цели зависит и ответ на животрепещущий вопрос: с какого языка программирования стоит начинать?

Так, будущим разработчикам игр вроде Minecraft и мобильных приложений под Android стоит обратить пристальное внимание на Java. Для начала советуем пройти интенсив . Тем, кто заглядывается в сторону iOS – на Objective-C. Для браузерных игр порой хватает знания Ruby-On-Rails. Для совсем маленьких и простых временами достаточно HTML. В производстве Flash-игр используется ActionScript, а для написания скриптов любой сложности вам понадобится JavaScript или, возможно, не столь распространенная Lua. Для создания же небольших консольных игр требуется знание C#.

Что до наиболее крупнобюджетных игр (так называемого класса AAA), то большинство из них оснащены своим или заимствованным у коллег "движком". Нередко, впрочем, весь "движок" или его большая часть написана на C++. Именно этот язык использовался при создании множества известных "игрушек" – от Doom 3 и Call Of Duty до FIFA и The Sims. В то время как классика вроде Quake была написана на C.

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

Достаточно ли одного языка?

Одна из прелестей программирования – возможность постоянного саморазвития. В разработке же игр (особенно крупных) самосовершенствование, в том числе изучение как можно большего количества языков, – не прихоть, а жизненная необходимость. Так, опытные разработчики, трудящиеся на благо гигантов игровой индустрии, нередко сталкиваются с необходимостью поочередно писать на 7-8 языках. При этом, помимо вышеуказанных языков, им приходится изучать, к примеру, Python либо и вовсе SQL (как вы понимаете, для создания баз данных).

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

С ЧЕГО НАЧАТЬ?

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

Практически все опытные разработчики вне зависимости от регалий и таланта начинали с небольших приложений: настольных игр, вариаций известных "игрушек", простеньких "флэшек". Тогда они не думали о крупных выставках вроде E3, а накапливали бесценный опыт. Почему бы не последовать их примеру? При этом не обязательно писать архисложный код. Для дебюта достаточно использования специальных программ для создания игр (к примеру, Game Maker). Ведь даже благодаря несложному инструментарию вы значительно облегчите себе жизнь. Во-первых, в миниатюре поймете логику и структуру практически любого игрового приложения. Во-вторых, набьете шишки, которые заживут во время перехода к серьезным проектам. Наконец, в-третьих, обогатите портфолио. Ведь даже простая "игрушка" требует массу времени, терпения и творчества для выдумки концепции, написании кода и устранения багов. Кроме того, показывает, что с производством игр вы знакомы не только в сухой теории.

Что брать за ориентир?

Тот, кто мечтает стать писателем, прочитает сотни книг перед тем, как напишет хотя бы одно слово. Мастера игры на фортепиано на зубок знают лучшие произведения Штрауса, Шопена и Бетховена. Известные же художники перед крупными выставками наизусть заучивали историю искусств.

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


Этапы создания компьютерной игры

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

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

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

Проектирование 1. : - , - , - .
2. : - , - .

1. Цель

Первое, что нам понадобится - это определиться с нашей целью. Что в итоге мы хотим получить? Если хотите, чтобы ваша игра «выстрелила», нужно для начала точнее прицелиться, а не бить наугад.

Этапом концепции и определения цели занимается руководитель проекта .


Жанр

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

Смотрим на круглую таблицу жанров как на мишень, и выбираем необходимые нам игровые геймплейные элементы (подробнее о таблице жанров можно узнать в статье «Жанры компьютерных игр »). Какие-то элементы подарят нам высокую популярность среди игроков (уничтожение, соревнование, герой, забота), какие-то – преданных, но придирчивых фанатов (тактика, контроль, уклонение), а какие-то – отсутствие серьезных конкурентов (обучение, логика, путешествие, экономика).

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


Сеттинг


Разделение компьютерных игр на жанры весьма специфично и не похоже на систему жанров фильмов и книг. Игровые жанры определяют лишь основные действия, которые будут совершать игроки в процессе игры, тем самым они отвечают только на вопрос "ЧТО?". На вопросы "ГДЕ?" и "КОГДА?" отвечает другая основная характеристика игры – сеттинг.

Сеттинг – это принадлежность игры к какой-то сюжетной теме или к определённому виртуальному миру. В среде компьютерных игр сформировалось несколько наиболее популярных сеттингов: фэнтези, научная фантастика (sci-fi), вторая мировая война, средневековье, стимпанк, постядерный мир, аниме, комиксы.

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

2. Средство

Цель игрового проекта задана, теперь нам нужно выбрать средства (материалы и инструменты) для её достижения. И тут мы сталкиваемся с необычным феноменом компьютерного мира – и материалом, и инструментом игрового проекта является одна и та же сущность – программный код. Код как строительный материал – это цифровые изображения, трехмерные модели, звуки и тексты в виде последовательностей единиц и нулей. Код как инструмент – это команды в строчках программного кода, управляющие игровыми объектами всех перечисленных типов.


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

Этим этапом занимаются программисты .

Прежде всего мы должны выбрать язык программирования, который нам наиболее подходит. После этого предстоит тяжелая и кропотливая работа по написанию программного кода, способного оперировать двухмерными или трехмерными объектами в пространстве, привязкой изображений и звуков. Для создания виртуального трехмерного пространства придется использовать сложные геометрические формулы для построения проекции 3D-объектов на плоскость (в уме компьютера объекты существуют в настоящем трёхмерном пространстве, но для вывода их изображения на плоский двухмерный экран приходится делать пересчеты). По ходу разработки придётся изучить все форматы изображений и аудиофайлов, всевозможные кодеки и кодировки.


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

3. Игровая механика


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

Молодые подростки (основная часть игровой аудитории) в большинстве своём оценивают игры по качеству графики, и не замечают, что красивые игры хоть и популярны, но их популярность длится всего несколько месяцев после релиза. А в сердцах игроков и в золотых списках вечной игровой классики навечно остаются совсем другие игры, может быть немного неказистые на вид, но имеющие потрясающе захватывающий геймплей. Чем разнообразнее и интереснее игровые возможности, тем дольше игрок остаётся в игре. Например, за что получила всеобщую любовь «MineCraft»? Уж точно не за примитивную кубическую графику, а за то, что эта игра дарит поистине безграничные игровые возможности.

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

Игровая механика, по сути своей, это свод правил, по которым будет функционировать игра. Какое действие произойдет, если игрок возьмет вот этот бонус? Если игрок соприкоснётся с врагом, то что случится тогда? Потеряет ли он здоровье от этого соприкосновения, или это случится только после удара врага? Если игрок подойдёт к машине, сможет ли он в неё сесть и прокатиться? А сможет ли игрок что-нибудь строить или хотя бы перемещать объекты? Таких вопросов может возникнуть несколько сотен или даже тысяч. Ответы на все эти вопросы и будут представлять собой игровую механику.


Объекты

Основой всей механики являются игровые объекты. Главный герой игры, компьютерные соперники, второстепенные персонажи (NPC), бонусы, подвижные объекты, декорации – всё это игровые объекты со своими свойствами и возможными действиями.


Управление

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


Физический движок


Если «управление» отвечает за перемещение подконтрольного нам персонажа, то физический движок отвечает за те движения, которые происходят без прямого вмешательства игрока. Эти действия имитируют физические законы реального мира (иногда немного искаженные в сторону фантастики). Брошенный мячик отскакивает от пола, опрокинутая бочка скатывается с наклонной поверхности, выстрел мощным оружием отбрасывает стреляющего назад, хрупкий предмет, брошенный с высоты разбивается – всё это примеры действия физического движка.

В готовых игровых движках чаще всего реализованы и физические движки. Вам лишь останется присвоить своим уникальным объектам уже готовые физические характеристики: вес, плотность, эластичность, разрушаемость. Если же задумаете создать свой физический движок, то для этого вам понадобится талантливый программист, хорошо понимающий принципы объектно-ориентированного программирования (ООП) и немного разбирающийся в классической физике.


Искусственный интеллект (ИИ)

ИИ отвечает за поведение компьютерных врагов или союзников.

Роль ИИ значительно разнится в зависимости от жанра игры. В экшенах действия врагов крайне примитивны; в RTS стратегиях достаточно пары десятков скриптов, чтобы придать сопернику кажущуюся разумность; в стелс-экшенах, слешерах и файтингах необходимо создать уникальную систему поведения для каждого типа врагов, иначе глупые враги сделают игру неинтересной. Серьезная стратегическая игра требует колоссальной работы над ИИ, а в простых казуальных играх и в онлайн-проектах, ориентированных на сражения только между реальными игроками, искусственный интеллект вообще не нужен.

4. Уровни


Правила игры в виде игровой механики готовы, теперь нам нужно создать площадки, где эти правила начнут работать. Созданные игровые объекты расставляются в отдельных виртуальных пространствах – уровнях (локациях). Игры чаще всего содержат множество отдельных уровней, переход между которыми происходит по ходу сюжета. Но в последнее время, благодаря возросшей производительности компьютеров, выпускаются игры с одним большим цельным миром, лишь условно разделяемом на различные локации (GTA, Skyrim).

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

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

Построением уровней занимаются левелдизайнеры .

В идеале левелдизайнеры берутся из числа заядлых игроков. Это происходит потому, что любой другой человек со стороны, пусть даже и творческий, но очень далёкий от темы игр, не сможет хорошо справиться с этой задачей. Левелдизайнер должен хорошо представлять себе игровой процесс, и чувствовать, как от перемещения объектов на уровне будет изменяться игровая ситуация.



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

Именно от дизайна (не оформления, а планировки) уровней зависит важнейшая составляющая игры – геймплей. (Это правило не действует лишь для большинства казуальных игр, файтингов и спортивных игр, где уровни крайне примитивны). Неинтересная и однообразная планировка уровней загубила множество игр с великолепным оформлением, подкреплённым новейшими технологиями. Если вы хотите создать полноценную увлекательную игру, а не пустышку в красивой обёртке, то на левелдизайн нужно потратить максимум творческих усилий.

5. Оформление


Созданием графики занимаются художники , геймдизайнеры .

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


Арты

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


2D, 3D модели

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



Анимации

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

В настоящее время для создания человекоподобных 3D-персонажей существует специальная технология «Motion Capture», позволяющая создавать анимации на основе движений настоящих людей. Эта технология доступна лишь крупным и очень богатым компаниям. Для использования Motion Capture нужно не только приобрести дорогостоящее оборудование, но ещё и нанять группу актёров, с которых будут записываться движения.


Фоны

С задними фонами всё гораздо проще – нарисовал один раз, поставил в нужное место на уровне без всяких изменений, и забыл.


Спецэффекты

Визуальные спецэффекты – это, по сути своей, те же анимации, только вместо перемещения объектов в них используются перемещения частиц и светофильтров. Лучи света в разные стороны при взятии бонусов, огонь на горящем здании, дымовая завеса после взрыва гранаты, лазерные лучи из дула винтовок, наложение фильтров размытия при нахождении под водой и фильтров затемнения в плохо освещённых местах – всё это спецэффекты. Без подобных эффектов игра будет казаться пресной и слишком обыденной. Использование спецэффектов добавляет игре яркости, сочности и экспрессивности.



Оформление экрана и меню

Оформить нужно не только игровые уровни, но и систему, объединяющую их в единое целое – игровое меню (строчки, кнопки, страницы настроек). Начальное меню – это вообще визитная карточка игры, и выглядеть она должна идеально. На игровом экране так же есть множество элементов, к которым можно применить оформление – количество жизней, лайфбар, миникарта, меню быстрого выбора действий, инвентарь героя, списки заданий, экраны диалогов. На английском языке всё это называют одним сокращением – GUI (Graphical User Interface - графический пользовательский интерфейс).

Оформлением интерфейса и меню занимаются художники , программисты и верстальщики html-страниц . (Сайт сайт)

6. Сюжет


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

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

Хотя, существование в игре сюжета лишь для галочки не даёт никакого положительного эффекта, разработчики продолжают придумывать всё новые и новые истории, одна глупее другой. Сюжет приносит пользу лишь в том случае, если он может зацепить чувства игрока. Для этого нужна уникальность, интересность и правдоподобность сюжета; каждый персонаж должен иметь свою неповторимую личность, и совершать поступки согласно ей; действующих лиц и событий должно быть не больше, чем может воспринять человеческий мозг, иначе сюжет превратится в никому не понятный винегрет; события должны происходить логично (загадочность и туманность приветствуется для поддержания сюжетной интриги, но и при этом должна быть скрытая от игрока логичность).


Скрипты, события


Самый лучший вариант – когда сюжет существует прямо внутри игры. Это достигается с помощью использования скриптовых сценок.

Скрипт представляет собой следующее: игрок заходит в определённое место, или совершает нужное действие, или выполняются ещё какие-то необходимые условия, и после этого начинают выполняться действия, запрограммированные вами на этот случай. Например, в военном 3D шутере поднимаемся на возвышенность, подходим к установленному пулемёту (условие выполнено), через 10-15 секунд после этого внизу вдруг начинается вражеская массированная атака, и нам есть на кого использовать пулемёт (произошли события).

С помощью скриптовых событий можно вносить разнообразие в игровой процесс или даже превратить игру в аттракцион нескончаемых скриптов (именно на этом построена серия игр Call of Duty). Единственный минус такого способа – у игрока уменьшается свобода действий. Всё происходит по воле скриптов, и мало зависит от действия игрока.

Продумыванием скриптов занимаются сценаристы , а их реализацией – программисты .


Диалоги, повествования


В старых классических играх сюжет существует обособленно от игрового процесса. Например, при загрузке или окончании уровней нас знакомят с сюжетной историей, рассказывают об отношениях между героями и врагами, объясняют, что и для чего нужно сделать на уровне. В процессе самой игры ничего из вышесказанного не имеет никакого значения, и игрок может смело пропускать все эти тексты. Чаще всего так и происходит - тексты остаются не прочитанными. А всё из-за того, что нет никакой веской причины их читать.

Другое дело – внутриигровые тексты или диалоги. Они происходят в процессе игры, но в безопасных местах, или с остановкой игрового времени, чтобы игрок мог сосредоточиться только на тексте. Повествования игроку приходится выслушивать, так как игра на это время замирает, но не останавливается совсем. А в диалогах ещё и нужно выбирать вариант ответа. Выбор варианта придаёт прослушиванию текста интерактивность и хоть какой-то практический смысл – правильно выбранный ответ может принести дополнительный бонус, облегчить дальнейшую игру или сохранить выбранный характер героя в ролевых играх.

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

Написанием текстов и диалогов занимаются сценаристы и писатели .



Видеовставки

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

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

Созданием видеовставок занимаются художники , аниматоры , 3D-модельеры , сценаристы , режиссеры .

7. Звук

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


Звуковые эффекты


Для любого маломальского игрового движения нужно добавить соответствующий звук. Это могут быть удары меча, нанесение рукопашного удара, звуки движения автомобиля, получение бонуса, обнаружения героя врагом. Не думайте, что это какое-то излишество, и можно обойтись всего несколькими базовыми звуками. Например, в большинстве 3D-Action игр пренебрегают добавлением звуков шагов главного героя и врагов. В результате – при виде от первого лица видно, что герой передвигается в пространстве, но кажется, что он не идёт, а плавно скользит вперёд. А враги без озвучки шагов вообще могут совершенно бесшумно подбежать к герою сзади и сильно попортить нервы игрокам.

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

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


Музыка


Кроме звуков для полноценной игры нужна и музыка (саундтрек). Она будет звуковым фоном для происходящего на экране. Музыка так же является одним из стилистических элементов игры, и сильнее всего влияет на настроение игрока. Готовую музыку нужно долго выбирать по подходящему темпу и настроению. Существуют множество как платных, так и бесплатных коллекции игровых фоновых композиций, которые можно использовать в своей игре (статья «Музыка для создания игр »). Или можно заказать композиторам написать новую музыку специально под игру.


Озвучка

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


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

8. Отшлифовка


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


Сведение материала (a-версия)

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

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


Устранение ошибок (b-версия)

Когда игра полностью собрана, остаётся лишь устранить получившиеся ошибки (bugs). Они появляются в любом случае, так как игра – это система со сложной структурой. Сами элементы игры наглядны и просты, но связи между ними настолько сложны и витиеваты, что процесс отладки и устранения ошибок может занимать до 40% всего времени разработки проекта. Полностью собранная, но ещё не проверенная на ошибки игра называется бета версией.

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

9. Продажа


Созданием игры и всеми творческими вопросами занимается студия разработчиков, а все прочие вопросы (кредиты, финансы, договора, защита прав, рекламные акции, локализации, продажи) обычно перекладываются на плечи другой организации – игрового издателя.

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


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

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


Локализация

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

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

Значительно упростить процесс локализации поможет отделение художественного текста от технической части игры. Для этого нужно размещать тексты, субтитры и аудиофайлы озвучки в отдельных легкодоступных файлах стандартных типов. А в программном коде игры нужно оставлять лишь ссылки, чтобы текст подгружался в игру из этих файлов. Наиболее популярные игры переводятся игроками-энтузиастами самостоятельно, без какого бы то ни было участия разработчиков. Отделение художественного текста ещё на стадии разработки игры очень сильно поможет таким энтузиастам сделать своё доброе дело.


Система продажи


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

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

Для небольших групп разработчиков идеально подходит распространение игры через системы цифровой дистрибьюции (крупные онлайн-магазины). Такой вариант обеспечивает новоиспеченную малоизвестную игру уже готовой аудиторией покупателей, которая сформировалась вокруг сервиса. Самый известный пример – сервис Steam. Благодаря огромной аудитории игроков, пользующихся Steam, почти каждая игра, вышедшая в этом онлайн магазине, сразу же приобретает мировую известность.

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

10. Поддержка

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


Выпуск патчей

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

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

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


Выпуск дополнений

Интересная и увлекательная игра без серьезных изъянов и ошибок даёт вам зелёный свет для дальнейшей творческой деятельности. Игроки «на ура» приняли ваш игровой продукт? Значит к уже готовой игре можно готовить дополнение или полноценную вторую часть, а начатый сюжет можно развить дальше, превратить его в целую эпопею или даже в полноценную игровую вселенную.

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


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

Давно мечтаете сделать свое приложение, имеете интересные идеи, хотите заработать на создании качественной игры? Безусловно, практически каждый пользователь загорался таким желанием, но часто останавливают сомнения, страхи и неуверенность. Ведь как создать игру на Андроид с нуля самому, если навыки программирования слабо развиты, владение английским языком оставляет желать лучшего, а никаких специализированных программ под рукой нет? Попытаемся разобраться.

Уровень сложности создания Android-игр

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

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

Что же необходимо знать и уметь человеку, решившему внести свое изобретение в игровую сферу? Для начала, это иметь хотя бы минимальные знания в языке программирования, которые с легкостью можно получить на курсах информатики или с помощью специальных учебников. Оптимальный вариант – язык Java . В виде альтернативы вполне можно представить программные коды, способные заменить конкретные действия в игре, но тогда вы должны хорошо владеть английским языком.

Также развеем заблуждение о том, что для создания приложения необходимо полностью знать Photoshop, иметь дизайнерский вкус и отлично рисовать. Но не стоит путать, например, новое приложение для общения с полноценной игрой. Если вы решили создать первое – там главное только текст и клавиши управления, но если настоящую игру – без художественных элементов не обойтись. И фишка в чем: эти элементы находятся в конструкторе. То есть, собственноручно рисовать вам придется очень редко.

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

Теперь подводим небольшие итоги. Если вы решили создать свою игру, то для этого требуется:

  • Идея, образное представление, о чем будет игра, знание ее основного сюжета;
  • Минимальное владение языком Java, ведь полностью без программирования (без нужных знаний) не обойтись;
  • Установленная на компьютере программа для создания продукта;
  • Свободное время, внимательность и желание трудиться.

Какую игру лучше всего создать

Четких ограничений нет, выбор в конструкторах обычно предоставляется обширный: квест, карточная игра, догонялки, стрелялки, экшн. Обилием жанров больше всего славится приложение Construct 2 .

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

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

Самое сложное направление для создания, это, конечно, экшн-игры, где присутствует детальный проработанный мир, обычно сделанный в 3D-формате , несколько главных персонажей, длительный сюжет и множество уровней. На примере рассмотрим известное приложение Modern Combat. Конечно, для такой мощной игрушки требуются десятки специалистов, хорошие вложенные деньги и месяца работы . Но это не значит, что пользователь сам не сможет создать 3D-игру. Нужны только хорошие умения и навыки, поэтому этот жанр следует оставить на потом.

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

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

Construct 2 — простая платформа для 2D приложений

Лучшее приложение в своем роде, которое занимает лидирующие позиции. Главное преимущество – это возможность создавать игры практически на все платформы , в том числе и на Android. Поддерживается и анимационный формат HTML5, с помощью которого созданные творения будут доступны для игры онлайн во всех браузерах, что немаловажно, ведь такие игрушки гораздо проще в функционировании.

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

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

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

К сожалению, существует и минус: в бесплатной версии можно экспортировать творения в браузеры, а оттуда открывать их на совершенно любой платформе, но бесплатно создать игру только для Андроид не получится. Для этого придется вкладывать деньги в платную версию, стоимость которой немного превышает 100 долларов. Зато потом возможности намного расширяются, игры без проблем можно делать чисто на Андроид или iOS, а с помощью установочных файлов открывать приложения на персональном компьютере.

Видео-инструкция как сделать игру на Андроид с помощью Construct 2 и Construct 3

Unity 3D — мощный движок для разработки 3D проектов

Если предыдущая программа позволяла создавать только 2D-игры, то Unity 3D уже выходит на новый уровень и предоставляет разработчикам все условия для создания отличного трехмерного проекта . Программа оснащена различными готовыми моделями, изображениями, скриптами и текстурами на любой вкус. Компиляция имеет высокую скорость, редактор, несмотря на свою многофункциональность, очень прост в использовании.

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

Единственное требование – это достаточно мощный компьютер, поддерживающий 3D-форматы и навык программирования среднего уровня , поскольку новичкам будет все же немного трудно разобраться.

Видео-инструкция по созданию игры с помощью Unity 3D за 45 минут

Game Maker — самый легкий вариант для новичка

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

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

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

Видео-мануал по программе Game Maker

Этапы создания игр

Делаем простую игру

Под простой игрой подразумевается самый незамысловатый сюжет . На примере рассмотрим такую идею: человечку необходимо преодолеть препятствия, чтобы благополучно добраться до финиша. К тому же, по дороге желательно собирать монетки. Согласитесь, воспроизвести такую картинку с помощью Construct 2 довольно просто и интересно. Рассмотрим приблизительные ориентировочные действия:

  • Создаем фон любого цвета, в нашем случае для натуральности лучше выбрать зеленый;
  • Делаем главного персонажа, им может выступать и животное, и человечек;
  • Проектируем монетки и расставляем их по всему фону; аналогичное проделываем и с препятствиями (изображение камней, дров – лучший вариант);
  • Теперь определяем взаимодействие персонажа с окружающей средой. Споткнулся о камень – игра окончена, поймал монетку – она продолжается, добежал до края фона – финиш.

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

Делаем карточную игру

Для такого жанра лучше всего использовать программу Unity 3D. Здесь же рассмотрим направления и шаги:

  • Делаем основной фон для карт;
  • Проектируем сами карты, то есть, инвентарь;
  • Задаем взаимодействия;
  • Определяем количество игроков;
  • Переводим меню игры из 3D в 2D;
  • Определяем конец игры.

Создаем РПГ-игру

Отличной программой для такого жанра является программа RMXP или тот же Unity3D , выпущенная японской компанией. Для создания подобной игры нужно время и внимательность, но ни с чем сложным вы не столкнетесь.

  • Придумываем основную идею будущей Андроид игры;
  • Пишем основной сценарий;
  • Рисуем базовую карту и добавляем объекты;
  • Создаем события.

Как создать онлайн-игру для Андроид

Отдельной схемы для создания именно онлайн игры не существует. Приложение данного типа делается с помощью вышеперечисленных программ, а куда публиковать свое творение – напрямую в Android и iOS, либо в браузеры – решать вам.

Обратите внимание! Создание игры без использования ПК стандартными методами невозможно. Большинство популярных программ ориентировано только на компьютеры.

Три 100% способа, чтобы заработать на своей игре


Первое – качественная и интересная игра.
Как и в любом другом деле, для хороших продаж продукт должен заинтересовывать и отличаться своей изюминкой. Старайтесь избегать избитых сюжетов, тщательно продумывать каждую деталь приложения. Даже если игра небольшая и простая – сделайте ее максимально качественной и «дорогой».

Второе – не следует самому искать спонсоров. Если игра достойная, и вы хотите ее продать, для начала выставите продукт на специальные аукционы, типа gamebrokage . К сожалению, шанс, что игрой новичка сразу заинтересуются, невелик, но попробовать стоит. Разумеется, первые проекты лучше создавать для более узкого круга людей, узнавать мнение друзей, близких и т. д.

Третье – собственная реклама. Если вы уже пустили свою игру на просторы Интернета, то для популярности необходима хорошая постоянная реклама. Можете создать свой портал игр, публиковать соответствующие записи в социальных сетях. Словом, делать все, чтобы ее заметили.

Многие из нас не раз задавались вопросом, как создать свою онлайн игру и заработать.

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

Можно ли создать свою игру и заработать, не имея навыков?

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

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

Возможно вас заинтересует: 10 лучших игр-приключений на Android и iOS за 2017 год. .

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

  1. Программист
  2. Художники и дизайнеры
  3. Гейм-мастер
  4. Комьюнити-мессенджер

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


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

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

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

Лучшие многопользовательские игры для Android и iPhone за 2017 год, .

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

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

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

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

Видеоурок — основы создания игр в GameMaker:

Поделитесь пожалуйста, если понравилось:

Возможно вам будет интересно еще узнать: