Как сделать пиксельную игру в construct 2

Обновлено: 02.07.2024

Курсы и туториалы по созданию двумерных игр — вторая статья из цикла «Разработка».

Автор: Дмитрий Старокожев. Начал программировать на пятом курсе университета, влюбился в Objective-C и разработку под iOS, после чего попал в Pixonic. Работает ведущим разработчиком на проекте War Robots, а в свободное время преподаёт.

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

Учить программированию в одной статье нет смысла. К тому же, руководств в интернете множество. Многие наверняка будут делать свои первые прототипы в 2D — на этой теме и сконцентрируемся сегодня.

Если вы решили делать сразу в 3D, не спешите закрывать страницу — знания всё равно пригодятся. Приступим.

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

Очевидно, что главная особенность двухмерных игр — отсутствие третьего измерения. Как определить, кто ближе к зрителю: машина, куст или огромный боевой робот? Чтобы решить эту проблему, во всех 2D-движках предусмотрен механизм сортировки спрайтов — то есть двумерных графических объектов — по оси Z. Он может называться Z-order или Sorting Layers — в любом случае, с его помощью можно перемещать объекты со слоя на слой.

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

Для разработки прототипа звуки и анимация в большинстве случаев не так важны. Но нужно понимать, что работа с ними в 2D значительно отличается от 3D. В трёхмерном мире анимация скелетная: у каждой модели есть «скелет» (rig). Двигая его участки, разработчик анимирует модель.

А в 2D анимация создаётся покадрово: нужно создать атлас изображений, чтобы они стали последовательностью кадров анимации (sprite sheet). Уолт Дисней всё делал кистью и роллером, и это были шедевры (с). Этим же способом можно создавать очень красивых рисованных персонажей. Как в Cuphead, которая разрабатывалась на Unity.

А вот со звуком в 2D всё проще. Если при отрисовке мира отсутствие третьего измерения накладывает ограничения, то работа со звуком, наоборот, упрощается. Не нужно учитывать расстояние от слушателя (персонажа в игре) до источника звука — слушателем всегда будет выступать сам игрок.

Но нужна ли вообще прототипу музыка? Не думаю, что можно дать однозначный ответ (как и с анимацией). Давайте посмотрим на Hidden Folks. Это не просто 2D-игра, а настоящее произведение искусства.

Весь звук в Hidden Folks состоит из странных похрюкиваний и притопываний её разработчика, что само по себе USP — уникальное торговое предложение игры. Каждое прикосновение к экрану смартфона заставляет улыбнуться. Ладно, если запись похрюкиваний вам не подходит, в Asset Store Unity можно найти огромное количество платных и бесплатных ассетов для прототипа, а иногда и для релизной версии игры.

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

Туториалы (tutorial) отличаются от курсов тем, что дают чёткий алгоритм действий для воспроизведения результата. Они не выходят за рамки поставленной задачи и отлично подходят, когда нужно сделать что-то конкретное, пока не пропал энтузиазм.

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

Есть YouTube-канал Brackeys. На нём — отличное вводное видео о том, с чего начать разработку платформера с плиточной графикой (tile based). Если сложно воспринимать на слух, можно включить английские субтитры.

Автор ролика приводит много примеров существующих проектов и объясняет, чем отличаются два различных подхода к созданию двумерных игр: sprite и tile based. В плейлистах канала можно найти староватый, но не потерявший актуальность туториал по созданию полноценного 2D-платформера с нуля — пошагово и со всем кодом, который можно повторить у себя и получить такой же результат.

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

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

Наконец, есть официальные туториалы от Unity. Видео сопровождаются текстовыми описаниями и даже листингами программного кода. В процессе обучения создаётся roguelike RPG в tile based мире.

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

Принимаясь за изучение нового туториала, не стоит волноваться о том, какую версию движка использует автор.

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

