image

Привет Хабравчане!

Сегодня я хочу рассказать вам о том, как можно сделать игру без навыков программирования. И да, это не просто красивое и заманивающее название, в созданную игру можно будет играть на Windows, Mac OS, Linux, Android и может быть даже на… iOS? Но об этом позже. Перед началом чтения статьи, я хочу дать вам мое понимание того, что создание игры без навыков программирования – это действительно не круто. Но знаете что еще больше не круто? Тот факт, что вы, владея языками программирования, сутками работаете над кодом, путая ваше рабочее место с постелью, нанимаете дизайнеров, договариваетесь со знакомыми музыкантами, платите рекламщикам, выпускаете свой продукт, а он не окупается! Ну, то есть игру, вашу, в любом случае будут скачивать, и какой-то доход будет капать. Но, будете ли вы довольны тем, какой в итоге получилась ваша игра, и как она продается? К чему я это все говорю? Если у вас в голове живет яркая идея, и вы давно хотите попробовать себя в создании игр, но единственный ваш тормозной элемент, это незнание компьютерных языков, смело пробуйте себя в этом деле. Если же вы владеете языками программирования, и может быть наплодили уже пару не плохих проектов, которые приносят прибыль, данная статья так же будет вам полезна. Я не советую никому здесь бросать все свои знания программирования, и начинать лепить игры в программе, о которой пойдет речь. Мое мнение на этот счет, достаточно простое. С помощью данного приложения, вы сможете создать презентацию вашей игры, затратив намного меньше времени, или как минимум ролик геймплея, который можно будет бросить на YouTube, создать шумиху, получить обратную связь, и работать над игрой, грея себя приятной мыслью, что ваша идея работает, люди ее оценили и ждут. Это не значит, что создание игр, в этой программе, ограничится лишь демо-версиями. Если вы действительно вложитесь душой в это дело, то спокойно сможете создавать полноценные проекты.


image

Что это за зверь такой?



Речь в этой статье пойдет об игровом конструкторе, под названием Construct 2. Если честно, когда я слышу словосочетание “игровой конструктор”, мне становится не по себе. Хочется перестать читать статьи, в которых присутствует такая фраза. Честно. Потому что ни одна действительно популярная игра не была создана с помощью “такого” игрового конструктора. Лично я, таких примеров не знаю. В нашей богатой и огромной стране, тем более. Мне на ум приходит компания Zeptolab, очень профессионально и качественно, вложившаяся в игру, которая приобрела огромную популярность благодаря своей игровой механике, графике и звуковой составляющей, написанная без всяких конструкторов. Это не реклама. Я не работаю в Zeptolab. Просто приятно осознавать тот факт, что качественные мобильные игры делаются в нашей стране и нашими соотечественниками. Кто же тогда использует игровые конструкторы? Творческие люди и конечно школьники. Молодые ребята, осознавшие, что для создания какой-либо игрушки, не нужно напрягаться, а можно посмотреть пошаговый урок в интернете, по созданию платформера и сварганить своего “Марио” за один день. Я кстати, не скрываю того факта, что ознакомился с Construct 2, будучи студентом 2 курса. Идея создания игр без программирования, это сладостная мечта, которая манит многих. Правда, чуть позже, выясняется, что помимо создания игровой механики без применения программирования, нужно как минимум, уделять большее внимание развлекательному стилю и контенту игры, графическому оформлению и звуковому сопровождению. И делать все это не по принципу “Звук шепелявит, но зато картинка хорошая, пофиг, прорвемся”. А подходить к своему проекту ответственно, доводя до блеска каждую деталь. Как бы парадоксально это не звучало, в целом, я считаю, что это правильное развитие в создании игр. Такие конструкторы, помогают набить шишек, и показать на наглядном примере, новичкам и людям с горящими глазами, что игрострой, даже без программирования, это очень трудоемкий и больше творческий процесс. Поэтому, я не призываю вас, по окончанию прочтения статьи, мгновенно опробовать программу в деле, если у вас нет какой-либо идеи. С другой стороны, вы можете получить бесценный опыт, который позволит вам реализовать ваши фантазии в проект, который захватит весь мир своей потрясающей креативностью и геймплеем, или даст вам возможность написать отличную статью на Хабре.

