Как сделать мобильную игру на construct 2

Добавил пользователь Валентин П.
Обновлено: 15.09.2024

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

  1. Знакомство со средой Construct2
  2. Подготовка к работе
  3. Первые шаги. Тайлмаппинг

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

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

  1. Нажать Ctrl+N
  2. Попсово зайти в FILE - Create New Project

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

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

Во вкладке HOME расположены достаточно простые инструменты управления процессом - первые три секции в принципе не юзабельны так как для представленных там операций использются общеизвестные хоткеи. Четвертая секция - Configurations - не используемая нами возможность выбора настроек программы. Пятая вкладка - Online - набор ссылок на различного рода информацию по движку.
Шестая вкладка - Preview - это уже более юзабельный раздел. Тут расположена кнопка превью сцены (Run layout), дебаг сцены (Debug layout) и экспорт проекта. Обратите внимание - в левом верхнем углу есть маленьгкие аналоги представленных функций.
Седьмая вкладка с единственной функцией - открывает стартовую страницу в редакторе сцены.

Это белое поле и есть редактор сцены - тут то мы и будем в дальнейшем расставлять игровые объекты и всячески визуализировать нашу игру. Ключевой момент в редакторе сцены - это вкладки вверху. Сейчас там мы видим надпись Layout 1 и Event Sheet 1 - соответсвенно Сцена 1 и Листинг событий 1. В первом мы "рисуем", во второй - создаем игровую механику.
Уровни строятся по принципу "Одна сцена - Один листинг", но при этом в листинг может быть подключено сколько угодно других листингов - об этом мы поговорим позже. С редакотором сцены на этом можно закончить.

Едем дальше - смотрим направо. Здесь у нас два блока, и первый из них - Инспектор проекта (Это не самое удачное название, но суть оно не меняет) .

Инспектор проекта - это иерархическая структура вашего проекта, браузер объектов если хотите. Сразу обратим внимание на две закладки - Projects и Layers. В первой закладке отображаются все открытые в данный момент проекты. Во второй - отображаются все слои выбранной в данный момент сцены. Чуть позже я покажу логику работы с этим, там ничего сложного. Сейчас у открыт Новый проект в браузере проектов, и там несколько папок: Layouts (сцены), Event sheets (Листинги событий), Objects types (объекты игры), Families (семьи), Sound (звуки), Music (музыка), Files (подключаемые файлы игры). Пройдемся кратко по списку.

Layouts (сцены)
Здесь хранятся все сцены проекта. Создать новую сцену можно двумя способами - продублировать существующую через нажатие на ней ПКМ, или же создав новую через нажатие на папке со сценами ПКМ. При создании новой сцены С2 спросит вас о необходимости создать под сцену свой листинг - можно создавать, но иногда в этом нет необходимости. Для удобства вы можете создать подпапки - к примеру если игра подразумевает несколько различных групп сцен. Открыть сцену можно через двойное нажатие на ней ЛКМ, при этом открытие каждой новой сцены не закроет предыдущую в редакторе сцен.

Event sheets (Листинги событий)
Здесь отображаются все листинги с событиями игры. Создать новый листинг можно только через нажатие ПКМ на папке листингов, дублировать листинг как сцену нельзя. Для удобства можно опять же создавать подпапки. Открыть листинг можно двойным нажатием ЛКМ на ней, и как в случае со сценами - новый листинг не закроет предыдущий открытый.

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

Families(семьи)
Здесь хранятся так называемые "семьи" объектов. Добавить новую семью можно через ПКМ - Add new family. Редактировать - тоже через ПКМ - Edit. Семья в С2 - это группа объектов, для которых можно назначить какую либо одну общую характеристику, например поведение или эффект. Это очеь удобно хотя бы потому, что позволяет экономить события в листинге. К примеру нам нужно сделать так, что при попадании ракеты во все объекты на карте происходит взрыв. Вместо того, чтобы прописывать события столкновения ракеты с каждым объектом на карте (а их порой может быть не один десяток), мы просто собираем все эти объекты в Семью и делаем одно событие столкновение ракеты с семьей. Кроме того - один объект может находиться в нескольких семьях одновременно, и при этом к нему можно будет обратиться в действиях как к одному самостоятельному объекту.