Если нужно подтянуть навыки программирования, то на арену выходит старый и проверенный игрок — Code School. Всё происходит прямо в интерфейсе сайта, который выглядит свежо и удобно. И не чувствуешь на затылке укоризненный взгляд Лобачевского со старого портрета над доской с графиком дежурств. Точно стоит обратить внимание хотя бы на бесплатные курсы, чтобы понять, насколько удобен такой формат обучения.

Есть официальные курсы от Unity, не надо далеко ходить. Кажется, что они и дальше готовы инвестировать в это направление (а после курсов можно еще получить сертификат).

У GeekBrains есть два отличных курса, разбитых по уровням сложности. Раз уж мы говорим о 2D-играх, нас интересует первый. Оба курса требуют определенной алгоритмической подготовки, программированию там не учат, только разработке на Unity.

Вы научитесь делать игры в 2D буквально с нуля: на первом уроке установите движок, а на восьмом уже запустите проект на Android. Вы даже можете заметить меня в списке преподавателей и случайно попасть на мой поток.

Наступает время самостоятельной работы. Пора писать код своей первой игры!

  • Определите главную механику. Например, у Tower Defence это строительство башен и волны врагов.
  • Найдите туториал по главной механике или по жанру в целом.
  • Реализуйте главную механику на практике, используя примитивную графику.

О нюансах 3D-игр и туториалах для них поговорим отдельно — в следующей статье.

image

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

Основные и важные моменты:
— Приложение разработано с помощью Construct 2 – игровом движке на HTML5, позволяющем портировать приложение на все популярные мобильные (и не только) платформы;
— Навыки программирования для реализации подобным функционалом не требуются вовсе;
— Повторюсь: статья описывает путь человека неопытного, поэтому если вы хотите начать – эта статья может показаться полезной и вам;
— Описаны следующие этапы создания приложения: разработка, портирование на мобильную платформу Android, интеграция с рекламными сетями, публикация приложения, продвижение (некоторое бесплатное подобие этой активности).
— Все сроки по данным активностям указаны с учетом того, что в данный момент я не занят на основной работе, поэтому мог посвящать этому целые дни.

Начало, Идея, основная концепция

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

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

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

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

Создание игры

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

Сделал набросок в один экран, продолжил прорабатывать физику главного Героя. В результате получилось следующее: при движении Героя вправо случайным образом генерируются разные по фасаду и размеру здания. При нажатии на здании создается условная веревка, соединяющая Героя и упомянутую точку касания. Остальное делает встроенный в Construct 2 физический движок. При нажатии на свободное от строений пространство условная веревка исчезает, Герой вылетает по касательной. Конец игры при падении на землю.

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

После реализации задуманной физики движения (т.е. осознания того, что задуманную игру действительно можно сделать посредством Construct 2) я приступил к внедрению некоторых деталей – необходимого минимума для любой мобильной игры:
— Нормальная графика (в качестве редактора использовал бесплатный Inkscape – очень приятный векторный редактор, работал с ним впервые и с удовольствием);
— Экран меню;
— Кнопки с рестартом уровня, паузой, выходом из приложения и всего такого;
— Экран с информацией об игре;
— Счет и локальное хранение лучшего результата на телефоне;
— Оптимизация «кода»;
— Доработка геймплея, создание препятствий (фонари, рвущие веревку и сбивающие героя голуби);
— Усложнение игры с каждым новым уровнем (голуби становятся быстрей и встречаются чаще, фонарей также становится больше, здания – реже);
— Сделал корректным отображение элементов HUD на устройствах с различным разрешением.

Одной из значительных трудностей была реализация одного бесконечного уровня на всю игру. Проблема заключалась в том, что layout сделать бесконечным нельзя. Игры типа infinite runners делаются по принципу движения космического корабля из небезызвестного сериала Futurama: не герой двигается относительно всего остального, а все окружающее пространство движется относительно героя, а герой стоит на месте. В таких играх физика как таковая отсутствует, поэтому в моем случае это было фактически нереализуемо. В итоге я пошел по пути наименьшего сопротивления – длина layout’а считается одним уровнем, при его достижении с героя снимаются все данные о его движении, спрайт с Героем удаляется, в начале layout создается новый с теми же характеристиками движения, и это считается следующим уровнем.

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