Просто как 2 + 2



В 2010 году, когда я только хотел прикоснуться к созданию игр, я искал способ, как сделать это без программирования. Си, ява? Нет уж, спасибо. Хочу создавать, а не программировать! Как бы глупо не звучало это выражение, но оно всплывает у людей не знакомых с языками программирования и желающих создать игру века, достаточно частенько. Мой выбор пал на Construct Classic. В двух словах. Программа была бесплатной, позволяла создавать двухмерные игры DirectX 9, с поддержкой физического движка и предоставляла возможность продавать свои творения на основе GPL лицензии. Вау, ну посмотрим. Подумал тогда я. Уроков на тот момент по конструктору было очень даже предостаточно. Какого было мое удивление, когда практически на момент моего изучения программы, вышла вторая версия конструктора, которая очень не слабо, расширила свои возможности, но к сожалению, хотя скорее к счастью для авторов, стала платной.

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

Область программы делится на два окна. Графическое окно и окно описания действий геймплея, то есть основного кода (механики игры). Для наглядности, вот вам пример написания описания действий и событий. Мы хотим сделать игру, в которой наш персонаж, прыгая на врагов, уничтожал бы их, и собирал бы за это монетки. Когда количество монеток достигало бы 1000, на экране бы появлялась картинка “Новое достижение 1000 золотых”. Следовательно, в Construct 2 это выглядит так:

— Когда персонаж сверху прыгает на врага – враг уничтожается
— Когда враг уничтожается – в месте, в котором уничтожился враг, создается объект монетка
— Когда персонаж прикоснется к объекту монетка – объект монетка уничтожается, а в переменную “Очки уровня” добавляется число 100
— Если переменная “Очки уровня” равняется 1000 – Картинка с надписью “Новое достижение 1000 золотых“ становится видимой

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

Давайте возьмем в качестве примера описания действий в Construct 2, игру Doodle Jump.

image

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

— Когда персонаж приземляется на объект платформа – то к переменной “Очки игры” добавляется число 100, на оси X (по любым координатам) и на оси Y (на координатах от -100 до 20) появляется объект платформа, персонаж симулирует поведение прыжка, издается звук прыжка
— Когда персонаж находится вне экрана,
— Если платформа вне зоны активного экрана – платформа удаляется

Мы только что написали Doodle Jump. Не правда ли просто? Конечно, нет. Все чуть сложнее. А если вы хотите чтобы это работало правильно, нужно тестировать и убивать на это немало часов. Изменять свойства силы прыжка, скорость передвижения влево, вправо и т.д. Но в целом, это все, что вам нужно знать, чтобы начать создавать игру.

Я не просто так выбрал в качестве примера Doodle Jump. Не потому что она достаточно просто расписывается в Construct 2 (хоть это вовсе не так). Повторяю, создание игр, это сложно и долго. Без программирования, вы можете столкнуться с тем, что не сможете реализовать то, что задумали, и вам придется идти на уступки или жертвы, задействования излишней графической составляющей вместо кода или путем подключения внешних модулей или скриптов. Никто не запрещает вам программировать, подключаете плагин JavaScript и изменяйте код вручную, как вам угодно. И это, если честно, потрясающе. Потому возможности создания игр, таким образом только расширяются. Но благо, конструктор уже разросся, став достаточно мощным, дружелюбным и простым в использовании. Многие вещи представлены в готовом варианте, вам достаточно лишь применить их и изменять свойства таким образом, чтобы подстроить под вашу задумку. Вернемся к Doodle Jump. На днях я сделал видеоролик пародию на игру “Doodle Jump”. Я назвал ее “А чтобы было бы, если бы Doodle Jump, был экшеном”. Для создания данной пародии, я использовал Construct 2.



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

image

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

25. Клавиатура, когда нажата правая стрелка, переменная оружия равна единице, постоянно – оружие не переворачивается
*Когда главный персонаж пародии, прыгает вправо, оружие не поворачивается в другую сторону