Sounds/Music (Звуки/Музыка)
Тут все просто - в этих папках хранятся звуки и музыка игры. Добавляются они через ПКМ - Import Sounds, Import Music. Рекомендуется использовать для звуков формат ogg и mp3 для музыки. При импорте С2 сам производит конвертацию в несколько музыкальных форматов, но лучше удалять все неиспользуемые и оставлять только mp3 и ogg. Это значительно снизит вес игры, что немаловажно для игр, разрабатываемых под браузер и мобильные платформы.

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

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

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

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

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

Сделаем простой финт ушами и переключимся с Редактора сцена на Редактор Событий. Это наш "подвал" игры - здесь мы будем по крупицам выстраивать механику всех взаимодействий.

Сейчас у нас тут пусто и дескрипшн рекомендует нажать ПКМ для начала работы с листингом. Важный но очевидный нюанс - действия в С2 выполняются каждый тик последовательно, начиная сверху и дальше вниз по листингу, поэтому сначала уничтожать объект, а потом на его месте ставить другой не получится. Еще один важный момент - тик - минимальная единица времени в С2, примерно равная 0,016 секунде. С такой скоростью в идеале будет выполняться листинг событий игры. Это важный момент, касающийся вопросов оптимизации игры, которые мы будем постепенно рассматривать в дальнейшем, и возможно - посвятим какой-то урок.
Итак мы в редакторе событий. Руководствуясь советами текста на экране, жмем ПКМ и видим меню, как на скрине. Идем по пунктам:

Add comment
Создает над выделенным событием комментарий - идеально в качестве разграничителя действий и напоминаний.

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

Add global variable
Создает глобальную переменную. Такая переменная хранит информацию "через всю игру" - т.е. обратиться к ней можно из любого листинга любой сцены.

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

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


Всё. Вводная часть закончилась. Давайте уже делать игры и развивать отечественный геймдев. Для начала подготовим рабочее пространство. А готовить мы его будем под top-down shooter на тему танчиков. За наш курс мы реализуем механику игры, сделаем врагов, обозначим игровую цель и сделаем пару пикапов. Это будет программа минимум.

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

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

Нас интересует значение Layout size. Это непосредственно размер сцены в пикселях.
Давайте сделаем наше поле 2000х2000. Для удобство ввода, можно нажать на плюсик рядом со значением и ввести отдельно размеры по ширине и высоте. После ввода жмем ENTER - и получаем результат. Теперь на для фантазии доступно больше места. Здорово. Теперь, я уверен, многим в глаза бросился пунктирный прямоугольник в левом верхнем углу нашего полотна. Это не что иное, как периметр нашего окна, в котором будет отображаться игра. Давайте его тоже поменяем.

Для этого идем в Браузер Проектов (помним, справа, Верхний блок, вкладка Projects) и жмем на самое верхнее название - **New project*** - таким образом мы выберем наш проект весь и получим доступ к его настройкам в целом как программы. Возвращаемся на панель свойств.
Я намеренно опускаю скриншоты своих перемещений по интерфейсу, чтобы вы смогли сами поискать и соориентироваться в нём.
Перед нами - свойства нашего проекта.

Совладав с разбежавшимися глазами и страстным желанием сразу заполнить всю авторскую информацию о вашей игре, находим пункт Window Size и ставим там значения 640 и 480. Жмем Enter и видим что наш пунктир сдвинулся. Отлично. Давайте пока мы здесь, выберем способ проверки проекта. Опустим глаза чуть ниже и найдем пункт Preview Browser. Жмем на выпадающий список и выбираем:

default - браузер системы по дефолту.
Chrome - Safari - известные браузеры на вкус и цвет
Node-Webkit - самостоятельное ехе-приложение в виде оболчки браузера на основе хрома.
Custom - какой-то сторонний браузер, указанный в настройках С2 (Меню File - Preferences).

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