Ниже представлены иллюстрации эволюции игры:



Экспорт

Игру, созданную на Construct 2, можно портировать на Android, iOS, Windows Phone. Это помимо не интересующих меня в данный момент Facebook Games, Chrome Web Store и пр.

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

Для экспорта есть несколько альтернатив, мой выбор пал на Intel XDK. Удобный и понятный XDK, быстрое тестирование на телефоне без необходимости переустанавливать приложение после каждого изменения.

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

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

В результате оказалось, что Intel XDK ведет себя так только в случае использования физического движка Box2D web. Для решения этой проблемы они создали отдельный движок Box2D asm.js, однако мое приложение с этим движком упорно отказывалось запускаться. В результате в качестве инструмента экспорта я переключился на CocoonJS. Construct 2, насколько я понял, уже не особо с ними сотрудничает (в самом конструкторе в перечне инструментов экспорта CocoonJS скрыт как deprecated exporter). Однако в случае использования физики это единственный работающий (хорошо работающий) вариант. Да и со стороны CocoonJS плагины для Construct 2 все еще создаются и обновляются.

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

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

Монетизация

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

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

Единственный способ подключения рекламы к созданной в Construct 2 игре под Android и экспортируемой через CocoonJS – это связка рекламных сетей Mopub + Admob и остальные. Реклама MoPub подключается к приложению при экспорте в CocoonJS. Однако эта рекламная сеть, помимо своих объявлений (которых у нее мало, и оплата за них небольшая), может служить посредником между другими сетями, выставляя при этом для каждой сети минимальную стоимость за показ. Таким образом, можно в одном приложении показывать рекламу нескольких рекламных сетей, и для показа будет выбрана одна из наиболее дорогих. Admob, безусловно, является фаворитом среди рекламных сетей для Android, поэтому в качестве дополнительной я остановился на ней.

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

Мой выбор формата показа рекламы пал на Full screen ads в момент нажатия кнопки Back или Restart, но не чаще чем раз в 2 минуты. Использование баннеров на экранах меню бессмысленно, ибо никто там надолго не задерживается; баннер на экране с уровнем в случае с динамичной аркадной игрой еще более бесполезен.

По данной причине я решил не ждать и выйти из сложившейся ситуации достаточно простым способом. Очевидно, никто не будет показывать рекламу в приложении каждые 10 секунд. Независимо от реализованного вами способа выбора момента показа рекламы (будь то нажатие определенной кнопки, или показ каждые n минут), между двумя показами проходить сколько-нибудь существенное время. Допустим, 2 минуты. В Construct 2 при подключении рекламы делаем следующую вещь: заводим переменную AdsLoadTrigger, обозначающую, была ли подгружена реклама, и, если нет – каждые 10-20 секунд пробуем загрузить снова, вплоть до удачной попытки. Таким образом, при фактическом Fill Rate в 20% можно без труда достичь близкой к 100% вероятности показа рекламы в нужный вам момент.

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

Публикация

Напомню, что портирование производил на устройство под Android: разумеется, самой популярной площадкой для распространения мобильных приложений является Google Play, однако существует немало альтернатив, про которые не стоит забывать. Таким образом, помимо очевидного выбора в пользу Google Play, я использовал также одни из наиболее популярных альтернативных магазинов: SlideMe и GetJar.

Учитывая, что для продвижения в наиболее перспективном Google Play очень важен мощный уверенный старт (для попадания в топы разделов) – альтернативные площадки можно использовать для обкатки приложения на пользователях, устранения основных замечаний и сбора данных для аналитики (конечно, если такая возможность была учтена в приложении).

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

Продвижение

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

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

В качестве примера приведу полезную, на мой взгляд, ссылку на перечень платных и бесплатных сайтов-ревьюверов приложений для Android, iOS и Windows Mobile.

