Создание игры для мобильных от А до Я (Часть 1).

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

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

1) Программа Construct 2 (желательно полноценную версию, которую вы можете купить или скачать)

2) Базовые знания английского

3) Базовые знания программирования (следование, ветвление, цикл, массив)

4) Терпение, много упорства и главное желание

5) Умение хоть как-то рисовать и строчить музыку (Или берем бесплатную)

И так, поехали.

Для начала нажмем File – New – New empty project и появляется окно с содержимым:

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

Layout1(Уровень1, куда мы помещаем объекты, героя, фон), Event sheet (Само окно ввода действий)

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

Код программы как правило выглядит следующим образом: Условие(объект) – действие. Давайте для начала создадим объект и присвоим ему действие. В любом месте рабочего пространства Layout щелкаем два раза левой кнопкой мышки. И щелкаем на sprite.

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

Здесь мы можем вставить картинку из файла или же нарисовать самому.

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

Создали? Теперь выделяем наш объект и в левом меню в графе Name давайте изменим имя на Player (то бишь игрок). Чтобы заставить нашего героя двигаться, нужно прежде всего задать ему поведение. Для этого в левом меню нажимаем на ссылку Behaviors и жмем на +.

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

Основные поведения игрока представлены в разделе Movements. Сейчас мы должны решить, как будет находиться камера относительно игрока. 8 Direction подразумевает, что игрок может вращаться и двигаться во всех направлениях, то есть логично, что в таком случае игра будет видом сверху. Platform подразумевает, что вид будет сбоку. Остальные атрибуты лишь добавляют более разнообразные поведения (их мы пока трогать не будем). Для героя я выбрал поведение Platform (Для 8 Direction все используется по аналогии, с единственным отличием, что не требуется платформа, по которой будет передвигаться игрок). Если нам нужная игра для пк, то следует добавить Keyboard(+Mouse), так же два раза щелкнув мышкой по рабочей области, ну а если нужно как большинству для мобильных устройств, то добавляем Touch.

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

Для платформера нам потребуется и сама платформа (Для 8 Direction она нужна только в роли стены или препятствия). Создадим новый спрайт(или TiledBackground) и выставим ему поведение Solid(Поверхность). Вот так:

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост
Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

Теперь можем запустить и попробовать, что же мы такого сделали. По умолчанию управление будет назначено стрелками на клавиатуре. Для подобного фона как у меня, стоит добавить TiledBackground (добавляем так же как и спрайт) и установить на значение слева в Position (0,0).

Но как это перевести на тач? Здесь все просто, нам для этого нужны кнопки управления. Создать их можно с помощью дополнительных спрайтов и слоя. Давайте для начала создадим новый слой. Сделать это можно перейти слева на вкладку Layers и нажать +. И находясь на этом слое добавить новый спрайт (Если вы вдруг создали спрайты не на тот слой, их можно переместить в левом меню в разделе Layer). В итоге у нас должно получиться нечто похожее (Естественно, кто добавил мышку и клавиатуру, то вместо тача там должны быть они):

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

Теперь самое время задать действие кнопкам. Нажимаем Add event и выбираем Touch – Is touching object(для клавиатуры это будет звучать как Keyboard – on key pressed и выбираем нужную клавишу). Теперь в add action добавляем действие. Выбираем объект Player – Simulate control , и выбираем направление или прыжок.

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

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

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

Наше условие будет звучать так: (Если игрок коснется лестницы, то ось Y будет выполнять функцию остановки в точке прикосновения, но в тоже время герой сможет двигаться в обоих направлениях оси Y). Чтобы не расписывать полностью каждое действие(Это будет очень долго…), я просто оставлю каментарий, чтобы было проще в нем разобраться(По началу всегда сложно, но понимание происходит в процессе работы). Для начала присвоим поведение для лестницы, а именно Jumpthru(Чтобы игрок мог на нее запрыгивать, а не только взбираться снизу).

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

Значения при которых игрок может цепляться за лестницу (указываем свои)

1. Для того, чтобы сделать два условия в одном, нужно нажать на созданном одном условии правой кнопкой и нажать Add another condition

2. Для создания постусловия, нужно захватить левой кнопкой уже созданное и перетянуть под нужное, либо так же нажать правой и выбрать Add – Add sub-event

3. Чтобы создать инвертированное условие, необходимо нажать правой кнопкой на нем и выбрать Invert

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

Но так же можно заставить нашего героя двигаться автоматически. Для этого есть специальное поведение – bullet (пуля). Заставляет двигаться объект из точки А в точку Б(до бесконечности).