Давайте сделаем одну оптимизирующую вещь - "округление пикселей". Это позволит снизить нагрузку на движок при линейной отрисовке графики. Ищем пункт Pixel rounding и ставим там On.

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

Чтобы закончить уже с площадкой - уберем белый фон. Чтобы не мешал. Потому что фоны мы можем всегда себе сделать сами благодаря слоям. Идем в панель со слоями (помним, она справа, во вкладке Layers, верхний блок). Выбираем наш единственный слой нажатием ЛКМ на нем. И снова метаем взгляд влево - к свойствам. У нас открылись свойства слоя - ищем Transparent и ставим ему значение Yes. Оп, и белое пропало. Чуть позже будет понятно зачем оно пропало.

Теперь Важная вещь. Добавим первые объектыв игру. Заодно и разберемся наконец-то, что это такое в С2.

Я не совсем коректно называю это объектами, так как технически это Типы объектов, но это не критично. В данном случае верно и понятно будет и так и так. Добавим двойным кликом типы Mouse, Keyboard. Последним добавляем Tilemap. Это не принципиально, просто там будут всплывающие окна, до которых мы доберемся через пару абзацев. Пока что ответьте в первом появившемся окне "Use recommended settings" а второе окно просто закройте как обычно.
Добавлять можно по одному типу за раз, потому не пугайтесь, что менеджер объектов каждый раз закрывается после двойного клика. Чтобы избежать путаницы в дальнейшем, старайтесь давать имена объектам сразу! В нашем случае мы дадим имя только Объекту TileMap:

Почему только ему? Потому что
а) Два других объекта отвечающие за клавиатуру и мышь больше не смогут быть добавлены
б) Бессмыслено
Впрочем именовать тайлмап в нашем случае тоже в какой-то степени бессмысленно, но я это сделал для демонстрации, где можно подписать объект. Ничего страшного, если это не было сделано в менеджере объектов. Если вы выберете объект на сцене или в Инспекторе проекта, то в его свойствах тоже можно будет указать имя. Или можно это сделать прямо в Инспекторе проектов.
Кстати заглянем туда и убедимся, что у нас там появилось три объекта: Mouse, Keyboard и Gamemap (он же TileMap).

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

Жмем два раза быстро на наш TileMap. Нам открывается встроеный графический редактор С2 - мы его уже успели заметить, когда только добавили тайлмап в проект. Я не буду расписывать все прелести этого редактора, потому что все знают что такое Пэйнт и что в нем можно делать. Скажу, что редактор вполне пригоден для работы и используется личной мной к примеру для отрисовки какой-никакой пиксельной графики.
Не будем отвлекаться - перед нами карта тайлов.

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

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

Закрываем редактор. Только что мы загрузили карту тайлов. Зоркий глаз мог обратить внимание, что размер её составляет каноничные 512х512 пикселей. Это Важно. Старайтесь всегда делать значения размеров спрайтов и любых других графических объектов каноничными: 8х8, 16х16, 32х32, 64х64, 128х128, 256х256, 512х512. Это заметно облегчит отрисовку большого кол-ва графики движку, так как спрайт 9х9 уже будет считаться за спрайт размером 16х16, оставшиеся пустыми пиксели будут требовать лишних расчетов при прорисовке. Один такой косяк конечно погоды не сделает, но на мобильных устройствах средней мощности 60+ спрайтов с неправильными размерами заметно снизят FPS.

И теперь момент творчества. Чистого творчества.
Идем в Менеджер Карт Тайлов (лютое наименование, я для ясности даже скрин приложил, чтобы вы не потерялись.)

  1. В Менеджере проектов выбран сам TileMap
  2. Так как он выбран на панели свойств мы видим его свойства
  3. Так как он выбран, мы видем его в менджере Карт тайлов (еще раз - это нижнияя правая панель, вкладка Tilemaps)
  4. В редакторе сцен этот объект занимает всю площадь.

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