К описанию игры во всех магазинах приложений была указана ссылка на необоснованно-патетический промо ролик игры с изображением основных моментов геймплея. При создании промо ролика использовался видеоредактор «Camtasia Studio 8». Его возможностей более чем достаточно для создания подобного материала, при этом в программе можно очень быстро и самостоятельно разобраться. Для меня приятной особенностью является то, что в ней возможна запись экрана компьютера (я делал запись геймплея, запуская созданную игру в браузере) с возможностью удаления курсора. К сожалению, программа не бесплатна, однако 30 суток на пробу этого продукта вы имеете.

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


Идеально подходит для амбициозных новичков в игрострое. Для его освоения не требуются навыки программирования: встроенный визуальный язык сценариев позволяет настраивать любой элемент парой кликов. Хорошая платформа для разработки 2D платформеров и РПГ. Готовый результат экспортируется в Steam или Facebook прямо в программе. В GameMaker Studio есть пробная версия, которая распространяется бесплатно. Если к концу тестового периода запал игродела не иссякнет — лицензионная версия стоит 99$.
Игры на GameMaker Studio 2: Undertale, Catana Zero, Hotline Miami 2: Wrong Number.
  • интуитивно-понятный интерфейс;
  • обширная документация;
  • дружелюбное комьюнити;
  • наличие русификации;
  • поддержка шейдеров.

Минусы:

  • медленная работа движка из-за элементарного языка программирования;
  • после привыкания к GameMaker Studio могут возникнуть сложности при переходе на более продвинутые игровые движки;
  • на бесплатной версии нельзя скомпилировать исполнительный файл;
  • недостаточно функционала для разработки 3D проектов.


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

Универсальность Unity — ее же основная проблема. Хотите сделать что-то нетривиальное — готовьтесь перепиливать движок специально под нужды своего проекта.

Игры на Unity 3D: The Forest, Гвинт, Escape from Tarkov, Ori and the Blind Forest.

  • быстрое и удобное прототипирование;
  • бесплатная версия для начинающих разработчиков и студентов;
  • совместимость с любой платформой;
  • разработка как небольших, так и AAA-проектов;
  • во встроенном магазине доступно более 50.000 ассетов

Минусы:

  • медленная работа: например, алгоритм сжатия LZW занимает 180 секунд в многопоточном режиме;
  • ограниченный инструментарий. Многое придется допиливать самостоятельно;
  • закрытый исходный код. Словите баг — придется ждать обновления;
  • нестабильность редактора и отладчика.

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

Еще одна особенность игрового движка CryEngine 3 — упрощенное создание продвинутого AI внутри игр за счет комбинации XML и LUA скриптов.

Игры на CryEngine: Prey, Crysis, Far Cry.

  • множество инструментов для работы с графикой;
  • гибкая ценовая политика: базовая версия бесплатна, пока проект не заработает 5000$;
  • поддержка DirectX 12, Vulkan API, VR;
  • относительно простая настройка ИИ, если сравнивать с Unity и UE4;
  • в комплекте с базовой версией идет GameSDK — полноценный шутер, который адаптируется; под ваши нужды. Эдакий современный аналог Source Engine.

Минусы:

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


Движок-надстройка над Cocos 2D под мобильные устройства. Механика игрового движка основывается на спрайтах и узлах — упрощенных 2D изображениях, которые настраиваются, поворачиваются, увеличиваются и изменяются другими способами. На Cocos Creator легко работать, если вы знакомы с Unity: точно такой же интерфейс, но заточенный на 2D игры.

Игры на Cocos Creator: Clash of Lords 2, Diamond Dash, Hill Climb Racing

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

Начало

Итак, приступим.
Включаем программу и создаем новую Direct-X игру

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

Перед нами появился "белый лист" на котором и будет расположена вся наша игра.
Увеличим его размер. Для этого на панели слева изменим два параметра:
Width (Ширина) и Height (Высота) на значения 1024 и 768 соответственно

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