Давайте зададим нашему герою(или объекту) движение. Выберем героя и в меню Behaviors добавим bullet. Если запустим уровень, то увидим, что герой автоматически перемещается. Но вот камера остается на одном места(не порядок!). Чтобы она поспевала за ним, стоит ее привязать к движущемуся объекту. Еще раз нажимаем Behaviors и выбираем Scroll to. Запускаем! Другое дело! Теперь можно превратить уровень в автораннер, сделав несколько платформ и оставив кнопку прыжка, а так же установить на верхнем слое(на котором находятся кнопки) в свойстве Parallax значения (0,0), чтобы кнопка не уходила назад с камерой, а двигалась с ее же скоростью. Давайте попробуем, что же у нас получилось.

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

Осталось устранить проблемы, которые могут возникнуть в игре. Для начала присвоим поведение Bullet фоновой картинке и блокам. Теперь необходимо склеить наш фон, чтобы он был ввиде бесконечной ленты. В add event выбираем фон и выбираем Compare X и записываем выражение снизу. В Action выбираем Set X и пишем формулу со скриншота. Формула она единая для всех, она склеивает начало и конец фона.

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

Теперь настало ввести глобальные переменные. Нажимаем правой кнопкой на пустом поле с кодом и выбираем Add global variable. Я назвал ее NextBlock и указывал значение по умолчанию 600. Оно будет варьироваться у вас в зависимости от размера уровня, по этому подгоняете под себя. Теперь создадим вторую, которая будет измерять пройденный путь. Я назвал ее CurrentDistance. Для каждого блока логичнее чтобы он генерировался, чем мы будет выставлять огромное количество блоков на уровне. Создадим условие. System – Current variable и сравним расстояние дистанции и блока, если оно больше, то добавляем действия:

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

Первое действие нужно, чтобы на уровне добавлялся один блок, а не наложение друг на друга

Во втором действии создаем блок в слое и в определенной позиции. По умолчанию (0,0) и лучше его не менять

В третьем действии мы сначала указываем длину блока (команда рандом - означает произвольное значение в пределах заданного) и высоту.

В четвертом 180 значение означает нулевой угол движения (Здесь вы можете разгуляться со своей фантазией и например сделать лесенку спуска и угол движения вниз).

В пятом, как догадались, идет следующий блок

В шестом указываете свои значения. Здесь все будет зависеть от положения рабочей области уровня(Можете поменять значения в Layout size в левом меню. Так же старайтесь, чтобы уровень был за пределами видимой части справа и снизу, чтобы не было проблем с разными разрешениями экрана!). Естесственно подгоняя значения(Я написал +40, чтобы на дисплеях формата 16:10 блоки были видны).

Ну и в последнем, если блок вышел за пределы экрана – он удаляется (Destroy - удалить).

Для полноты уровня, чтобы действия игрока были плавными, давайте еще добавим такие действия:

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

Вообще Start of layout предназначена на те параметры, которые должны появиться с самого начала уровня. Ну и давай наконец добавим окончание уровня, не бесконечным же его делать. Для этого возьмем переменную CurrentDistance и зададим условие с расстоянием, а так же действие, чтобы переменная считала пройденные пиксели. Создадим условие Every tick (Ежесекундное обновление, полезная штука чтобы считать рейтинг или количество предметов, например). Для этого вводим эту формулу и присваиваем ее в переменную. Если говорить яснее, расшифрока формулы гласит каждый пиксель пройденный блоком за единицу времени я буду записывать в переменную CurrentDistance.

Создание игры для мобильных от А до Я (Часть 1). Construct 2, Gamedev, Игроделие, Мобильные игры, Длиннопост

Действие Go to переносит нас на другой уровень. Ну и логично что мы его должны создать. В правом меню где у вас находится Layout, нажимаем правой кнопкой и кликаем Add Layout. Система предложит нам выбор создать уровень с окном действий или без (В любом случае его можно создать потом).

Ну и напоследок можете написать на этом уровне что-то вроде «Уровень пройден!».

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

P.S. Может кому надо, я могу написать пост про написание 8-bitной музыки и описание всех синтезаторов, которые я задействовал в игру. Не судите строго, это мой первый пост :). Если будут вопросы - пишите.

Ссылка на игру: https://play.google.com/store/apps/details?id=com.DreamMaker...

1
Автор поста оценил этот комментарий

Теперь понятно почему google play завален всякой хуйней...