Нам нужно, чтобы черная рамка выделяла тайл нужного размера. Поэтому идем в свойства Тайлмап (все та же панель слева) и ищем пункты Tile width и Tile height. Ставим и там и там 64. Смотрим что у нас получилось в менеджере Карты Тайлов рамка должна выделять один квадрат тайла.

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

Если у вас результат напоминает что то вроде этого - ура. Если нет - повезло, еще раз перечитаете написанное, поищите ошибку, наткнетесь на что-нибудь новое, изучите сами движок.
Сохранимся. Идем в меню FILE - Save project as single File.

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

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

Следующие советы могут помочь вам достичь максимальной производительности для мобильных устройств:
Убедитесь , что WebGL включен , так как на устройствах , которые поддерживают его, как правило , значительно повышает производительность.
Избегайте использования слишком много объектов или частиц , так как мобильные устройства имеют более низкие пределы того , что настольные компьютеры могут обрабатывать.
Место объекты , используя одни и те же режимы наложения или эффекты на одном слое. Например, если у вас есть много объектов с использованием присадок режим наложения (обычно используется для взрывов, лазеров и других эффектов), убедитесь , что все эти объекты расположены на отдельном слое. Также убедитесь , что они созданы на этом слое , если объекты порождаются или созданные во время выполнения. Переключение между эффектами может привести к снижению производительности, и делает это гарантирует , что все объекты , которые используют один и тот же эффект нарисованы в то же время. Это описано более подробно в блоге , как работает Construct 2 WebGL визуализатор .
Избегайте объектов с большими площадями прозрачности. Прозрачные пиксели все еще занимают время рендеринга, даже если они не появляются визуально. Обрежьте все изображения, используемые для устранения расточительного прозрачное пространство. (Shift + Crop в редакторе анимации будет обрезать всю анимацию.) Дроблению крупных объектов с большими прозрачными областями , чтобы ряд более мелких объектов также может повысить производительность рендеринга и экономии памяти. Например, добавление границы окна с помощью экрана размером прозрачный спрайт с границами нарисованных по краям будут выполнять плохо , как она до сих пор , чтобы заполнить большую прозрачную область в середине; разделив ее на четыре отдельные объекты для каждого ребра является гораздо более эффективным.
Избегайте больших площадей перекрытия между объектами. Визуализатор работает спина к фронту, а если объекты имеют много перекрытия, перекрывающее область будет иметь пиксели , оказываемые снова и снова. Это может использовать до скорости заполнения емкости мобильного GPU довольно быстро.
Если у вас есть непрозрачный фон, установить Clear фон для Нет в свойствах проекта. Это позволит избежать избыточно очистки весь экран каждый кадр , когда он будет очищен так или иначе рендерингом непрозрачный фон.
Общие причины плохой работы

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

Нет аппаратного ускорения
Обычно даже медленнее Canvas 2D визуализации до сих пор аппаратное ускорение с помощью GPU (Graphics Processing Unit). Однако некоторые устройства имеют нестабильные драйверы графической подсистемы и производители браузеров отключить использование графического процессора , чтобы избежать аварий ( так называемые "ГПУ" черный список). На очень старых устройствах ускорения GPU может не просто быть поддержаны. Смотрите ниже раздел о Определение GPU в Chrome черный список ниже для получения дополнительной информации.

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

Несоответствующий использование объекта Tilemap
не уместно использовать объект Tilemap для отображения больших изображений. Объект tilemap рисует плитку по-плитку, но можно оптимизировать , если есть области той же плитки. Это описано в блоге Tilemap лакомых кусочков . Если вставить большое изображение , чтобы объект Tilemap, а затем штамповать сетку плитки , чтобы отобразить увеличенное изображение, каждая плитка отличается. Поэтому никакая оптимизация не возможна, и вызов Жеребьевка должна быть выдана для каждой плитки. Если изображение нуждается в 10x10 сетки плитки для отображения, то ему нужно будет выдавать 100 вызовов отрисовки. Один спрайт или плиточный фон, путем сравнения, принимает один раздаточный вызов каждый. Поэтому этот тип использования объекта Tilemap может быть в сотни раз менее эффективно , чем использование другого объекта. Объект Tilemap следует использовать только для плитки на основе игр, где одна плитка является дизайн уровня блок полезен сам по себе, а не частью более крупного изображения.