Теперь увеличим размер окна, в котором отображается игра. Для этого на той же самой панели щелкнем по синей надписи Properties. На появившейся панели найдем параметры Window Width (Ширина окна) и Window Height (Высота окна) и измени их значения на 1024 и 768. Кстати, параметр Name - это название вашей игры, а Creator - автор.

Теперь можно создать главного героя. Щелкаем по белому листу правой кнопкой мыши, в появившемся меню выбираем Insert an object, у нас открылось новое окно, в котором перечислины все типы объектов, нам нужно найти и выбрать (одним щелчком левой кнопки мыши) объект Sprite. После этого нажмите кнопку Insert, расположенную справа.

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

Теперь выбираем, где мы создадим главного героя, щелкаем по нужному месту на уровне левой кнопкой мыши. Открывается графический редактор Construct. Вы можете нарисовать главного героя прямо в нем или загрузить уже готовый фаил, мы пойдем вторым способом. Для этого сохраните на жесткий диск спрайт, расположенный ниже. (Как видите, на его руках видны пиксели, неровности, от них мы избавимся позже)

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

Откройте графический редактор и щелкните по кнопке Open (Вторая по счету сверху). Выберите нужный фаил (Загруженную только что картинку)
В окне появился наш главный герой. Теперь выбираем на панели слева предпоследний инструмен - Hotspot. Выбрав его, щелкаем мышкой в приблизительный центр спрайта (Середина шлема). Это необходимо, так как теперь главный герой, при прицеливании, будет вращаться относительно этой точки.

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

Далее выбираем инструмент Image Points и щелкаем немного правее ствола пистолета. Позже мы сделаем, чтобы герой стрелял из этой точки.

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

Герой появился на уровне, но, оказалось, он слишком большой. Щелкаем по герою и открываем вкладку Common расположенную слева на панели. Изменяем параметры Width и Height с 256 на 128 и видим, что герой уменьшился, это также сгладило неровности на его руках. Теперь в той же самой вкладке изменим параметр Name на Gero

Поведения

Для упрощения создания игры в Construct используются поведения (Behaviors). Разберемся, что это такое, на примере нашего героя.

Итак, щелкнем по нему и откроем на панели слева вкладку Behaviors. Около пункта New behavior нажмем на синюю кнопку Add.

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

Открылось новое окно, содержащее все поведения. Добавляем самое первое поведение 8 Direction.

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

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

В будущем мы сделаем, чтобы герой поворачивался к указателю мыши, поэтому его автоматический поворот в сторону движения надо отключить. Для этого во вкладке 8Direction Bihavior изменяем параметр Rotation на None. Теперь герой не будет поворачиваться по направлению движения. Вы всегда можете проверить, что у вас получается, нажав на кнопку Run All.
Нужно добавить еще один объект. Щелкнем по уровню правой кнопкой, далее Insert an object и добавляем объект Mouse and Keyboard. Он понадобится нам позже.

Редактор Событий

Теперь сделаем, чтобы герой поворачивался по направлению к курсору.
Для этого мы используем редактор событий. С помощью данного модуля мы будем создавать основу нашей игры.
Открываем его щелчком левой кнопки мыши по вкладке Event Sheet Editor расположенной внизу экрана, под окном уровня.
Итак, у нас открылась вкладка, окно уровня заменилось на окно Event Sheet, оно включает в себя все события и действия, все, что происходит на данном уровне.
Теперь создадим свое первое событие. Щелкаем правой кнопкой в окне с надписью Right click to begin и выбираем строку Insert Event. Далее выбираем объект System и среди списка всех действий находим Always щелкаем по нему, после чего жмем на кнопку Finish

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