26. Клавиатура, когда нажата левая стрелка, переменная оружия равна единице, постоянно – оружие переворачивается
*Когда главный персонаж пародии, прыгает влево, оружие поворачивается в другую сторону

27. Когда я два раза кликую мышкой по объекту ClounHero – Добавляется 112, 177 и 54 очка в переменную “Score”. Влючается поведение “Пуля”. Объект двигается с заданной в опциях скоростью на 90 градусов. Объект пистолет уничтожается. Через 2 секунды объект ClounHero уничтожается.
*Когда главный персонаж стреляет по врагу, враг падает вниз а затем уничтожается через 2 секунды. В этот момент главный персонаж получает очки опыта.

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

image

Да здравствует HTML5



Я думаю, многие умные люди, уже догадались, откуда же берется такая бешеная кроссплатформенность игр в программе. Windows, Windows Phone, Mac OS, Linux, Android, iOS, Chrome Store, Amazon AppStore, Blackberry и интернет страницы. Это неполный список того, куда вы сможете выложить вашу игру. Все это достигается благодаря тому факту, что игры будут созданы на HTML5. К примеру, для генерации на PC и Mac, используется Node-Webkit. Создается приложение, которое и будет вашей игрой. На Android, игры преобразовываются не напрямую в apk файл, а в разбросанные файлы HTML5. С помощью бесплатного iNTEL SDK вы импортируйте файлы из программы, тестируете игру на вашем устройстве, и создаете готовый проект для публикации в Google Play. С момента выхода в свет первой версии Construct 2, программа потерпела просто громадное количество изменений, путем добавления поддержки новых платформ и самое главное, пожалуй, оптимизации игр. Нынешние устройства с 2, 4, 8? ядрами на борту, вполне потянут вашу игрушку.
Construct 2 – это действительно мощный инструмент для создания игр. Если у вас есть возможность писать на JavaScript, с помощью плагина в Construct 2, у вас открываются неограниченные возможности по созданию игр. Не забуду напомнить и о том, что Construct 2 прекрасно дружит с физикой, используя движок Box2d.

Примеры игр созданных на Construct 2, которые удалось найти:





Пришло время рассказать вам не много личного опыта в разработке на Construct 2. Как-то мне в голову пришла идея сделать простую, но популярную игру наподобие Flappy Bird. С самого начала я сделал не правильный выбор, начав делать игру один. Маленький совет. Как бы вы не хотели начать лепить игру в одиночку, насколько бы вы не входили в кураж создания игры, как бы классно у вас не получалось, подключайте других людей. Потратьте время и деньги на то, чтобы построить классную команду, с которой вы будете работать над проектом. Возможно то, что у вас будет получаться, далеко уйдет от первоначального варианта. Но все это только к лучшему. Когда вы будете работать с кем-то, а не только с собою, вы не сможете взять и бросить свой проект. Одна из главных вещей, которая достигается в команде, это избавление от “слепоты”. Часто многие начинающие разработчики просто не видят, насколько их игра не красива, они лишь видят классную идею и смотрят на игру по своему, забывая о мелочах, что позже сказывается на всей игре. Данные рекомендации применимы только к проектам, которые вы хотите продвигать и продавать. Если вы делаете игру ради развлечения, вы спокойно сможете сделать игру в одиночку, просто затратив на это больше времени. Возвращаясь к моей игре, я потратил на нее полгода. Вначале игра была черно-белой, и мне казалось, что так вполне пойдет. В Flappy Bird спрайты выкручены из Марио и ничего, народ обожает, главная ведь механика. Но заменив фон, затем шрифт, персонажа, врагов я ударился в дизайн и игра начала прорастать во что-то большее. К сожалению, проект был заброшен, но публика, принимала его положительно, даже в том состоянии, в котором он находился. Главный минус игры, в ней практически отсутствовал звук. Ваш покорный слуга сейчас залезет в Construct 2, и с удовольствием попытается найти свою игру, чтобы показать вам, что же у меня получилось.

Игра доступна по ссылке – monolithgroup.ru/SR/index.html

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

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

Игрострой у меня не пошел, но я находил для Construct, различные применения.



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

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

Плюсы:
— Легкость в освоении и кроссплатформенность
— Физический движок Box2D
— Поддержка различных вкусных эффектов HTML5
(к сожалению не ко всем проектам)

Минусы:
— Учиться разбираться в программе все равно нужно, хотя бы денек другой
— Программа далеко не бесплатна, лицензия стоит денег, при том не игровых
Подробнее на официальном сайте

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

image

Комментарии (10)


  1. izac
    14.11.2015 00:30
    +3

    Сколько времени то прошло… Вопрос чем он лучше допустим Unity3d?


  1. InstaRobot
    14.11.2015 02:16

    Отойдя от хохота я решил внести свой вклад к данному материалу… В комментах конечно! Уважаемый Андрей, я так подозреваю, что следующий материал будет на тему «Как сделать игру на BuildBox или Monkey-X»? Давайте тогда лучше про Манки, там хоть чуточку нужно программировать, что будет в формате Хабра. )))
    Честно сказать, я думал, что кто то из песочницы хочет прорваться с такой шуткой. Но нет, вот аж 2-я часть вышла!

    Если хочется покликать, но при этом сделать игру, посмотрите в сторону UnrealEngine. Он вполне себе кликабелен с его блюпринтами,

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


    1. BIanF
      16.11.2015 11:34

      Мне бы хотелось, чтобы дети введя в Яндекс запрос «как делать игры без программирования» попадали на Хабр, а не сайт Егора Пупкина.


      1. impwx
        16.11.2015 18:23

        Construct — это улучшенный клон Multimedia Fusion, в которой я пытался делать игры, еще когда учился в школе. Вполне вменяемый конструктор для простых игр и приложений. Для описания более сложной логики приходится заморачиваться, но по субъективному ощущению порог вхождения на порядок ниже, чем у «правильных» движков типа Unity.


    1. zharikovpro
      16.11.2015 20:59

      Кстати, про Monkey-X. Отличные могут быть материалы. Благодаря продуктам Blitz3D и BlitzMax от компании Blitz Research (которая сейчас развивает Monkey-X) я и мои друзья делали игры еще в старших классах школы. Более того, мы сами увлеченно в них играли и даже соревновались. Было и весело, и полезно с точки зрения обучения программированию. Потом благодаря BlitzMax я портировал пару казуальных игр с windows на mac и это был прекрасный опыт работы с большой кодовой базой. Было вообще немало разных проектов, и именно в них я учился ООП, работе с графикой, алгоритмам. А мои друзья издали с помощью этой систему несколько игр и даже на этом что-то заработали. И уверенно скажу, что игрокам и издателям было не важно, на чем они были написаны :)


  1. Dolios
    15.11.2015 10:28
    +4

    Давайте возьмем в качестве примера описания действий в Construct 2, игру Doodle Jump.

    Так не интересно. Давайте в качестве примера сделаем игру вот по этому описанию:
    Здраствуйте. Я, Кирилл. Хотел бы чтобы вы сделали игру, 3Д-экшон суть такова… Пользователь может играть лесными эльфами, охраной дворца и злодеем. И если пользователь играет эльфами то эльфы в лесу, домики деревяные набигают солдаты дворца и злодеи. Можно грабить корованы...

    Полное ТЗ я приводить не буду, думаю, легко найдете. Пускай это будет 2Д-экшон, сообщество все равно оценит, имхо.


  1. Fensfire
    17.11.2015 13:18
    +1

    Если я напишу статью, как сделать многопользовательскую RealTime игру (для android) на Construct 2 без единой строчки кода с apk самой игры, мнение относительно этого конструктора поменяется?


    1. scumware
      18.11.2015 05:19

      Лучше напиши как что-нибудь сделать ничего не делая. С удовольствием почитаю.


    1. izac
      18.11.2015 05:53

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


  1. scumware
    18.11.2015 05:15

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