Слишком много объектов с помощью физики поведение физики очень ресурсоемкие. Использование слишком большого количества объектов с поведением физики может вызвать значительное замедление. Вы должны создавать свои игры , чтобы использовать несколько крупных объектов : Физика , а не множество мелких объектов физики.

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

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

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

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

Использование спрайтов вместо бесшовного фона
Создание слишком много объектов может привести к замедлению работы , и распространенная ошибка заключается в использовании сеток объектов Sprite вместо Плиточные фоновых объектов . Это похоже на использование tilemaps неадекватно. Например, 20x20 сетка спрайтов имеет 400 объектов, что является значительное влияние на счет объекта. Один плиточный фон может заменить сетку спрайтов и он рассчитывает только как единый объект. Плиточные фоны специально оптимизированы для повторения их текстуру так что в данном случае речь идет буквально в 400 раз эффективнее , чем сетка спрайтов. Всегда используйте бесшовного фона вместо того чтобы повторять спрайтов , где это возможно.

Не размещать все используемые объекты в макете
Если объекты не помещаются в макете , но создаются события, Construct 2 будет загружать текстуры для этих объектов момент их создания. Это может привести к кратковременному паузу или "Jank" и сделать игру чувствовать себя менее отзывчивым. Этого можно избежать путем размещения каких - либо используемые объекты в макете. Они могут быть размещены за пределами экрана и уничтожены при запуске , чтобы избежать вмешательства в игровой процесс. Затем Построить 2 подожмем все свои текстуры при запуске макета, избегая любого "Jank" , как они создаются и уничтожаются во время выполнения.

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

Следующие вещи часто обвиняют в том, влияющим на производительность (как, частота кадров во время выполнения), но, вероятно, имеют мало или вообще никакого эффекта:

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

Форматы изображений (например , JPEG, PNG-8, PNG-32) влияет на размер загружаемого файла , но не оказывают никакого влияния на производительность во время выполнения или использования памяти (все они распакованы до 32-битного растрового изображения при запуске).

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

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

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

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

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

Проверьте свой проект на любом количестве устройств и браузеров, как это возможно.

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

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

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

Есть три системы выражения , которые также важны для индикации производительности:

кадров в секунду - возвращает текущие кадров в секунду. Обычно максимальная скорость составляет 60 кадров в секунду, но она может меняться в зависимости от системы.

cpuutilisation - возвращает текущую оценочную использование главного потока Javascript. Это приближение , сколько доступного процессорного времени для обработки Javascript используется. Она варьируется от 0 до 1, поэтому выражение раунд (cpuutilisation * 100) будет возвращать процент. Несмотря на свое название это не сообщает общее использование системы центрального процессора, и может быть неточным , так как это оценка производится из временных измерений в Javascript, поэтому не слишком сильно полагаться на него.

визуализатор - возвращает либо canvas2d или WebGL в зависимости от средства визуализации в использовании. WebGL визуализатор, как правило , значительно быстрее , чем Canvas2D, но только если браузер поддерживает его и не занесен в черный список ГПУ. Для получения дополнительной информации см Technology раздел.

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

Набор текста в кадр и "FPS" и круглые (cpuutilisation * 100) и "% CPU (" & рендерер & ")"

Это отображается строка как 60 FPS, 30% CPU (WebGL) , указывающий на частоту кадров, приблизительное время процессора и средства визуализации.
Определение GPU в черный список Chrome

Одной из наиболее распространенных причин низкой производительности является поддержка GPU выключению из-за неустойчивых водителей. Это приводит к тому, игра вернуться к разработке программного рендеринга, которые могут искалечить производительность на низких конечных устройств. Браузер Google Chrome обеспечивает некоторые диагностики, которые можно использовать, чтобы проверить это на Windows, Mac, Linux и Android устройств.
Статус Аппаратное ускорение

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

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

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

Чтобы заставить аппаратное ускорение включен в Chrome, посетите хром: // флаги через адресную строку. В верхней должен быть пункт под названием Override списка программного рендеринга . Нажмите Включить . Обратите внимание , что ваши изменения не вступят в силу до тех пор , пока нажмите Перезапустить кнопку , которая появляется в нижней части экрана после изменения параметра.

После перезапуска, устройство должно быть в состоянии в полной мере использовать ускорение GPU, в том числе с поддержкой WebGL. Это позволяет тестировать реалистичные аппаратные возможности устройства, не страдая из-за низкой производительности в черный список.

8 доступных игровых движков, на которых можно сделать свою игру

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

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

GameMaker Studio 2

Именно GameMaker Studio 2 – это тот движок, на который стоит обратить внимание в первую очередь. Он подойдет людям, которые ничего не понимают в игростое и не имеют соответствующего образования. Он простой в освоении за счет встроенного языка сценариев, который придумали создатели движка, чтобы разработка игр стала максимально доступной.

Идеально подойдет для разработки 2D платформеров и ролевых игр. Также движок позволяет легко реализовать кросс-плей в своих проектах. Есть пробный период для тестирования возможностей, но если захочется серьезно заняться созданием игр, придется заплатить $99 за постоянную лицензию, то есть никаких месячных или готовых платежей – платим один раз и получаем инструмент навсегда.

Плюсы GameMaker Studio 2:

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

Минусы GameMaker Studio 2:

  • Слишком простой язык сценариев, в котором легко запутаться, если проект большой;
  • Из-за простоты языка программирования теряется производительность проекта;
  • Если долго сидеть на этом движке, то в будущем будет сложно перейти на более продвинутый, например, Unity или Unreal Engine 4.

Ren’Py

8 доступных игровых движков, на которых можно сделать свою игру

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

Используется Ren’Py в основном для простых симуляторов и 2D квестов. Делать что-то сложнее на нем, скорее всего, не получится, но при желании можно попробовать. У движка открытый исходный код, поэтому к нему часто выходят различные дополнения для разработки. А еще довольно большое комьюнити, с которым можно пообщаться и получить бесценный опыт.

Плюсы Ren’Py:

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

Минусы Ren’Py:

  • Есть ограничения в поддержке различных механик;
  • Ориентирован в первую очередь на 2D проекты, поэтому с 3D работать сложно;
  • Изначально был заточен под конкретные жанры, соответственно, какой-то шутер от первого лица или стратегию в реальном времени на нем сделать практически нереально.

Construct 2

8 доступных игровых движков, на которых можно сделать свою игру

Как создаются видеоигры от идеи до продажи

Разбор всех этапов разработки видеоигр начиная от цели будущего проекта и заканчивая старатом продаж.

Здесь очень легко сделать прототип игры, а затем навешивать на него интересный контент. При этом движок подходит исключительно для 2D игр, сделать на нем что-то в 3D крайне сложно и долго, проще воспользоваться тем же Unity или аналогами. Несмотря на это, сложные 2D игры вроде длинных jRPG на нем сделать реально, но придется брать бизнес-версию, которая обойдется в $4 в месяц или $60 в год. Это при условии, что движок будет использовать один человек. Есть и другие пакеты бизнес-версии, и там расценки отличаются.

Плюсы Construct 2:

  • Не нужно писать код, идеально подойдет новичку;
  • Множество инструментов для простой разработки 2D игр;
  • Интуитивно понятный интерфейс, легко разобраться с тем, как создавать игры.

Минусы Construct 2:

  • Неудобно использовать для 3D игр;
  • Чтобы сделать игру более проработанной, придется платить;
  • Редко появляются обновления движка с новыми возможностями. Как правило, просто шлифуется готовое.

libGDX

8 доступных игровых движков, на которых можно сделать свою игру

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

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

Плюсы libGDX:

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

Минусы libGDX:

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

Phaser

8 доступных игровых движков, на которых можно сделать свою игру

Сразу уточним, на этом движке сделаны не оригинальные Snake и Pacman, а их усовершенствованные копии. Когда создавались оригиналы, данного движка еще в помине не было. Суть Phaser в том, что он позволяет делать различные 2D проекты максимально удобным способом. Он поддерживает язык HTML, соответственно, разработка игры на нем чем-то напоминает создание сайта. При этом есть масса готовых инструментов, которые помогут быстро собрать простенький проект.

Именно Phaser сейчас используется, чтобы дать вторую жизнь старым играм наподобие Snake и Pacman. Умельцы по всему миру собирают на них игры своего детства или делают что-то похожее. У движка отличная документация и очень активное сообщество. Здесь вам всегда помогут с реализацией проекта, и это одна из причин, по которой движок берут для своей первой игры. Также на официальном сайте есть раздел с кучей готовых спрайтов, уровней, модулей с физикой к игре, аудиодорожками и всем остальным. Из наработок сообщества вполне реально собрать оригинальную и затягивающую игру.

Плюсы Phaser:

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

Минусы Phaser:

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

Unity

8 доступных игровых движков, на которых можно сделать свою игру

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

Программирование и киберкультура для школьников: Minecraft, Dota 2 и Unity

Учить детей играть в Minecraft и Dota 2 еще со школы? А почему нет? В какое прекрасное время мы живем.

Также стоит отметить встроенный магазин, в котором есть множество готовых ресурсов для создания игр. Например, Corgi Engine и Rex Engine, которые предлагают готовый набор для управления игрой и реализации физики. Что касается спрайтов и 3D моделей, то их тут десятки тысяч, есть платные и бесплатные. Сам же Unity распространяется в виде бесплатной версии, Unity Plus за $35 в месяц и Unity Pro за $125 в месяц.

Плюсы Unity:

  • Есть инструменты для быстрого создания прототипа будущей игры;
  • Можно достичь высокого уровня производительности в проекте;
  • Универсальное решение, которое используется как для маленьких проектов, так и для ААА-тайтлов.

Минусы Unity:

  • Проект имеет закрытый исходный код, если вы столкнетесь с каким-то багом, то придется ждать обновления Unity;
  • Редактор кода и отладчик часто работают плохо и отнимают кучу времени у создателя;
  • Не такой низкий порог вхождения, как в других движках. Чтобы сделать на нем игру, придется многое выучить.

CryEngine

8 доступных игровых движков, на которых можно сделать свою игру

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

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

Плюсы CryEngine:

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

Минусы CryEngine:

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

Unreal Engine 4

8 доступных игровых движков, на которых можно сделать свою игру

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

Оказывается, Unreal Engine 4 может быть невероятно фотореалистичным, а не только мультяшным

Профессиональные разработчики поделились скриншотами локаций на движке Unreal Engine 4, которые доказывают, что на нем можно не только мультяшные.

Преимущество движка в том, что создатели выпустили несколько серий обучающих роликов. С их помощью даже при минимальных познаниях в программировании можно попробовать сделать свою игру. К тому же здесь простой интерфейс и удобная система программирования элементов, которая состоит из специальных блоков. UE 4 подойдет для создания игр любого жанра, причем как в 2D, так и в 3D. Он абсолютно бесплатный, но если ваш проект взлетит и заработает более $3000, то придется постоянно платить создателям движка роялти в размере 5%.

Плюсы UE 4:

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

Минусы UE 4:

  • Высокий порог вхождения, до UE 4 лучше попрактиковаться на более простых движках и начать изучать программирование;
  • Если проект выстрелит, то вам придется платить создателям движка пожизненно;
  • Не самые удобные инструменты для 2D проектов, и именно с ними здесь часто возникают проблемы во время разработки.

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

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

Данный урок будет очень полезен новичкам и тем, кто ни разу не пробовал создать игру. Прочитав его вы научитесь создавать простые игры и разберетесь с интерфейсом программы. В нем мы вместе создадим простейшую игру жанра 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

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

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