У нас появилось новое событие - "всегда", то есть действия, добавленные к нему будут происходить постоянно.
Добавим к данному событию новое действе, щелкнув по красной кнопке + New Action рядом с ним. Выбираем объект Gero, далее находим и выбираем Set Angle towards position (Установить поворот к точке) в открывшемся списке. У нас появилось меню с двумя параметрами - координатами точки, к которой надо повернуться. Выделяем "0" в ячейке X Co-ordinate. После этого щелкаем два раза по объекту MouseKeyboard в окне с низу, выбираем пункт Get mouse X и жмем Finish. Такуюже операцию проделываем с ячейкой Y Co-ordinate, только теперь выбираем Get mouse Y.

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

Жмем Finish и запускаем проверку нашей игры.

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

Теперь сделаем, чтобы герой мог стрелять
Открываем вкладку Layout Editor (позже я буду называть ее "Редактор уровня"), расположенную слева от Event Sheet Editor (буду называть его "Редактор событий"). Добавляем новый объект - спрайт (Напомню, что для этого щелкаем правой кнопкой по уровню, далее жмем Insert an Object, выбираем Sprite и щелкаем по уровню). В графическом редакторе загружаем спрайт пули, расположенный ниже

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

Уменьшаем размер пули до 16, а также изменяем ее имя на Bullet
Width = 16
Height = 16
Name = Bullet
Добавляем поведение Bullet (Вкладка Behaviors синяя кнопка Add).

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

Изменим параметр Speed у нового поведения на 750, а также Accuracy на 5.
Speed = 750
Accuracy = 5
Что же мы только что сделали? Параметр Speed - это скорость полета пули, а Accuracy - разброс при стрельбе в градусах.
Перетаксиваем левой кнопкой мыши пулю за край уровня (белого листа)

Открываем редактор событий. Добавляем новое событие (Правая кнопка, Insert event)
Insert event -> MouseKeyboard -> On click -> Finish
(Эта запись означает, что после нажатия Insert event мы выбираем объект MouseKeyboard, далее выбираем On Click, после чего появляется окно с параметрами, но их нам менять не надо.)

К только что созданному событию добавим действие (Красная кнопочка справа от события On Left Mouse Button Clicked)
New action -> Gero-> Spawn another object
Не нажимая Finish щелкаем по кнопке Pick an Object и выбираем Bullet. Теперь под надписью Image point name or namber Ставим 1(Это значит, что пуля будет появляться около синей точки с номером 1, помните, мы поставили ее около дула героя).

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

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

Завершение первой части

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

Итак, открываем вкладку Layers, расположенную справа.
В появившемся окне нажимаем кнопку создать слой ниже (На ней нарисован лист с зеленой стрелочкой, направленной вниз)

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

Теперь у на есть два слоя. Щелкаем по верхнему и на панели слева переименовываем его в Game, а нижний слой в BackGround

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

Щелкните один раз по слою BackGround, теперь все создаваемые объекты будут появлятся на этом слое.

Создаем новый объект, но не спрайт, а Tiled Background. Объект такого типа отлично подходит для создания фона.
В графическом редакторе загружаем картинку, приведенную ниже, это и будет наш фон.

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

Растягиваем полученный объект так, чтобы он закрыл весь уровень (Белый лист). Теперь нажимаем на зеленый замочек напротив слоя Background. Щелчком левой кнопки мыши выбираем слой Game. Закрытый замочек напротив слоя означает, что мы не сможем выбирать объекты, расположенные на нем.

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

Создадим новый спрайт, в графическом редакторе заливаем его произвольным цветом.Изменим имя объекта на Block
Во вкладке Groups открываем Attributes и ставим галочку напротив Solid.

Создаем TDS. Часть первая — Construct 2 — DevTribe: инди-игры, разработка, сообщество

Мы только что сделали объект Block твердым, это значит, что игрок не сможет проходить через него.

Щелкаем по блоку правой кнопкой и нажимаем Copy, теперь по пустому месту и - Paste. Делаем так четыре раза. Растягивая и перемещая эти блоки, огораживаем уровень со всех сторон.

Запускаем игру и смотрим, что получилось.

К статье прилагается исходник, который можно открыть в Construct

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

Читайте также: